Skip to content

أوامر kubectl مشروحة

أوامر kubectl المستخدمة يوميًا، مجمّعة حسب المهمة: قراءة الكلاستر، وفحص أحمال العمل، وتطبيق التغييرات والتراجع عنها، وكشف الخدمات، وإدارة العقد، وإنشاء كائنات الإعداد. يربط كل صف الأمر بنداء واقعي.

kubectl هو وسيلتك للتحكم في كلاستر Kubernetes. النموذج تصريحي: عادةً تطبّق ملف بيان (apply -f) بدلًا من إنشاء الأشياء بأوامر مباشرة، ثم تقرأ النتيجة (get وdescribe وlogs). الأوامر أدناه تغطي التشغيل اليومي؛ اقرنها بعلم namespace (-n name) عندما لا تكون في namespace الافتراضي.

جدول مرجعي · 59 إدخالات
59 of 59 rows
الكلاستر والسياق
يعرض مكان تشغيل مستوى التحكم والخدمات الأساسية.kubectl cluster-info
يسرد الكلاسترات والـ namespaces التي يمكنك التبديل بينها.kubectl config get-contexts
يبدّل إلى سياق كلاستر أو namespace آخر.kubectl config use-context my-prod
يعيّن الـ namespace الافتراضي للسياق الحالي.kubectl config set-context --current --namespace=staging
يعيد تسمية سياق محفوظ في الـ kubeconfig.kubectl config rename-context old-name prod
يسرد كل أنواع الموارد التي يعرفها الكلاستر.kubectl api-resources
يطبع نسختي Kubernetes للعميل والخادم.kubectl version
يعرض الحقول التي يدعمها المورد كما تُقرأ من مخطط الـ API.kubectl explain pod.spec.containers
يتحقق مما إذا كان يجوز للمستخدم الحالي تنفيذ إجراء معين.kubectl auth can-i delete pods
فحص أحمال العمل
يسرد الـ pods وحالتها؛ أضف -o wide لعرض الـ node والـ IP.kubectl get pods -A
يسرد الموارد الشائعة في namespace واحد بنداء واحد.kubectl get all
يضيف عمودي الـ node والـ IP إلى أي أمر get.kubectl get pods -o wide
يطبع المورد بصيغة ملف الـ YAML الكامل الكامن خلفه.kubectl get deploy/web -o yaml
يسرد الـ deployments وكم من الـ replicas جاهز.kubectl get deployments
يسرد الـ statefulsets والـ replicas الجاهزة منها.kubectl get statefulsets
يسرد مهام الدفعات والـ cron jobs المجدولة.kubectl get jobs,cronjobs
يعرض الأحداث والـ labels والحالة لـ pod واحد.kubectl describe pod web-abc
يعرض سعة العقدة وحالاتها والـ pods العاملة عليها.kubectl describe node node-1
يطبع الناتج القياسي للـ pod؛ -f للمتابعة، و--previous لآخر انهيار.kubectl logs -f web-abc
ينفذ أمرًا داخل pod قيد التشغيل.kubectl exec -it web-abc -- sh
معالج وذاكرة مباشرة للـ pods أو الـ nodes (يتطلب metrics-server).kubectl top pods
يسرد الأحداث الأخيرة مثل فشل عمليات السحب وحالات الـ backoff.kubectl get events -A --sort-by=.lastTimestamp
يسرد قواعد الـ ingress وعناوين موازنات الأحمال الخاصة بها.kubectl get ingress
ينسخ الملفات بين جهازك وبين pod قيد التشغيل.kubectl cp web-abc:/var/log/app.log ./app.log
يحجب التنفيذ حتى يستوفي المورد شرطًا.kubectl wait --for=condition=ready pod -l app=web
يشغّل pod مؤقتًا من صورة، دون حاجة إلى ملف بيان.kubectl run debug --rm -it --image=busybox -- sh
التطبيق والتوسيع والنشر
يعرض ما كان apply سيغيّره، دون أي تغيير.kubectl diff -f deploy.yaml
ينشئ الموارد أو يحدّثها من ملف بيان.kubectl apply -f deploy.yaml
يطبّق ملفات البيان ويحذف الكائنات التي غادرتها.kubectl apply -f dir/ --prune -l app=web
يفتح موردًا حيًا في محررك ويطبّق التعديل عند الحفظ.kubectl edit deploy/web
يغيّر حقولًا قليلة في مورد حي.kubectl patch deploy/web --patch-file fix.json
يوجّه حاويات الـ deployment إلى صورة جديدة.kubectl set image deploy/web web=nginx:1.27
يستبدل كائنًا، فيحذفه وينشئه من جديد عند الحاجة.kubectl replace --force -f deploy.yaml
يزيل الموارد المصرّح بها في ملف بيان.kubectl delete -f deploy.yaml
يغيّر عدد الـ replicas في الـ deployment.kubectl scale deploy/web --replicas=4
يراقب الـ rollout حتى يكتمل أو يفشل.kubectl rollout status deploy/web
يسرد المراجعات التي مرّ بها الـ rollout.kubectl rollout history deploy/web
يعيد تشغيل كل pods الـ deployment، واحدًا تلو الآخر.kubectl rollout restart deploy/web
يعيد الـ deployment إلى مراجعته السابقة.kubectl rollout undo deploy/web
الخدمات والشبكات
يسرد الخدمات مع نوعها وعنوان الـ cluster IP.kubectl get svc
يعرض أي عناوين IP للـ pods تدعم كل خدمة حاليًا.kubectl get endpoints web
ينشئ خدمة أمام مجموعة pods؛ و--type=NodePort أو LoadBalancer للوصول إلى خارج الكلاستر.kubectl expose deploy/web --port=80
يعرض عنوان موازن الأحمال خلف كل ingress (نسخة تجريبية).kubectl ingress status -A
يسرد السياسات التي تقيّد حركة الـ pods.kubectl get networkpolicies
ينشئ نفقًا من منفذ محلي إلى pod أو خدمة.kubectl port-forward svc/web 8080:80
العقد والصيانة
يسرد عقد الكلاستر وحالتها.kubectl get nodes -o wide
يعلّم عقدة بأنها غير قابلة للجدولة (لا pods جديدة).kubectl cordon node-1
يعيد تعليم عقدة بأنها قابلة للجدولة.kubectl uncordon node-1
يُخرج الـ pods من عقدة ويعلّمها غير قابلة للجدولة.kubectl drain node-1 --ignore-daemonsets
يضيف taint أو يزيله ليبعد الـ pods عن عقدة.kubectl taint node node-1 key=value:NoSchedule
يحذف pod عالقًا فورًا متجاوزًا الإيقاف المتدرج.kubectl delete pod web-abc --grace-period=0 --force
الكائنات والإعداد
ينشئ namespace جديدًا لتحديد نطاق الموارد.kubectl create namespace staging
يسرد الـ namespaces وحالتها.kubectl get namespaces
يخزن مفاتيح أو ملفات الإعداد ككائن في الكلاستر.kubectl create configmap app --from-file=config.yaml
يسرد الـ configmaps في الـ namespace.kubectl get configmaps
يخزن كلمة مرور أو شهادة كـ secret.kubectl create secret generic db --from-literal=password=s3cret
يسرد الـ secrets في الـ namespace.kubectl get secrets
يرفق label على مورد أو يزيله.kubectl label pod web-abc tier=backend
يرفق بيانات وصفية لا تستطيع الـ selectors مطابقتها.kubectl annotate deploy/web release=july