¿Qué es un EndpointSlice en Kubernetes??
EndpointSlice en Kubernetes es un rastreador de punto final de red. Permite monitorear los puntos finales de la red en un clúster de Kubernetes. En palabras simples, es un objeto que obtiene las direcciones IP de cada vaina asignada a él. El servicio Kubernetes se refiere a este objeto para obtener el registro de las direcciones IP internas del POD para la comunicación. Además, los POD utilizan estos puntos finales para exponerse a un servicio.
En el reino de Kubernetes, estos puntos finales funcionan como una capa de abstracción que ayuda al servicio de Kubernetes a asegurarse de que haya una distribución de tráfico a las vainas en el clúster. Sin embargo, cuando aumenta una carga de tráfico, se produce el problema de escala de tráfico. Esto se debe a que un solo punto final contiene todos los puntos finales de red para cada servicio. Y cuando estas fuentes crecen a un tamaño inaceptable, el rendimiento de Kubernetes se ve afectado negativamente. En otras palabras, cuando el número de puntos finales de red crece inmensamente, la capacidad de los kubernetes para escalar la implementación se ve afectada negativamente. Entendamos esto con la ayuda de la siguiente imagen gráfica:
Aquí, puede ver que un punto final contiene todas las vainas en el clúster y los puntos finales son la alternativa extensible y escalable al punto final existente. Solo hay un recurso de punto final para todo el servicio, pero hay más de un punto final para el mismo servicio. Los puntos finales lo ayudan a escalar sus recursos de red de esta manera. Para comprender cuán significativo es este problema de escalabilidad, tomemos un ejemplo.
Por ejemplo, el servicio Kubernetes tiene unos 9,000 vainas que de alguna manera terminan en recursos de punto final de 2 MB. Un solo punto final tiene todos estos recursos de punto final de los servicios. Si algún punto final de red cambia en el punto final, todo el recurso del punto final debe distribuirse entre cada nodo en el clúster. Cuando se trata de lidiar con un clúster que tiene 3000 nodos, se convierte en un gran problema ya que se debe enviar una gran cantidad de actualizaciones a cada nodo. Por lo tanto, cuando se escala más en un solo punto final, cuanto más difícil escala la red se vuelve.
Sin embargo, los puntos finales resuelven este problema al permitir que los Kubernetes escala tanto como sea necesario. En lugar de usar un único punto final que contenga una gran lista de direcciones IP y sus números de puerto asociados, use múltiples puntos finales. Estos puntos finales son pequeños trozos de un enorme punto final único. Estas rebanadas son más pequeñas en mucho, pero mitigan la carga causada por el enorme punto final. Puede almacenar hasta 100 vainas en un punto final. Estos puntos finales lo ayudan a distribuir el servicio a una cápsula específica. Si algún punto final de red cambia, solo necesita enviar actualizaciones a un EndpointSlice que contiene un máximo de 100 vainas. Todas las otras cápsulas de la red permanecen intactas.
Ahora, aprendamos cómo podemos crear un Kubernetes EndpointSlice.
¿Cómo se crean EndpointSlices en Kubernetes??
Kubernetes EndpointSices es la mejor alternativa a un solo punto final en el clúster de Kubernetes. No solo lo ayuda a rastrear todos los puntos finales de la red de manera fácil y eficiente, sino que también ofrece un mejor rendimiento en comparación con un solo punto final. También muestra el tráfico de red inferior mientras ofrece confiabilidad de escala. Además, el uso de los puntos finales múltiples le permite poner menos mano de obra en el plano de control y los nodos en el clúster de Kubernetes.
Puede tener los pasos que le permiten aprender cómo crear los puntos finales en el clúster de Kubernetes en los siguientes ejemplos.
Paso 1: Comience el clúster de Minikube
El primer y principal paso es asegurarse de que el clúster de minikube esté activo. Un clúster de minikube inactivo no le permitirá realizar ningún trabajo en el entorno de Kubernetes, así que asegúrese de que esté en modo activo. Para asegurarse de que el clúster de Minikube esté en funcionamiento, use el siguiente comando:
> Minikube StartSi su clúster de minikube no ha comenzado antes o si está en modo de suspensión, este comando lo despierta y lo pone en funcionamiento. Ahora tienes un clúster de minikube activo. Estás listo para crear el punto final en su entorno de Kubernetes.
Paso 2: crear una implementación con el archivo YAML
El archivo YAML se usa más comúnmente en Kubernetes para crear implementaciones. Puede usar el archivo YAML de implementación preexistente o puede crear uno nuevo con el siguiente comando:
> punto final nano.yamlEsto crea un nuevo archivo YAML llamado "punto final.Yaml ”donde puede guardar la definición de implementación para la configuración. Consulte la definición de implementación en la siguiente captura de pantalla:
Paso 3: Crea el EndpointSlice usando el archivo YAML
Ahora que tenemos un archivo YAML que contiene la definición de implementación, lo usamos para crear los puntos finales en nuestro clúster Kubernetes. Necesitamos implementar el archivo de configuración para que podamos tener los puntos finales en el clúster de Kubernetes. Utilizamos el siguiente comando para implementar el archivo de configuración:
> Kubectl Crear -f Endpoint.yamlEn el entorno Kubernetes, los recursos se crean utilizando el comando "Kubectl Create". Por lo tanto, usamos el comando "Kubectl Create" para crear los puntos finales de los puntos finales desde el archivo de configuración YAML.
Conclusión
Exploramos los puntos finales en el entorno de Kubernetes. El EndpointSlice en Kubernetes es un objeto que se utiliza para rastrear todos los puntos finales de red en el clúster de Kubernetes. Es la mejor alternativa a un punto final enorme y único en el clúster Kubernetes, ya que permite una mejor escalabilidad y opciones de extensibilidad. Estos puntos finales permiten que el clúster Kubernetes brinde un mejor rendimiento al colocar menos mano de obra en los nodos y el plano de control. Con la ayuda de un ejemplo, aprendimos cómo crear los puntos finales en el clúster de Kubernetes.