Поиск по сайту:
Живая неудача лучше мертвого шедевра (Б. Шоу).

Какие типы сервисов существуют в Kubernetes?

04.06.2021
Как читать узлы в Kubernetes

Служба в Kubernetes – это абстракция, описывающая набор концептуальных модулей, в которых выполняется приложение, и политику доступа для этих типов модулей. Если модуль должен подключиться к другому модулю, он должен сначала определить свой IP-адрес. Сервисы Kubernetes также позволяют находить определенные поды. IP-адреса подов в сетевой модели Kubernetes являются абстрактными; если модуль сломается или будет уничтожен, новый модуль почти наверняка получит новый IP-адрес. Сервис в Kubernetes часто предоставляет доступ к сети модулю или группе модулей. Службы выбирают модули в зависимости от их имен, и когда сетевые запросы отправляются таким службам, они идентифицируют все модули в кластере, которые соответствуют метке службы, выбирают один из них, а затем отправляют ему сетевой запрос.

 

Категории сервисов Kubernetes

Сервисы Kubernetes делятся на четыре основные категории:

 

ClusterIP

В Kubernetes служба ClusterIP действительно является стандартной формой службы. Он предоставляет сервис в кластере Kubernetes, которым могут управлять другие приложения Kubernetes, не предоставляя доступа извне. Это IP-адрес, который кластер Kubernetes и все его службы могут использовать для внутренних целей. В ОТЛИЧИЕ IP-АДРЕСА POD, IP-адрес, используемый в ClusterIP, недоступен за пределами кластера.

 

NodePort

Каждый узел в вашем кластере имеет открытый порт, называемый NodePort. Даже если ваше приложение работает на другом узле, Kubernetes напрямую направляет трафик от NodePort к службе. Каждый кластер Kubernetes принимает NodePort, но вам нужно изменить свои брандмауэры, если вы используете поставщика облачных услуг, такого как Google Cloud.

Читать  Установка и использование G++ в Ubuntu

 

LoadBalancer

LoadBalancer – это популярный способ представить сервис Kubernetes внешнему миру через Интернет. LoadBalancer можно использовать аналогично ClusterIP и NodePort. Кластер подойдет к поставщику облака и построит балансировщик нагрузки, если вы выберете LoadBalancer в качестве категории службы. Трафик будет перенаправлен на серверные модули, когда он поступит на этот балансировщик нагрузки. Особенности этого метода определяются тем, как каждый поставщик балансировки нагрузки реализует свою технологию.

 

ExternalName

Поскольку службы ExternalName не имеют селекторов, фиксированных портов или конечных точек, они могут перенаправлять трафик на внешнюю службу. Эта форма связывает службу с элементами поля внешнего имени. Он завершает это, возвращая значение записи CNAME.

 

Создайте развертывание вместе с сервисом

Развертывание Kubernetes отслеживает состояние модуля и, при необходимости, сбрасывает его контейнер. Развертывания – это метод управления формированием и масштабированием Pod. Итак, чтобы управлять модулем, мы собираемся создать развертывание. Для этого откроем терминал вашей операционной системы Ubuntu 20.04 LTS. Вы можете использовать для этого область приложения или горячую клавишу. Убедитесь, что в вашей системе установлен minikube.

Выполните указанную ниже команду, чтобы запустить миникуб.

$ minikube start

 

В выводе этой команды вы увидите версию minikube. После этой команды вы должны открыть панель управления minikube с помощью этой команды, указанной ниже.

$ minikube dashboard

 

Теперь мы все готовы создать развертывание с помощью команды create. Вы должны написать команду, добавленную ниже, как показано в терминале.

Читать  Как создать новый файл в Vim?

 

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

$ kubectl get deployments

 

В выходных данных вы можете увидеть основную информацию, относящуюся к уже созданному развертыванию. Вы можете просмотреть модуль, выполнив эту команду:

$ kubectl get pods

 

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

$ kubectl get events

 

Теперь вы можете просмотреть конфигурацию kubectl, используя указанную ниже команду:

$ kubectl config view

Внутри кластера Kubernetes Pod будет доступен только по его внутреннему IP-адресу. Лучше всего предоставить контейнер hello-node как службу Kubernetes, чтобы сделать его доступным за пределами виртуальной сети Kubernetes. Теперь мы собираемся открыть модуль, используя команду, указанную ниже. Кроме того, вы можете видеть, что —type = LoadBalancer, который предоставит связанный сервис за пределами кластера.

Пришло время просмотреть созданный сервис. Итак, для этой цели вы можете использовать команду, показанную ниже. Результат должен быть аналогичен изображенному на прикрепленном изображении.

$ kubectl get services

Чтобы просмотреть служебную информацию узла приветствия, вы можете использовать следующую отображаемую команду вместе с ключевым словом minikube.

$ minikube service hello-node

 

Вы можете видеть, что URL-адрес узла также отображается на прикрепленном снимке экрана вместе с целевым портом. К счастью, сервис будет открыт в браузере вашей операционной системы. Вы можете проверить, отображается ли служебная информация в браузере вашей системы.

Читать  Kubectl - Как перезапустить Pod

 

Заключение

В этой статье мы разработали концепцию сервисов в Kubernetes, а также их различные категории. Кроме того, мы объяснили базовый пример создания развертывания вместе с соответствующей службой. Мы надеемся, что прочитав и реализовав эту статью, вы легко поймете концепцию сервисов Kubernetes и их создание.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
№3. Java Enterprise Stack Технологии, о которых я упомянул в…

Спасибо!

Теперь редакторы в курсе.