Конфигурация инициализации сети кластера AWS EKS
Содержание
Обзор поддержки
Предварительные требования
-
Подготовьте две подсети с тегом kubernetes.io/role/elb. Для общих подсетей добавьте тег kubernetes.io/cluster/<cluster-name>: shared. См. Добавление тегов к подсетям.
-
Если кластер EKS уже создан, импортируйте кластер Amazon EKS.
-
Убедитесь, что инструменты kubectl, Helm, AWS CLI и eksctl доступны перед развертыванием AWS Load Balancer Controller.
Примечание: После установки инструментов настройте данные для входа, используя пользователя, создавшего кластер, через AWS CLI, и проверьте корректность установки AWS CLI и eksctl.
-
Заранее получите ACCOUNT_ID, REGION и CLUSTER_NAME, и замените
<ACCOUNT_ID>,<REGION>,<CLUSTER_NAME>в документации на реальные значения.Примечание: ACCOUNT_ID — это идентификатор аккаунта пользователя, создавшего кластер, REGION — регион кластера, CLUSTER_NAME — имя кластера.
-
Обновите и проверьте конфигурационный файл Kubeconfig.
Шаги конфигурации
Развертывание AWS Load Balancer Controller
Примечание: Подробную информацию о развертывании AWS Load Balancer Controller смотрите в официальной документации.
Настройка OIDC Provider
Кластеры Kubernetes используют OpenID Connect (OIDC) для управления идентификацией и связаны с URL издателя OIDC. Чтобы включить AWS Identity в кластере и разрешить IAM роли для Service Accounts, создайте IAM OIDC Provider, связанный с URL издателя OIDC кластера.
Выполните следующую команду в eksctl для настройки OIDC Provider:
Выполните следующие команды для создания IAM политики и создания Service Account с именем aws-load-balancer-controller, связанного с IAM ролью:
Развертывание AWS Load Balancer Controller в кластере
Выполните следующие команды в eksctl для развертывания AWS Load Balancer Controller:
-
Добавьте репозиторий eks-charts:
-
Обновите локальный репозиторий:
-
Разверните Helm Chart AWS Load Balancer Controller в кластере:
Примечание:
aws-load-balancer-controller— это Service Account, созданный в разделе Настройка Service Account.
Создание Ingress и LoadBalancer сервисов
Вы можете создавать ingress и LoadBalancer сервисы одновременно или выбрать один из них в зависимости от потребностей.
Создание Ingress
-
В Container Platform перейдите в раздел Network > Ingress в левом меню.
-
Нажмите Create Ingress и выберите EKS Ingress Class для поля Ingress Class.
-
Выберите Protocol. По умолчанию — HTTP. Для HTTPS сначала создайте сертификат и выберите его.
-
Переключитесь в режим YAML и добавьте следующие аннотации. Подробнее см. документацию по аннотациям:
-
Нажмите Create.
Создание LoadBalancer сервиса
-
В Container Platform перейдите в раздел Network > Services в левом меню.
-
Нажмите Create Service и выберите LoadBalancer для External Access.
-
Нажмите Create.
Связанные операции
Проверка установки AWS CLI и eksctl
-
Выполните следующую команду. Если она возвращает список кластеров, AWS CLI установлен корректно:
-
Выполните следующую команду. Если она возвращает список кластеров, eksctl установлен корректно:
Получение ACCOUNT_ID
Выполните команду aws sts get-caller-identity, чтобы получить ACCOUNT_ID. В ответе 651168850570 — это ACCOUNT_ID:
Конфигурационный файл Kubeconfig
-
Выполните следующую команду для обновления файла Kubeconfig для указанного региона:
-
Выполните следующую команду для проверки файла Kubeconfig. Если возвращается информация, конфигурация корректна:
Добавление тегов к подсетям
-
Выполните следующую команду для получения подсетей кластера:
-
Выполните следующую команду для получения деталей подсетей:
-
Выполните следующие команды для добавления тегов к подсетям. Замените
<subnet-id>на реальные значения. См. Автоматическое обнаружение подсетей:-
Добавьте тег
kubernetes.io/role/elbк подсетям: -
Добавьте тег
kubernetes.io/cluster/<CLUSTER_NAME>: sharedк общим подсетям:
-
Создание сертификата
При использовании протокола HTTPS заранее сохраните учетные данные HTTPS сертификата как Secret (типа TLS).
-
В Container Platform перейдите в раздел Configuration > Secrets в левом меню.
-
Нажмите Create Secret.
-
Выберите тип TLS и импортируйте или заполните поля Certificate и Private Key по необходимости.
-
Нажмите Create.