Входящий контроллер на уровне кластера может использоваться для маршрутизации трафика к развертыванию ArcGIS Enterprise на Google Kubernetes Engine (GKE). Дополнительные сведения см. в разделе Входящие контроллеры на уровне кластера.
Примечание:
Этот рабочий процесс должен быть выполнен до настройки организации ArcGIS Enterprise. К ArcGIS Enterprise Manager можно получить доступ из браузера после развертывания и настройки средства балансировки нагрузки.
Предварительные условия
Ознакомьтесь с предварительными условиями и убедитесь, что выполнены следующие требования, специфичные для GKE:
- Нужно создать кластер в GKE.
- В вашем кластере должно быть включено дополнение для балансировки нагрузки HTTP.
- На клиентском компьютере. должен быть установлен Kubectl. Убедитесь, что вы можете подключаться и выдавать команды к серверу API Kubernetes, который связан с созданным вами кластером.
- На клиентском компьютере должен быть установлен Google Cloud Platform CLI. Убедитесь, что вы можете пройти аутентификацию в проекте, в котором существует кластер GKE.
- Вы должны создать самоуправляемый сертификат в рамках своего проекта Google Cloud. Как только сертификат появится в вашем проекте, обратите внимание на его имя. Либо этот сертификат может быть указан в секрете Kubernetes для последующего использования, который необходимо будет создать в пространстве имен развертывания.
Добавьте аннотации к сервису входящего контроллера уровня кластера
Добавьте аннотации к сервису входящего контроллера в кластер после первоначального развертывания ArcGIS Enterprise на движке Google Kubernetes Engine.
- Запустите следующую команду, чтобы добавить аннотацию к развернутому сервису, которая обеспечит использование TLS-связи:
kubectl annotate svc arcgis-ingress-nginx -n <namespace> cloud.google.com/app-protocols='{"https":"HTTPS"}'
- Добавьте дополнительную аннотацию к контроллеру сервиса кластера, чтобы настроить проверку работоспособности для вашей организации.
Это можно сделать с помощью BackendConfig CRD.
- Скопируйте и сохраните следующие данные YAML в текстовом редакторе на вашей клиентской рабочей станции.
В этом примере файл сохраняется как backendconfig.yaml.
apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: name: my-backendconfig namespace: <deploymentNamespace> spec: healthCheck: type: HTTPS requestPath: /<context>/admin port: 443
Примечание:
Дополнительные параметры проверки работоспособности могут быть добавлены в объект YAML BackendConfig в соответствии с потребностями организации. Для ознакомления с дополнительными параметрами проверки работоспособности, которые можно добавить в спецификацию BackendConfig, см. документацию Google Cloud. Вам потребуется обновить значение для context в поле requestPath, чтобы оно соответствовало контекстному пути, который был указан в процессе развертывания.
- Создайте объект BackendConfig, используя следующую команду:
kubectl apply -f backendconfig.yaml
- Сопроводите сервис входящего контроллера уровня кластера следующей аннотацией:
Это гарантирует, что ранее созданная проверка работоспособности будет использоваться балансировщиком нагрузки, который будет развернут входящим контроллером GKE.kubectl annotate svc arcgis-ingress-nginx -n <namespace> cloud.google.com/backend-config='{"default": "my-backendconfig"}'
- Скопируйте и сохраните следующие данные YAML в текстовом редакторе на вашей клиентской рабочей станции.
Создайте входной объект Ingress
Теперь, когда аннотации добавлены к сервису входящего контроллера уровня кластера, создайте объект входа Ingress, выполнив следующие шаги:
- Скопируйте следующие данные YAML в файл на клиентском компьютере:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: arcgis-enterprise-ingress namespace: <deploymentNamespace> annotations: kubernetes.io/ingress.class: "gce" kubernetes.io/ingress.allow-http: "false" ingress.gcp.kubernetes.io/pre-shared-cert: "<certificateName>" spec: defaultBackend: service: name: arcgis-ingress-nginx port: number: 443 rules: - host: <deploymentFQDN> http: paths: - path: /<context> pathType: Prefix backend: service: name: arcgis-ingress-nginx port: number: 443
- Замените следующие значения:
- certificateName — укажите имя вновь загруженного сертификата.
- deploymentFQDN — укажите полное доменное имя, которое было задано при развертывании.
- namespace — укажите пространство имен, в котором вы развернули ArcGIS Enterprise on Kubernetes.
- context — укажите контекст, который был указан в процессе развертывания.
- Сохраните эти данные YAML в файл на вашем клиентском компьютере (например, в виде файла с именем ingress.yaml) и примените их к вашему кластеру, используя следующую команду:
kubectl apply -f ingress.yaml
После завершения этого рабочего процесса будет создан входной объект с именем arcgis-enterprise-ingress. После создания этого входного объекта входящий контроллер GKE предоставит балансировщик нагрузки приложения в проекте Google Cloud. Будет создана связанная сетевая группа конечных точек, содержащая IP-адрес модуля внутреннего входящего контроллера NGINX на уровне кластера. После создания балансировщика нагрузки ваше развертывание ArcGIS Enterprise должно стать доступным и может быть создана запись A, которая перенаправляет клиентов с полного доменного имени, указанного при первоначальном развертывании, на подготовленный балансировщик нагрузки.
Примечание:
Возможно, потребуется обновить развертывание arcgis-ingress-controller, чтобы установить правильное подключение через вновь созданный Ingress. В случае получения сообщения об ошибке при доступе к ArcGIS Enterprise Manager после создания точки входа ingress, попробуйте выполнить следующее:kubectl rollout restart deployment/arcgis-ingress-controller -n <deploymentNamespace>