Конфигурация инициализации сети кластера AWS EKS
Содержание
Support OverviewPrerequisitesConfiguration StepsDeploy AWS Load Balancer ControllerCreate Ingress and LoadBalancer ServicesRelated OperationsTest AWS CLI and eksctl InstallationGet ACCOUNT_IDKubeconfig Configuration FileAdd Tags to SubnetsCreate CertificateSupport Overview
Prerequisites
-
Подготовьте две подсети с тегом 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.
Configuration Steps
Deploy 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:
Настройка Service AccountВыполните следующие команды для создания 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.
Create Ingress and LoadBalancer Services
Вы можете создавать ingress и LoadBalancer сервисы одновременно или выбрать один из них в зависимости от ваших потребностей.
Создание Ingress
-
В Container Platform перейдите в раздел Network > Ingress в левом меню.
-
Нажмите Create Ingress и выберите EKS Ingress Class для Ingress Class.
-
Выберите Protocol. По умолчанию — HTTP. Для HTTPS сначала создайте сертификат и выберите его.
-
Переключитесь на вкладку YAML и добавьте следующие аннотации. Подробнее см. в документации по аннотациям:
-
Нажмите Create.
Создание LoadBalancer Service
-
В Container Platform перейдите в раздел Network > Services в левом меню.
-
Нажмите Create Service и выберите LoadBalancer для External Access.
-
Разверните раздел annotations и при необходимости заполните аннотации для LoadBalancer сервиса.
-
Нажмите Create.
Related Operations
Test AWS CLI and eksctl Installation
-
Выполните следующую команду. Если она возвращает список кластеров, AWS CLI установлен корректно:
-
Выполните следующую команду. Если она возвращает список кластеров, eksctl установлен корректно:
Get ACCOUNT_ID
Выполните aws sts get-caller-identity, чтобы получить ACCOUNT_ID. В ответе 651168850570 — это ACCOUNT_ID:
Kubeconfig Configuration File
-
Выполните следующую команду для обновления файла Kubeconfig для указанного региона:
-
Выполните следующую команду для проверки файла Kubeconfig. Если информация возвращается корректно, конфигурация верна:
Add Tags to Subnets
-
Выполните следующую команду для получения подсетей кластера:
-
Выполните следующую команду для получения информации о подсетях:
-
Выполните следующие команды для добавления тегов к подсетям. Замените
<subnet-id>на реальные значения. См. Автоматическое обнаружение подсетей:-
Добавьте тег
kubernetes.io/role/elbк подсетям: -
Добавьте тег
kubernetes.io/cluster/<CLUSTER_NAME>: sharedк общим подсетям:
-
Create Certificate
При использовании протокола HTTPS заранее сохраните учетные данные HTTPS-сертификата как Secret (типа TLS).
-
В Container Platform перейдите в раздел Configuration > Secrets в левом меню.
-
Нажмите Create Secret.
-
Выберите тип TLS и импортируйте или заполните Certificate и Private Key по необходимости.
-
Нажмите Create.