CloudSigma PaaS позволяет пользователям открывать доступ к своим приложениям с помощью публичного IP-адреса. Этот адрес должен быть привязан к узлу из кластера Kubernetes окружения. В окружении CloudSigma PaaS этого можно достичь двумя способами:
- Один из способов — привязать публичный IP-адрес к выделенному балансировщику нагрузки.

- Другой способ — привязать публичный IP-адрес к рабочему узлу (Worker node) Kubernetes.
В этом руководстве мы расскажем вам, как получить доступ к приложению Kubernetes с помощью любого из этих подходов.
Настройка выделенного балансировщика нагрузки для доступа к приложению Kubernetes
Сначала мы узнаем, как настроить выделенный балансировщик нагрузки для доступа к приложению:
- Перейдите в CloudSigma Marketplace чтобы найти и установить кластер Kubernetes. Затем разверните свое приложение. В качестве примера мы будем развертывать Jakarta EE Cargo Tracker.
- Рядом с вашим кластером Kubernetes найдите и нажмите Change Environment Topology. В открывшемся окне добавьте узел выделенного балансировщика нагрузки (Dedicated Load Balancer). Затем привяжите к нему публичный IP-адрес следующим образом:

В нашем примере мы использовали NGINX в качестве узла балансировщика нагрузки. Доступны и другие балансировщики нагрузки, включая HAProxy, LS Web ADC, и Varnish. Вы можете выбрать любой, который вам больше нравится.
После завершения изменения топологии примененные изменения будут выглядеть следующим образом:


3. Следующий шаг — создание A-записи для пользовательского домена. Вы будете использовать тот же публичный IP-адрес, что и на предыдущих шагах. В этом примере мы будем использовать cargo-tracker.cloudsigma.website:

4. Теперь мы можем привязать наш пользовательский домен к кластеру K8s. Для этого мы отправим запрос на выпуск доверенного Let’s Encrypt SSL сертификата:
- Наведите курсор на балансировщик нагрузки (Load Balancer) и нажмите Add-Ons.
- Найдите и установите Let’s Encrypt Free SSL:

- В конфигурации введите имя вашего пользовательского домена и нажмите Install. В нашем случае доменное имя выглядит следующим образом:

Наконец, мы настроили наше приложение, к которому теперь можно получить доступ по пользовательскому домену https://cargo-tracker.cloudsigma.website. Мы также зашифровали трафик нашего приложения с помощью действительного и доверенного SSL-сертификата Let’s Encrypt.
Получение доступа к приложению с использованием публичного IP-адреса рабочего узла (Worker Node) Kubernetes
Далее мы рассмотрим альтернативный подход, который можно использовать для обеспечения доступности приложения за пределами кластера Kubernetes. По сути, мы узнаем, как привязать публичный IP-адрес к рабочему узлу в кластере Kubernetes, чтобы сделать приложение доступным напрямую:
Продолжим с тем же примером, который мы показывали ранее. Мы будем использовать тот же кластер, в котором развернули наше приложение Cargo Tracker. Вот как действовать дальше:
1. Нажмите на Change Environment Topology. Добавьте публичный IP-адрес к рабочему узлу:

2. Далее создайте A-запись для вашего пользовательского домена и сопоставьте ее с только что добавленным IP-адресом. Убедитесь, что вы используете доменное имя, отличное от того, которое использовалось в предыдущем разделе. Например, мы будем использовать следующее доменное имя: cargo-tracker-worker.cloudsigma.website:

3. Наведите курсор на узел Control Plane или Master и нажмите Add-Ons. Найдите и установите Certificate Manager. Это должно установить контроллер cert-manager вместе с ingress-контроллером NGINX с типом службы LoadBalancer. Последний содержит IP-адрес, связанный с вашим рабочим узлом. Он будет обслуживать ресурсы класса ingress «nginx-cert»:

4. В соответствующем поле введите предпочитаемое доменное имя и нажмите Apply:

5. Во время установки надстройка также устанавливает тестовое приложение под названием helloworld-cert. Вы можете просто удалить используемые им ресурсы с помощью следующих команд:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
Эти команды следует вводить и выполнять с помощью SSH (SFTP) или Web SSH Gate для Control Plane или Master Node. Наведите курсор на узел и нажмите на Web SSH рядом с ним, чтобы получить доступ к шлюзу.
Другой вариант — навести курсор на Control Plane или Master Node и нажать на Config. Отсюда перейдите в SFTP/SSH Gate и следуйте инструкциям.
6. Чтобы терминировать SSL-трафик приложения и настроить маршрутизацию к службе cargo-tracker, нам нужно создать ресурс ingress под названием cargo-tracker-worker. Допустим, мы используем cargo-tracker-worker-ingress.yaml. Вы можете использовать такой редактор, как vi , чтобы создать файл, а затем вставить следующий код:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
После этого выполните следующие действия:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cargo-tracker-worker namespace: default annotations: kubernetes.io/ingress.class: nginx-cert cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/affinity-mode: "persistent" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" spec: tls: - hosts: - cargo-tracker-worker.cloudsigma.website secretName: external-domain-tls rules: - host: cargo-tracker-worker.cloudsigma.website http: paths: - path: / pathType: ImplementationSpecific backend: service: name: cargo-tracker port: number: 80 |
|
1 |
$ kubectl apply -f cargo-tracker-worker-ingress.yaml |
7. После создания этого ingress-ресурса Certificate Manager автоматически выпустит SSL-сертификат Let’s Encrypt для вашего нового доменного имени. Подождите минуту или две, прежде чем проверять доступность вашего приложения по новому пользовательскому доменному имени, которым в нашем случае является https://cargo-tracker-worker.cloudsigma.website в нашем случае.
И вуаля! Выполнив эти шаги, вы открыли доступ к своему приложению с помощью двух разных подходов. В результате вы увидите два ingress-ресурса. В нашем случае это:
- cargo-tracker
Этот ingress обслуживает трафик приложения, поступающий через публичный IP-адрес вашего выделенного балансировщика нагрузки.
- cargo-tracker-worker
Этот ingress настроен на обслуживание трафика приложения, поступающего напрямую с IP-адреса, привязанного к рабочему узлу (worker node) K8s.
Вот как они будут выглядеть:

В зависимости от выбранного типа реализации, в рабочей среде вам понадобится только один ingress. CloudSigma PaaS предоставляет своим пользователям доступ к ряду инструментов для выполнения балансировки нагрузки в соответствии с потребностями их приложений. Вы можете прочитать и узнать больше о балансировке нагрузки на платформе. У нас также есть подробные руководства по основам балансировки нагрузки с помощью таких инструментов, как NGINX и HAProxy, помимо других доступных инструментов.
Вы можете попробовать CloudSigma’s PaaS, воспользовавшись нашей 7-дневной бесплатной пробной версией или связаться с нами, если вы хотите, чтобы мы предоставили вам более подробную информацию и демонстрацию платформы.

Комментарии
Комментариев пока нет. Будьте первым.