Использование балансировки нагрузки приложения на Amazon Elastic Kubernetes Service

Входящий контроллер уровня кластера может использоваться для маршрутизации трафика к развертыванию ArcGIS Enterprise на Amazon Elastic Kubernetes Service (EKS). Дополнительные сведения см. в разделе Входящие контроллеры уровня кластера.

Примечание:

Этот рабочий процесс должен быть выполнен до настройки организации ArcGIS Enterprise. Доступ к ArcGIS Enterprise Manager можно получить из браузера после развертывания и настройки балансировщика нагрузки.

Предварительные условия

Ознакомьтесь с общими предварительными условиями и убедитесь, что выполнены следующие специфичные для EKS предварительные условия:

  • Необходимо подготовить кластер Kubernetes в Amazon EKS, включая развертывание контроллера балансировки нагрузки AWS.
  • На вашем клиентском компьютере должен быть установлен AWS CLI. Убедитесь, что можете пройти аутентификацию с помощью CLI для учетной записи, в которой существует ваш кластер EKS.
  • На клиентском компьютере. должен быть установлен Kubectl. Убедитесь, что вы можете подключаться и выдавать команды к серверу API Kubernetes, который связан с созданным вами кластером.
  • Ваш кластер EKS, VPC и связанные с ним ресурсы соответствуют требованиям, изложенным в разделе Балансировка нагрузки приложений на AmazonEKS.
  • Необходимо иметь сертификат TLS. Вы можете использовать Amazon Certificate Manager (ACM) для создания или импорта этого сертификата.

Реализация входящего контроллера на уровне кластера

Чтобы внедрить входящий контроллер на уровне кластера для маршрутизации трафика к развертыванию ArcGIS Enterprise на Amazon EKS, выполните следующие шаги:

  1. Получите имя ресурса Amazon (Amazon Resource Name; ARN), связанное с вашим сертификатом ACM, используя один из методов, описанных в документации AWS.
  2. Скопируйте следующие данные YAML в файл на клиентском компьютере:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      namespace: <deploymentNamespace>
      name: arcgis-enterprise-ingress
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: ip
        alb.ingress.kubernetes.io/backend-protocol: HTTPS
        alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
        alb.ingress.kubernetes.io/healthcheck-port: '443'
        alb.ingress.kubernetes.io/healthcheck-protocol: HTTPS
        alb.ingress.kubernetes.io/healthcheck-path: /<context>/admin
        alb.ingress.kubernetes.io/success-codes: '200-399'
        alb.ingress.kubernetes.io/certificate-arn: <ACMCertificateARN>
    spec:
      ingressClassName: alb
      rules:
      - host: <deploymentFQDN>
        http:
          paths:
          - path: /<context>
            pathType: Prefix
            backend:
              service:
                name: arcgis-ingress-nginx
                port:
                  number: 443
    

    Дополнительную информацию о некоторых аннотациях см. далее в разделе Описания аннотаций.

  3. Замените следующие значения:
    • alb.ingress.kubernetes.io/certificate-arn — укажите Amazon Resource Name, полученное на шаге 1.
    • namespace — укажите пространство имен, в котором вы развернули ArcGIS Enterprise on Kubernetes.
    • deploymentFQDN — укажите полное доменное имя, которое было указано при первоначальном развертывании.
    • context — укажите контекст, который был указан в процессе развертывания.
      Примечание:

      Это значение дважды появляется в данных YAML и должно быть заменено в обоих случаях. Убедитесь, что обновлено значение в аннотации alb.ingress.kubernetes.io/healthcheck-path.

  4. Сохраните эти данные YAML в файл на клиентском компьютере.

    Например, ingress.yaml.

  5. Примените данные YAML к кластеру, используя следующую команду:
    kubectl apply -f ingress.yaml
    

При завершении этого рабочего процесса будет создан входной объект с именем arcgis-enterprise-ingress. Если вы впервые используете входящий контроллер для управления внешним доступом к кластеру EKS, то должны увидеть балансировщик нагрузки приложения (Application Load Balancer), который находится в состоянии инициализации в учетной записи AWS, в которой вы в данный момент работаете. Контроллер балансировки нагрузки AWS предоставит этот балансировщик нагрузки приложения и вспомогательные компоненты в соответствии с данными YAML, которые были применены к пространству имен. Как только балансировщик нагрузки перейдет в активное состояние, развертывание ArcGIS Enterprise должно быть доступно, и может быть создана запись CNAME DNS, которая перенаправляет клиентов с полного доменного имени, указанного при первоначальном развертывании, на подготовленный балансировщик нагрузки.

Примечание:

Возможно, потребуется обновить развертывание arcgis-ingress-controller, чтобы установить правильное подключение через вновь созданный Ingress. В случае получения сообщения об ошибке при доступе к ArcGIS Enterprise Manager после создания входа, попробуйте выполнить следующее:

kubectl rollout restart deployment/arcgis-ingress-controller -n <deploymentNamespace>

Описания аннотаций

Для получения дополнительной информации о некоторых аннотациях смотрите следующее:

  • alb.ingress.kubernetes.io/scheme: internet-facing — создаст балансировщик нагрузки приложения, доступное через Интернет. Чтобы предоставить доступ к ALB только из вашего VPC, можете в качестве альтернативы использовать аннотацию alb.ingress.kubernetes.io/scheme: internal.
  • alb.ingress.kubernetes.io/target-type: ip — эта аннотация позволит распределять нагрузку трафика напрямую на IP-адреса внутренних модулей.