Запуск скрипта развертывания
Для развертывания ArcGIS Enterprise on Kubernetes вы запускаете bash-сценарий выполнения вместе с манифестами Kubernetes. Пакет развертывания доступен для загрузки из My Esri и поставляется в виде файла .tar.gz. Перед запуском скрипта развертывания ознакомьтесь с инструкциями по началу работы.
Примечание:
Чтобы запустить скрипт развертывания в интерактивном режиме, пароль реестра контейнеров не должен превышать 30 символов. Если пароль реестра контейнера превышает 30 символов, вы можете запустить скрипт развертывания в автоматическом режиме. Перед этим используйте инструмент password-encrypt.sh, чтобы создать зашифрованный пароль, удалить из него все разрывы строк и указать его в файле deploy.properties как CONTAINER_REGISTRY_PASSWORD.
Запуск скрипта развертывания в интерактивном режиме
Если вы запустите скрипт развертывания ArcGIS Enterprise on Kubernetes без указания файла параметров конфигурации, он откроется в интерактивном режиме. Скрипт запрашивает каждый параметр и немедленно проверяет правильность каждого значения. Это обеспечивает быстрый способ проверки каждого параметра конфигурации вашего развертывания.
На вашем клиентском компьютере Kubernetes откройте терминал от имени администратора.
Измените директории на те, где находится ваш скрипт развертывания.
Создайте ключевой файл шифрования.
Ключевой файл шифрования представляет собой обычный текстовый файл, используемый для шифрования и дешифрования паролей алгоритмом AES-256. Содержимое этого файла представляет собой обычный текст, который вы введете, и не должно содержать никаких паролей. Этот файл должен оставаться в одном и том же месте, а его содержимое не должно изменяться.
(Дополнительно) Создайте Секрет TLS в пространстве имен.
В терминале запустите скрипт развертывания, используя следующий формат командной строки:
./deploy.shЗаполните параметры.
Скрипт запрашивает у вас следующие параметры, по одному за раз. Если вы укажете недопустимое значение, скрипт немедленно вернет ошибку и запросит допустимый параметр. Ниже приводится краткая информация о вводимых пользователем данных:
Примечание:
Вам не нужно запускать этот сценарий выполнения от имени привилегированного пользователя (root).
Платформа развертывания—ArcGIS Enterprise on Kubernetes использует входной контроллер для маршрутизации входящего трафика к сервисам в кластере. Если вы выполняете развертывание в управляемом сервисе Kubernetes от облачного провайдера, таком как Amazon Web Services EKS или Microsoft Azure Kubernetes Service (AKS), входной контроллер может быть открыт извне с помощью сервиса балансировщика нагрузки от облачного провайдера. В этом случае ArcGIS Enterprise on Kubernetes подготавливает балансировщик нагрузки во время процесса развертывания.
Балансировщик нагрузки—Во время развертывания ArcGIS Enterprise on Kubernetes может подготавливать выбранные облачные балансировщики нагрузки, включая Azure Load Balancer (внешний и внутренний) и AWS Network Load Balancer (NLB-External и NLB-Internal). Каждая опция предлагает вам указать IP-адрес балансировщика нагрузки. В этом выпуске только балансировщики нагрузки Azure поддерживают эту опцию; AWS EKS не поддерживает опцию IP балансировщика нагрузки. Чтобы использовать возможности балансировки нагрузки уровня 7 с помощью уже существующего входящего контроллера, необходимо указать, что вы не хотите использовать облачный балансировщик нагрузки.
Входной контроллер уровня кластера—Входной контроллер уровня кластера может использоваться для маршрутизации трафика к развертыванию ArcGIS Enterprise on Kubernetes, позволяя организациям использовать возможности балансировки нагрузки уровня 7. Чтобы разрешить создание службы входящего контроллера NGINX внутри кластера с типом ClusterIP, ответьте
yesпри появлении запроса об использовании входного контроллера уровня кластера.Пространство имен—Пространство имен кластера Kubernetes, в котором будет развернут ArcGIS Enterprise on Kubernetes.
Ключевой файл шифрования — ключевой файл шифрования, который вы создали в шаге 3.
Хост реестра – полное доменное имя (FQDN) хоста реестра контейнеров (например, docker.io).
Префикс репозитория – репозиторий образов, который используется для извлечения образов контейнеров (например, esridocker).
Требует ли реестр аутентификацию на основе имени пользователя и пароля ([y]/n)? — Если вы введете
n, параметры имени пользователя и пароля учетной записи реестра контейнеров будут пропущены.Имя пользователя реестра – имя пользователя для учетной записи в указанном реестре контейнеров, в котором хранятся разрешения на извлечение данных из реестра.
Внимание:
Учетная запись реестра контейнеров, которую вы указываете, должна иметь минимальный уровень прав, связанных с ней, например, только права на загрузку образов контейнеров. По умолчанию Kubernetes хранит и предоставляет доступ к незашифрованным учетным данным этой учетной записи в виде секрета. Рекомендуется не указывать учетную запись, имеющую права на внесение изменений, редактирование метаданных или администрирование реестра контейнеров.
Пароль реестра - пароль для указанной учетной записи реестра контейнера.
Примечание:
Некоторые специальные символы в пароле могут привести к сбою сценария выполнения при запуске в интерактивном режиме. В этом случае запустите скрипт развертывания в автоматическом режиме и укажите
USE_DOCKER_CONFIG_FILE_AS_REGISTRY_SECRET=true. Чтобы использовать эту опцию, на компьютере, где вы запускаете сценарий выполнения развертывания, должен быть установлен и настроен Docker для указанного вами реестра контейнеров.Полное доменное имя—FQDN, необходимое для доступа к ArcGIS Enterprise on Kubernetes. Это указывает на балансировщик нагрузки, обратный прокси-сервер, пограничный маршрутизатор или другую веб-точку интерфейса, настроенную для маршрутизации трафика к входному контроллеру.
Путь контекста—Путь контекста, используемый в URL-адресе для ArcGIS Enterprise on Kubernetes (например,
https://<FQDN>/<context path>).Примечание:
После завершения развертывания указанный здесь путь к контексту будет использоваться при настройке ArcGIS Enterprise on Kubernetes Web Adaptor для вашей организации.
Порт узла - входящий контроллер предоставляет внешний трафик через сервис типа " LoadBalancer "или"NodePort". Порт может быть указан в диапазоне 30000-32767. Если порт не указан, Kubernetes автоматически выделяет доступный порт в этом диапазоне.
Сертификат TLS - сертификат TLS (самозаверяющий или сторонний, подписанный центром сертификации) требуется с полным доменным именем и альтернативным именем субъекта. Это будет сертификат TLS по умолчанию для входного контроллера.
Ответьте на запрос, хотите ли вы развернуть или сохранить файл свойств.
Если необходимо изменить какие-либо параметры в файле свойств, включая дополнительные свойства развертывания в автоматическом режиме, следует выйти из сценария развертывания и обновить файл на диске. Общие примеры дополнительных свойств включают обновление
ALLOWED_PRIVILEGED_CONTAINERS=falseдля запуска только непривилегированных контейнеров или обновлениеK8S_AVAILABILITY_TOPOLOGY_KEY=topology.kubernetes.io/zoneдля поддержки развертывания кластера с зонами мульти-доступности.
Когда вы ввели все допустимые параметры, файл свойств будет сохранен в вашей текущей рабочей директории. Используйте этот файл свойств для автоматизации будущих развертываний или отмены развертывания ArcGIS Enterprise on Kubernetes.
Последний шаг развертывания - создание организации ArcGIS Enterprise.
Подсказка:
Скрипт развертывания использует команды kubectl для проверки предварительных требований, таких как допустимое пространство имен. Если команда kubectl не может связаться с кластером из-за проблем с сетью или брандмауэром, скрипт развертывания может казаться не отвечающим. Если это произойдет, завершите команду ./deploy.sh и запустите kubectl непосредственно из терминала, чтобы инициировать связь с кластером.
Запуск скрипта развертывания в автоматическом режиме
В качестве альтернативы запуску скрипта развертывания в интерактивном режиме вы можете развернуть ArcGIS Enterprise on Kubernetes в автоматическом режиме. Скрипт развертывания поставляется в комплекте с файлом deploy.properties, который предоставляет набор параметров, запрашивающих уникальные входные данные для вашего развертывания ArcGIS Enterprise on Kubernetes.
На клиентском компьютере Kubernetes откройте терминал от имени администратора.
Измените каталоги, в которых находятся скрипт развертывания и файл
deploy.properties.Откройте файл
deploy.properties.Обратитесь к описательным комментариям в файле, чтобы получить краткую информацию о вводимых пользователем данных и предоставить значения для каждого параметра, перечисленного в файле.
Файл разделен на следующие части:
Платформа развертывания
Пространство имен
Ключевой файл шифрования
Реестр контейнеров
Полное доменное имя (FQDN)
Сертификат TLS
Сохраните файл. При необходимости переименуйте файл.
В терминале запустите инструмент
password-encrypt.shдля генерирования зашифрованных паролей для использования в файлеdeploy.properties.В терминале запустите скрипт развертывания, используя следующий формат командной строки:
./deploy.sh -f <user_properties>
Содержимое <user properties> извлекается из файла deploy.properties.
Перед развертыванием ArcGIS Enterprise on Kubernetes скрипт развертывания проверит, соответствует ли ваша система минимальным системным требованиям и предоставили ли вы допустимые входные данные для каждого параметра, указанного в файле deploy.properties.
Последний шаг развертывания - создание организации ArcGIS Enterprise.
Дополнительные свойства развертывания в автоматическом режиме
Файл deploy.properties содержит дополнительные свойства, которые можно использовать при развертывании в автоматическом режиме. Для каждого из них указаны значения по умолчанию.
ALLOWED_PRIVILEGED_CONTAINERS=true — если вы не можете запустить привилегированный контейнер, установите это значение на false. При этом вам также потребуется запустить команду # "sysctl -w vm.max_map_count=262144" от имени root, чтобы увеличить vm.max_map_count до 262144 на всех узлах вашего кластера.
CONTAINER_IMAGE_PULL_POLICY="Always"—Когда запускаются новые контейнеры, ImagePullPolicy определяет, извлекается ли новый образ контейнера из реестра контейнеров. Значение по умолчанию равно "Always", будет загружаться новое изображение при каждом запуске контейнера. Если вы хотите, чтобы новое изображение загружалось только в том случае, если изображения еще нет, установите это значение на "IfNotPresent".
INGRESS_HSTS_ENABLED=false — HTTP Strict Transport Security (HSTS) добавляет слой безопасности к веб-трафику вашей организации. По умолчанию опция протокола HSTS установлена на false. Чтобы включить HSTS, установите это значение на true.
INGRESS_SSL_PROTOCOLS="TLSv1.2 TLSv1.3" — Задает протоколы SSL для использования. По умолчанию – "TLSv1.2 TLSv1.3". Если должны быть разрешены дополнительные версии TLS, укажите их здесь.
INGRESS_SSL_CIPHERS="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA" — это свойство задает список кодов SSL, которые должны быть включены. Если требуются дополнительные коды SSL, укажите их здесь.
K8S_CLUSTER_DOMAIN="cluster.local" — Если у вас есть пользовательский суффикс домена кластера для служб и модулей (например, organization.com), вы можете использовать это свойство, чтобы разрешить ArcGIS Enterprise on Kubernetes использовать ваш суффикс домена кластера. Значение по умолчанию равно cluster.local.
K8S_AVAILABILITY_TOPOLOGY_KEY="kubernetes.io/hostname" — Если вы развертываете ArcGIS Enterprise on Kubernetes и ваш кластер Kubernetes охватывает три или более зон доступности, замените "kubernetes.io/hostname" на "topology.kubernetes.io/zone" или вашу пользовательскую надпись топологии домена. Подробнее о развертывании зон мульти-доступности см. в разделе Администрирование кластеров Kubernetes зоны мульти-доступности.
INGRESS_CUSTOM_ANNOTATION1="" — Когда вы выбираете использование службы LoadBalancer для маршрутизации внешнего трафика в кластер, вы можете использовать это свойство для добавления пользовательских свойств к балансировщику нагрузки. Это полезно, например, если вам нужно добавить подсети в конфигурацию балансировщика нагрузки или присвоить эластичные IP-адреса в AWS сетевому балансировщику нагрузки. Вы можете добавить множество свойств аннотаций, увеличивая суффикс, например INGRESS_CUSTOM_ANNOTATION2, INGRESS_CUSTOM_ANNOTATION3 и так далее.
CLUSTER_INGRESS_CONTROLLER_YAML_FILENAME="ingress.yaml"—Если вы установите INGRESS_SERVICE_USE_CLUSTER_IP в true и еще не создали объект Ingress, вы можете создать объект Ingress, установив это значение в полный путь к файлу Ingress YAML. Эта опция доступна только для поддерживаемых балансировщиков нагрузки уровня 7. По умолчанию это значение пустое, и свойство будет игнорироваться, если вы не укажете путь.
После обновления необходимых параметров для кластера вашей организации в файле свойств развертывания разверните ArcGIS Enterprise on Kubernetes с помощью следующей команды:
./deploy.sh -f <user_properties>