0Pricing
Cloud & IT Cert Prep · Урок

Плоскость управления и рабочие узлы 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/AmazonEC2ContainerRegistryReadOnly

ConfigMap 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 — локальная установка не требуется.

Все уроки этого курса

  1. Плоскость управления и рабочие узлы EKS
  2. Профили Fargate для бессерверных подов
  3. Сеть EKS: VPC CNI и балансировка нагрузки
  4. Роли IAM для сервисных аккаунтов (IRSA)
← Назад к Cloud & IT Cert Prep