0Pricing
AWS Solutions Architect · Lekcja

Płaszczyzna sterowania EKS i węzły robocze

Poznać zakres zarządzania AWS w płaszczyźnie sterowania EKS, aprowizować zarządzane grupy węzłów oraz łączyć kubectl z klastrem.

Płaszczyzna sterowania EKS i węzły robocze to bezpłatna lekcja AWS Solutions Architect na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.

Czym jest Amazon EKS

Amazon Elastic Kubernetes Service (EKS) to w pełni zarządzana usługa Kubernetes, która eliminuje konieczność instalowania, obsługiwania i utrzymywania płaszczyzny sterowania Kubernetes. AWS uruchamia, skaluje i aktualizuje płaszczyznę sterowania w wielu strefach dostępności, zapewniając wysoce dostępną końcówkę klastra. Mogą się Państwo skupić wyłącznie na wdrażaniu i zarządzaniu obciążeniami aplikacji.

Płaszczyzna sterowania EKS

EKS control plane składa się z serwera API, etcd, menedżera kontrolerów i harmonogramu — wszystkie te elementy są zarządzane przez AWS. Działają one na kontach należących do AWS, co oznacza, że nie można łączyć się z nimi przez SSH. AWS gwarantuje 99.95% SLA dla końcówki API EKS i automatycznie zastępuje niesprawne węzły płaszczyzny sterowania. Za płaszczyznę sterowania płacą Państwo stałą opłatę za klaster i godzinę.

Tworzenie klastra EKS

Klaster EKS można utworzyć za pomocą AWS Console, eksctl lub CloudFormation. Klaster wymaga VPC z podsieciami w co najmniej dwóch AZ oraz roli IAM, która nadaje płaszczyźnie sterowania Kubernetes uprawnienia do wywoływania interfejsów API AWS. Po utworzeniu klaster udostępnia końcówkę w postaci adresu HTTPS, który należy skonfigurować w 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

Łączenie kubectl z EKS

Po utworzeniu klastra należy zaktualizować lokalny plik kubeconfig, aby kubectl wiedział, jak połączyć się z serwerem API EKS. AWS CLI automatycznie generuje wymagany wpis. Serwer API EKS używa AWS IAM for authentication — użytkownik lub rola IAM są mapowane na tożsamość Kubernetes RBAC za pośrednictwem obiektu 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

Zarządzane grupy węzłów

Managed node groups pozwalają AWS w Państwa imieniu aprowizować, rejestrować i zarządzać cyklem życia roboczych węzłów EC2. Po zażądaniu aktualizacji lub wymiany EKS automatycznie opróżnia pody, zastępuje instancję i ponownie ją rejestruje — wszystko bez ręcznej ingerencji. Zarządzane grupy węzłów korzystają wewnętrznie z Auto Scaling Groups, zapewniając kontrolę nad minimalną, maksymalną i docelową pojemnością oraz integrację z 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

Samodzielnie zarządzane grupy węzłów

W przypadku self-managed node groups uruchamiają Państwo instancje EC2 samodzielnie (za pomocą CloudFormation lub Terraform), a następnie rejestrują je w klastrze EKS, uruchamiając skrypt bootstrap. Zapewnia to maksymalną elastyczność — można używać custom AMIs, typów instancji z GPU lub wysoce dostosowanych konfiguracji jądra — ale pełna odpowiedzialność za aktualizowanie poprawek, opróżnianie i wymianę węzłów spoczywa na Państwu.

# 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'

Rola IAM węzła i profil instancji

Każdy węzeł roboczy musi działać z użyciem EC2 instance profile zawierającego trzy zasady zarządzane przez AWS: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy oraz AmazonEC2ContainerRegistryReadOnly. Umożliwiają one węzłowi dołączenie do klastra, zarządzanie siecią podów za pomocą wtyczki VPC CNI oraz pobieranie obrazów z ECR. Bez tych zasad węzły nie zarejestrują się poprawnie.

# 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

aws-auth ConfigMap: mapowanie IAM na RBAC

EKS używa obiektu aws-auth ConfigMap w przestrzeni nazw kube-system do mapowania użytkowników i ról IAM na nazwy użytkowników oraz grupy Kubernetes. Po utworzeniu klastra tylko tożsamość IAM twórcy otrzymuje automatycznie uprawnienia administratora. Aby umożliwić innym użytkownikom lub rolom CI/CD dostęp do klastra, należy dodać do tej ConfigMap wpisy z odpowiednimi kluczami mapRoles lub 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

Dodatki EKS i aktualizacje klastra

EKS add-ons to wyselekcjonowane i zweryfikowane przez AWS komponenty programowe — takie jak VPC CNI, CoreDNS i kube-proxy — które EKS może instalować i aktualizować w Państwa imieniu. Podczas aktualizacji wersji Kubernetes klastra najpierw aktualizują Państwo płaszczyznę sterowania, a następnie każdą zarządzaną grupę węzłów do zgodnej wersji. EKS obsługuje różnicę maksymalnie jednej wersji pomniejszej (N-1) między płaszczyzną sterowania a węzłami w okresie wdrażania.

# 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

Bezpieczeństwo EKS: dostęp do końcówki i szyfrowanie

Końcówkę serwera API EKS można skonfigurować jako public only, private only lub oba warianty jednocześnie. Publiczne końcówki są zabezpieczone uwierzytelnianiem IAM, a końcówki dostępne wyłącznie prywatnie wymagają, aby kubeconfig łączył się z VPC przez VPN lub Direct Connect. Można również włączyć envelope encryption zapisanych sekretów Kubernetes za pomocą klucza AWS KMS, zapewniając dodatkową warstwę ochrony wrażliwych danych konfiguracyjnych.

# 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 w EKS

Cluster Autoscaler to pod Kubernetes, który monitoruje niemożliwe do zaplanowania pody i automatycznie dostosowuje rozmiar grup Auto Scaling Group zarządzanych grup węzłów. Gdy nie można zaplanować podów z powodu niewystarczających zasobów, Cluster Autoscaler zwiększa skalę. Gdy węzły są niedostatecznie wykorzystywane, a ich pody można ponownie zaplanować w innych miejscach, zmniejsza skalę. Wymaga uprawnień IAM do wywoływania interfejsu API EC2 Auto Scaling za pośrednictwem 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

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo: AWS zarządza płaszczyzną sterowania EKS zgodnie z umową SLA na poziomie 99,95%, zarządzane grupy węzłów pozwalają AWS obsługiwać cykl życia węzłów, podczas gdy grupy zarządzane samodzielnie zapewniają maksymalne możliwości dostosowania, a ConfigMap aws-auth mapuje tożsamości IAM na Kubernetes RBAC w celu kontroli dostępu do klastra. Następnie omówimy profile Fargate przeznaczone do bezserwerowego uruchamiania podów.

Często zadawane pytania

Czy lekcja „Płaszczyzna sterowania EKS i węzły robocze” jest bezpłatna?

Tak — pełny tekst „Płaszczyzna sterowania EKS i węzły robocze” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.

Co nauczysz się w „Płaszczyzna sterowania EKS i węzły robocze”?

Poznać zakres zarządzania AWS w płaszczyźnie sterowania EKS, aprowizować zarządzane grupy węzłów oraz łączyć kubectl z klastrem. Ćwiczysz AWS Solutions Architect z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AWS Solutions Architect?

Nie wymagamy żadnego doświadczenia. AWS Solutions Architect w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Płaszczyzna sterowania EKS i węzły robocze”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AWS Solutions Architect?

Tak. Każda lekcja AWS Solutions Architect zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Płaszczyzna sterowania EKS i węzły robocze
  2. Profile Fargate dla bezserwerowych podów
  3. Sieci EKS: VPC CNI i równoważenie obciążenia
  4. Role IAM dla kont usług (IRSA)
← Powrót do AWS Solutions Architect