В инструкции рассмотрен пример создания и настройки внешнего балансировщика нагрузки.
Внешний балансировщик нагрузки — балансировщик, для которого назначается публичный IP-адрес из пула свободных IP-адресов.
Создайте кластер или используйте ранее созданный.
Создайте файл cloudru-lb-external.yaml и скопируйте в него манифест:
apiVersion: v1kind: Servicemetadata:name: cloudru-lb-externalannotations:networking.cloud.ru/load-balancer-type: "external"networking.cloud.ru/load-balancer-return-subnet-ids: "43ca5087-f15d-4a59-ba80-e5de********"networking.cloud.ru/load-balancer-health-check-timeout-seconds: "4"networking.cloud.ru/load-balancer-health-check-interval-seconds: "4"networking.cloud.ru/load-balancer-health-check-unhealthy-threshold-count: "5"networking.cloud.ru/load-balancer-health-check-healthy-threshold-count: "5"spec:type: LoadBalancerselector:app: cloudru-external-appports:- name: cloudru-portprotocol: TCPport: 80targetPort: 80
Замените значение аннотации networking.cloud.ru/load-balancer-return-subnet-ids на свое значение. Идентификаторы подсетей можно посмотреть и скопировать в личном кабинете в сервисе «Подсети».
Описание аннотаций из примера смотрите в справочнике аннотаций.
Выполните команду:
kubectl create -f cloudru-lb-external.yaml
При успешном выполнении отобразится сообщение:
service/cloudru-lb-external created
Балансировщик нагрузки cloudru-lb-external появится в личном кабинете в сервисе Load Balancer.
Создайте файл cloudru-pod-lb-external.yaml и скопируйте в него манифест:
apiVersion: v1kind: Podmetadata:name: web-service-internallabels:app: cloudru-external-appspec:containers:- name: web-service-internalimage: emk8s.cr.cloud.ru/nginx:latest
Выполните команду:
kubectl create -f cloudru-pod-lb-external.yaml
При успешном выполнении отобразится сообщение:
pod/cloudru-pod-lb-external created
Выполните команду:
kubectl get svc cloudru-lb-external
Результат:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEcloudru-lb-external LoadBalancer 10.***.**.** 46.***.***.** 80:32005/TCP 158m
В столбце EXTERNAL-IP отображается публичный IP-адрес для доступа к приложению из интернет.
Выполните команду:
curl http://46.***.***.**
Где 46.***.***.** — IP-адрес из столбца EXTERNAL-IP.
При необходимости повторите команду несколько раз.
Если приложение отвечает корректно, вы увидите следующий результат:
<!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>html { color-scheme: light dark; }body { width: 35em; margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif; }</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p><p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/>Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p></body></html>