Плоскость управления и рабочие узлы EKS
Разберитесь, чем AWS управляет в плоскости управления EKS, создайте управляемые группы узлов и подключите kubectl к своему кластеру.
«Плоскость управления и рабочие узлы EKS» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Что такое Amazon EKS
Amazon Elastic Kubernetes Service (EKS) — это полностью управляемый сервис Kubernetes, который избавляет Вас от необходимости устанавливать, эксплуатировать и обслуживать управляющую плоскость Kubernetes. AWS запускает, масштабирует и обновляет управляющую плоскость в нескольких зонах доступности, предоставляя высокодоступную конечную точку кластера. Вы полностью сосредотачиваетесь на развёртывании и управлении рабочими нагрузками приложения.
Управляющая плоскость EKS
Управляющая плоскость EKS состоит из сервера API, etcd, диспетчера контроллеров и планировщика — всем этим управляет AWS. Эти компоненты работают в аккаунтах, принадлежащих AWS, поэтому Вы никогда не подключаетесь к ним по SSH. AWS гарантирует SLA 99,95 % для конечной точки API EKS и автоматически заменяет неисправные узлы управляющей плоскости. За управляющую плоскость взимается фиксированная почасовая плата за каждый кластер.
Создание кластера EKS
Вы можете создать кластер EKS с помощью консоли AWS, eksctl или CloudFormation. Для кластера требуются VPC с подсетями как минимум в двух AZ и роль IAM, предоставляющая управляющей плоскости Kubernetes разрешение на вызов API AWS. После создания конечная точка кластера представляет собой URL HTTPS, который Вы настраиваете в kubeconfig.
# Create a cluster with eksctl (recommended for getting started)
eksctl create cluster \
--name my-cluster \
--region us-east-1 \
--version 1.29 \
--nodegroup-name standard-nodes \
--node-type m5.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 5Подключение kubectl к EKS
После создания кластера обновите локальный kubeconfig, чтобы kubectl знал, как обращаться к серверу API EKS. AWS CLI автоматически создаёт необходимую запись. Сервер API EKS использует AWS IAM для аутентификации — пользователь или роль IAM сопоставляется с идентификатором RBAC Kubernetes через ConfigMap aws-auth.
# Update kubeconfig for your EKS cluster
aws eks update-kubeconfig \
--region us-east-1 \
--name my-cluster
# Verify connectivity
kubectl get nodes
kubectl get pods --all-namespacesУправляемые группы узлов
Управляемые группы узлов позволяют AWS от Вашего имени создавать, регистрировать узлы-исполнители EC2 и управлять их жизненным циклом. При запросе обновления или замены EKS автоматически высвобождает поды, заменяет экземпляр и повторно регистрирует его — без ручного вмешательства. Управляемые группы узлов используют Auto Scaling Groups в своей основе, предоставляя управление минимальной, максимальной и желаемой ёмкостью, а также интеграцию с Cluster Autoscaler.
# Add a managed node group to an existing cluster
eksctl create nodegroup \
--cluster my-cluster \
--region us-east-1 \
--name high-mem-nodes \
--node-type r6i.large \
--nodes 2 \
--nodes-min 1 \
--nodes-max 10 \
--managedСамостоятельно управляемые группы узлов
При использовании самостоятельно управляемых групп узлов Вы сами запускаете экземпляры EC2 (через CloudFormation или Terraform) и регистрируете их в кластере EKS, запуская сценарий Bootstrap. Это обеспечивает максимальную гибкость: можно использовать пользовательские AMI, типы экземпляров с GPU или сильно настроенные конфигурации ядра, — но Вы полностью отвечаете за установку исправлений, высвобождение и замену узлов.
# Bootstrap script baked into the launch template
/etc/eks/bootstrap.sh my-cluster \
--apiserver-endpoint 'https://EXAMPLE.gr7.us-east-1.eks.amazonaws.com' \
--b64-cluster-ca 'BASE64_ENCODED_CA' \
--kubelet-extra-args '--node-labels=role=custom'Роль IAM узла и профиль экземпляра
Каждый узел-исполнитель должен работать с профилем экземпляра EC2, которому назначены три политики AWS: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy и AmazonEC2ContainerRegistryReadOnly. Они позволяют узлу присоединиться к кластеру, управлять сетевым взаимодействием подов с помощью подключаемого модуля VPC CNI и загружать образы из ECR. Без этих политик узлы не смогут зарегистрироваться.
# Attach required policies to the node role
aws iam attach-role-policy \
--role-name EKSNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
aws iam attach-role-policy \
--role-name EKSNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
aws iam attach-role-policy \
--role-name EKSNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnlyConfigMap aws-auth: сопоставление IAM с RBAC
EKS использует ConfigMap aws-auth в пространстве имён kube-system, чтобы сопоставлять пользователей и роли IAM с именами пользователей и группами Kubernetes. При создании кластера только идентификатор IAM создателя автоматически получает права администратора. Чтобы предоставить доступ к кластеру другим пользователям или ролям CI/CD, необходимо добавить в этот ConfigMap записи с правильными ключами mapRoles или mapUsers.
# View and edit the aws-auth ConfigMap
kubectl describe configmap aws-auth -n kube-system
# Add a role mapping (example YAML fragment)
# mapRoles:
# - rolearn: arn:aws:iam::111122223333:role/EKSNodeRole
# username: system:node:{{EC2PrivateDNSName}}
# groups:
# - system:bootstrappers
# - system:nodesДополнения EKS и обновление кластеров
Дополнения EKS — это отобранные и проверенные AWS программные компоненты, например VPC CNI, CoreDNS и kube-proxy, которые EKS может устанавливать и поддерживать в актуальном состоянии от Вашего имени. При обновлении версии Kubernetes в кластере сначала обновите управляющую плоскость, а затем каждую управляемую группу узлов до соответствующей версии. Во время обновления EKS поддерживает разницу в одну минорную версию между управляющей плоскостью и узлами.
# List available add-ons and their versions
aws eks describe-addon-versions \
--kubernetes-version 1.29 \
--query 'addons[].{Name:addonName,Versions:addonVersions[0].addonVersion}' \
--output table
# Update the VPC CNI add-on
aws eks update-addon \
--cluster-name my-cluster \
--addon-name vpc-cni \
--addon-version v1.16.0-eksbuild.1Безопасность EKS: доступ к конечной точке и шифрование
Конечную точку сервера API EKS можно настроить как только общедоступную, только частную или оба варианта. Общедоступные конечные точки защищены аутентификацией IAM; для доступа к частной конечной точке kubeconfig должен подключаться к VPC через VPN или Direct Connect. Также можно включить конвертное шифрование секретов Kubernetes в состоянии покоя с помощью ключа AWS KMS, обеспечив дополнительный уровень защиты конфиденциальных данных конфигурации.
# Enable private endpoint and envelope encryption at cluster creation
aws eks create-cluster \
--name secure-cluster \
--kubernetes-version 1.29 \
--role-arn arn:aws:iam::111122223333:role/EKSClusterRole \
--resources-vpc-config subnetIds=subnet-xxx,securityGroupIds=sg-xxx,endpointPublicAccess=false,endpointPrivateAccess=true \
--encryption-config '[{"provider":{"keyArn":"arn:aws:kms:us-east-1:111122223333:key/KEY_ID"},"resources":["secrets"]}]'Cluster Autoscaler в EKS
Cluster Autoscaler — это под Kubernetes, который отслеживает поды, не поддающиеся планированию, и автоматически изменяет размер Auto Scaling Groups управляемых групп узлов. Когда поды невозможно запланировать из-за нехватки ресурсов, Cluster Autoscaler увеличивает масштаб. Когда узлы используются недостаточно и их поды можно перенести на другие узлы, он уменьшает масштаб. Для работы ему нужны разрешения IAM на вызов API автоматического масштабирования EC2 через IRSA.
# Deploy Cluster Autoscaler (abbreviated)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml
# Add required annotation so it discovers your cluster ASGs
kubectl annotate serviceaccount cluster-autoscaler \
-n kube-system \
eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/ClusterAutoscalerRoleБыстрая проверка
Проверьте, насколько хорошо Вы поняли концепции AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали: AWS управляет плоскостью управления EKS с SLA на уровне 99,95 %, управляемые группы узлов позволяют AWS заниматься жизненным циклом узлов, тогда как самостоятельно управляемые группы обеспечивают максимальные возможности настройки, а ConfigMap aws-auth сопоставляет удостоверения IAM с Kubernetes RBAC для управления доступом к кластеру. Далее мы рассмотрим профили Fargate для бессерверного выполнения подов.
Часто задаваемые вопросы
Урок «Плоскость управления и рабочие узлы EKS» бесплатный?
Да — полный текст урока «Плоскость управления и рабочие узлы EKS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Плоскость управления и рабочие узлы EKS»?
Разберитесь, чем AWS управляет в плоскости управления EKS, создайте управляемые группы узлов и подключите kubectl к своему кластеру. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Плоскость управления и рабочие узлы EKS»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Плоскость управления и рабочие узлы EKS
- Профили Fargate для бессерверных подов
- Сеть EKS: VPC CNI и балансировка нагрузки
- Роли IAM для сервисных аккаунтов (IRSA)