مستوى التحكم وعُقد العمال في EKS
افهم ما تديره AWS في مستوى التحكم في EKS، وأنشئ مجموعات عُقد مُدارة، وصِل kubectl بالعنقود الخاص بك
مستوى التحكم وعُقد العمال في EKS درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.
ما هي Amazon EKS؟
إن Amazon Elastic Kubernetes Service (EKS) خدمة Kubernetes مُدارة بالكامل، تزيل عنكم عبء تثبيت مستوى التحكم في Kubernetes وتشغيله وصيانته. وتشغّل AWS مستوى التحكم وتوسّعه وترقيه عبر مناطق توافر متعددة، مما يوفر نقطة نهاية عالية التوافر للعنقود. ويمكنكم التركيز بالكامل على نشر أحمال عمل تطبيقاتكم وإدارتها.
مستوى التحكم في EKS
يتكون مستوى التحكم في EKS من خادم API وetcd ومدير وحدات التحكم والمجدول، وتتولى AWS إدارتها جميعًا. تعمل هذه المكونات في حسابات مملوكة لـAWS، ما يعني أنكم لن تتصلوا بها عبر SSH مطلقًا. وتضمن AWS اتفاقية مستوى خدمة بنسبة 99.95% لنقطة نهاية EKS API، وتستبدل تلقائيًا عقد مستوى التحكم غير السليمة. وتدفعون رسمًا ثابتًا لكل عنقود ولكل ساعة مقابل مستوى التحكم.
إنشاء عنقود EKS
يمكنكم إنشاء عنقود EKS باستخدام AWS Console أو eksctl أو CloudFormation. ويتطلب العنقود VPC تحتوي على شبكات فرعية في منطقتي توافر على الأقل، ودور IAM يمنح مستوى التحكم في Kubernetes صلاحية استدعاء واجهات AWS API. وبعد إنشائه، تكون نقطة نهاية العنقود عنوان HTTPS URL تضبطونه في 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 كيفية الوصول إلى خادم EKS API. ينشئ AWS CLI الإدخال اللازم تلقائيًا. ويستخدم خادم EKS API AWS IAM للمصادقة؛ إذ يجري ربط مستخدم IAM أو دوره بهوية Kubernetes في RBAC عبر aws-auth ConfigMap.
# 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 الـpods تلقائيًا، وتستبدل المثيل، ثم تعيد تسجيله، وكل ذلك دون تدخل يدوي. وتستخدم مجموعات العقد المُدارة 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 بتشغيل برنامج التمهيد النصي. ويمنحكم ذلك أقصى قدر من المرونة؛ إذ يمكنكم استخدام 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. وتتيح هذه السياسات للعقدة الانضمام إلى العنقود، وإدارة شبكات الـpods باستخدام إضافة 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/AmazonEC2ContainerRegistryReadOnlyaws-auth ConfigMap: ربط IAM بـRBAC
تستخدم EKS aws-auth ConfigMap في مساحة الأسماء 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 فرقًا يصل إلى إصدار فرعي واحد (N-1) بين مستوى التحكم والعقد أثناء نافذة التحديث.
# 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: الوصول إلى نقطة النهاية والتشفير
يمكن ضبط نقطة نهاية خادم EKS API لتكون عامة فقط أو خاصة فقط أو كليهما. وتُؤمَّن نقاط النهاية العامة عبر مصادقة 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 عبارة عن pod في Kubernetes يراقب الـpods غير القابلة للجدولة، ويضبط حجم مجموعات Auto Scaling للعقد المُدارة تلقائيًا. وعندما يتعذر جدولة الـpods بسبب نقص الموارد، يجري Cluster Autoscaler توسّعًا. وعندما تكون العقد منخفضة الاستخدام ويمكن إعادة جدولة الـpods الخاصة بها في مكان آخر، يجري تقليصًا. ويتطلب ذلك صلاحيات IAM لاستدعاء EC2 Auto Scaling API عبر 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) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.
ماذا ستتعلم في «مستوى التحكم وعُقد العمال في EKS»؟
افهم ما تديره AWS في مستوى التحكم في EKS، وأنشئ مجموعات عُقد مُدارة، وصِل kubectl بالعنقود الخاص بك تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟
لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مستوى التحكم وعُقد العمال في EKS»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟
نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مستوى التحكم وعُقد العمال في EKS
- ملفات تعريف Fargate للحُزم دون خوادم
- شبكات EKS: VPC CNI وموازنة التحميل
- أدوار IAM لحسابات الخدمة (IRSA)