Создание службы NodePort в Kubernetes

Автор Itworkroom

Чтобы создать службу NodePort, необходимо описать его в манифесте: kubia-svc-nodeport.yaml. В файле задается тип NodePort и указывается порт узла, к которому должна быть привязана эта служба на всех узлах кластера, при этом указание порта не является обязательным. Если его не указать, Kubernetes выберет случайный порт.

apiVersion: v1
kind: Service
metadata:
name: kubia-nodeport
spec:
type: NodePort
ports:
– port: 80
targetPort: 8080
nodePort: 30123
selector:
app: kubia

Чтобы посмотреть основную информацию о службе, введите команду:

$ kubectl get svc kubia-nodeport

Для того чтобы найти IP в дескрипторах JSON или YAML узлов, введите команду:

$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'

Для того чтобы узнать больше о том, как JSONPath используется с kubectl, обратитесь к документации на http://kubernetes.io/docs/user-guide/jsonpath.

Обратиться к службе можно утилитой curl:

$ curl http://ip:30123

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

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

Создание службы LoadBalancer
Для того чтобы создать службу с балансировщиком нагрузки, создайте службу с типом LoadBalancer из манифеста kubia-svc-loadbalancer.yaml, как показано ниже:

apiVersion: v1
kind: Service
metadata:
name: kubia-loadbalancer
spec:
type: LoadBalancer
ports:
– port: 80
targetPort: 8080
selector:
app: kubia

Реклама: Теперь можно расслабится и поиграть www.casino.forum

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *