Создание Kubernetes EndpointSlices

Sozdanie Kubernetes Endpointslices



Срез конечной точки позволяет отслеживать конечную точку сети, которая подключена к кластеру Kubernetes. Вы можете узнать больше об EndpointSlices в среде Kubernetes из этой статьи, которую мы создали для вас. В этом руководстве мы поможем вам узнать, что такое EndpointSlice в кластере Kubernetes и как создать EndpointSlice в Kubernetes. Мы продемонстрируем некоторые команды kubectl, которые позволят нам создать конечную точку в кластере Kubernetes.

Что такое EndpointSlice в Kubernetes?

EndpointSlice в Kubernetes — это средство отслеживания конечных точек сети. Это позволяет отслеживать конечные точки сети в кластере Kubernetes. Проще говоря, это объект, который получает IP-адреса от каждого назначенного ему модуля. Служба Kubernetes обращается к этому объекту, чтобы получить запись внутренних IP-адресов модуля для связи. Более того, эти конечные точки используются модулями для доступа к сервису.

В сфере Kubernetes эти конечные точки работают как уровень абстракции, который помогает службе Kubernetes обеспечивать распределение трафика между подами в кластере. Однако при увеличении нагрузки трафика возникает проблема масштабирования трафика. Это связано с тем, что одна конечная точка содержит все сетевые конечные точки для каждой службы. И когда эти источники вырастают до неприемлемого размера, это негативно сказывается на производительности Kubernetes. Другими словами, когда количество конечных точек в сети резко возрастает, способность Kubernetes масштабировать развертывание негативно сказывается. Давайте разберемся в этом с помощью следующего графического изображения:









Здесь вы можете видеть, что конечная точка содержит все модули в кластере, а EndpointSlices — это расширяемая и масштабируемая альтернатива существующей конечной точке. Для всей службы существует только один ресурс Endpoint, но для одной и той же службы существует несколько EndpointSlices. Таким образом EndpointSlices помогают масштабировать сетевые ресурсы. Чтобы понять, насколько важна эта проблема масштабируемости, давайте рассмотрим пример.



Например, служба Kubernetes имеет около 9000 модулей, которые каким-то образом заканчиваются в 2 МБ ресурсов конечной точки. Одна конечная точка имеет все эти ресурсы конечной точки служб. Если какая-либо конечная точка сети изменяется в конечной точке, весь ресурс конечной точки необходимо распределить между каждым узлом в кластере. Когда дело доходит до работы с кластером из 3000 узлов, это становится огромной проблемой, поскольку на каждый узел необходимо отправить огромное количество обновлений. Следовательно, чем больше вы масштабируете только одну конечную точку, тем сложнее становится масштабирование сети.





Однако EndpointSlices решают эту проблему, позволяя Kubernetes масштабироваться настолько, насколько это необходимо. Вместо использования одной конечной точки, которая содержит огромный список IP-адресов и связанных с ними номеров портов, используйте несколько EndpointSlices. Эти EndpointSlices представляют собой небольшие фрагменты огромной единой конечной точки. Эти фрагменты намного меньше, но они снижают нагрузку, вызванную огромной конечной точкой. Вы можете хранить до 100 модулей в одном EndpointSlice. Эти EndpointSlices помогают распространять службу на определенный модуль. Если какая-либо конечная точка сети изменится, вам нужно будет отправить обновления только на EndpointSlice, который содержит не более 100 модулей. Все остальные модули в сети остаются нетронутыми.

Теперь давайте узнаем, как мы можем создать Kubernetes EndpointSlice.



Как создаются EndpointSlices в Kubernetes?

Kubernetes EndpointSlices — лучшая альтернатива одной конечной точке в кластере Kubernetes. Это не только помогает легко и эффективно отслеживать все конечные точки сети, но и обеспечивает более высокую производительность по сравнению с одной конечной точкой. Он также показывает более низкий сетевой трафик, предлагая надежность масштабирования. Более того, использование нескольких EndpointSlices позволяет меньше трудозатрат на управление плоскостью и узлами в кластере Kubernetes.

Вы можете выполнить шаги, которые позволят вам научиться создавать EndpointSlices в кластере Kubernetes, в следующих примерах.

Шаг 1: Запустите кластер Minikube

Первый и самый важный шаг — убедиться, что кластер minikube активен. Неактивный кластер minikube не позволит вам выполнять какую-либо работу в среде Kubernetes, поэтому убедитесь, что он находится в активном режиме. Чтобы убедиться, что кластер minikube запущен и работает, используйте следующую команду:

>запустить миникуб

Если ваш кластер minikube не запускался ранее или находится в спящем режиме, эта команда пробуждает его и запускает. Теперь у вас есть активный кластер minikube. Вы готовы создать EndpointSlice в своей среде Kubernetes.

Шаг 2. Создайте развертывание с файлом YAML

Файл YAML чаще всего используется в Kubernetes для создания развертываний. Вы можете использовать уже существующий файл развертывания YAML или создать новый с помощью следующей команды:

> нано endpoint.yaml

Это создает новый файл YAML с именем «endpoint.yaml», в котором вы можете сохранить определение развертывания для настройки. См. определение развертывания на следующем снимке экрана:

Шаг 3: Создайте EndpointSlice с помощью файла YAML

Теперь, когда у нас есть файл YAML, содержащий определение развертывания, мы используем его для создания EndpointSlices в нашем кластере Kubernetes. Нам нужно развернуть файл конфигурации, чтобы иметь EndpointSlices в кластере Kubernetes. Мы используем следующую команду для развертывания файла конфигурации:

> kubectl создать -f endpoint.yaml

В среде Kubernetes ресурсы создаются с помощью команды «kubectl create». Следовательно, мы используем команду «kubectl create» для создания EndpointSlices из файла конфигурации YAML.

Заключение

Мы исследовали EndpointSlices в среде Kubernetes. EndpointSlice в Kubernetes — это объект, который используется для отслеживания всех конечных точек сети в кластере Kubernetes. Это лучшая альтернатива огромной и единственной конечной точке в кластере Kubernetes, поскольку она обеспечивает лучшую масштабируемость и расширяемость. Эти EndpointSlices позволяют кластеру Kubernetes повысить производительность, затрачивая меньше усилий на узлы и плоскость управления. На примере мы научились создавать EndpointSlices в кластере Kubernetes.