أداة مساعدة لـ Kubernetes
بعض الأوامر الشائعة في k8s مع المعلمات
Page content
هنا قائمة الأوامر المختصرة لـ k8s تغطي أوامر و念 kubernetes المهمة من تثبيت إلى تشغيل الحاويات وإزالة المخلفات:
تثبيت Kubernetes
باستخدام kubeadm
للتثبيت باستخدام kubeadm
، اتبع هذه الخطوات:
-
إعداد البيئة:
- تأكد من تمكين الوحدات النuclei الضرورية:
sudo sysctl net/bridge/bridge-nf-call-ip6tables=1 sudo sysctl net/bridge/bridge-nf-call-iptables=1 sudo sysctl net/bridge/bridge-nf-call-arptables=1
- أعد تشغيل النظام لتطبيق التغييرات.
- تأكد من تمكين الوحدات النuclei الضرورية:
-
تثبيت Docker والمتطلبات الأخرى:
- تثبيت Docker:
sudo apt-get update sudo apt-get install -y docker.io
- تثبيت
ebtables
وethtool
:sudo apt-get install ebtables ethtool
- تثبيت دعم HTTPS و
curl
إذا لزم الأمر:sudo apt-get update sudo apt-get install -y apt-transport-https curl
- أضف مستودع Kubernetes وتثبيت
kubeadm
وkubelet
وkubectl
:curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubeadm kubelet kubectl
- تثبيت Docker:
-
تهيئة تجميع Kubernetes:
- تهيئة أول عقدة تحكم:
sudo kubeadm init
- انضم إلى عقد تحكم إضافية ووحدات العمل:
kubeadm join <control-plane-node>:8443 --token <token> --discovery-token-ca-cert-hash <hash>
- تهيئة أول عقدة تحكم:
باستخدام Minikube أو Kind
للتطوير المحلي، يمكنك استخدام minikube
أو kind
:
-
Minikube:
minikube start
اتبع الدليل الرسمي [ابدأ الآن!].
-
Kind:
curl -sfL https://get.k3s.io | sh - kind create cluster
اتبع [صفحة بدء Kind السريعة].
أوامر kubectl الشائعة
الأوامر الأساسية
-
الحصول على معلومات حول الموارد:
kubectl get <resource> # قائمة الموارد (مثل: Pods، الخدمات، Deployments) kubectl get pods --all-namespaces # قائمة جميع Pods في جميع المساحات kubectl get pods -o wide # قائمة Pods مع تفاصيل إضافية kubectl get pod my-pod -o yaml # الحصول على تكوين YAML لـ Pod.
-
وصف الموارد:
kubectl describe <resource> # وصف تفصيلي للموارد (مثل: العقد، Pods) kubectl describe nodes my-node kubectl describe pods my-pod.
-
إنشاء الموارد:
kubectl create -f <manifest-file> # إنشاء موارد من ملف YAML أو JSON kubectl create configmap <configmap-name> --from-literal=<key>=<value> # إنشاء ConfigMap kubectl create secret generic <secret-name> --from-literal=<key>=<value> # إنشاء Secret.
-
حذف الموارد:
kubectl delete <resource> <name> # حذف مورد (مثل: Pod، Deployment) kubectl delete pod my-pod kubectl delete deployment my-deployment.
إدارة Pods
-
تحديد أمر وحجة لحاوية:
apiVersion: v1 kind: Pod metadata: name: command-demo spec: containers: - name: command-demo-container image: debian command: ["printenv"] args: ["HOSTNAME", "KUBERNETES_PORT"]
kubectl apply -f <manifest-file> kubectl get pods kubectl logs command-demo.
-
تشغيل أمر في نافذة:
apiVersion: v1 kind: Pod metadata: name: shell-demo spec: containers: - name: shell-demo-container image: debian command: ["/bin/sh"] args: ["-c", "while true; do echo hello; sleep 10;done"]
kubectl apply -f <manifest-file> kubectl get pods kubectl logs shell-demo.
إدارة ConfigMap وSecret
-
إنشاء ConfigMap:
kubectl create configmap <configmap-name> --from-literal=<key>=<value> kubectl create configmap app-config --from-literal=environment=production --from-literal=log_level=info.
-
إنشاء Secret:
kubectl create secret generic <secret-name> --from-literal=<key>=<value> kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=supersecret.
إدارة Deployment والخدمات
-
إنشاء Deployment:
kubectl create deployment <deployment-name> --image=<image-name> kubectl create deployment my-deployment --image=nginx:latest.
-
عرض Deployment كخدمة:
kubectl expose deployment <deployment-name> --type=NodePort --port=<port> kubectl expose deployment my-deployment --type=NodePort --port=80.
إدارة المساحات والعقد
-
عرض المساحات:
kubectl get namespaces
-
إنشاء مساحة:
kubectl create namespace <namespace-name> kubectl create namespace my-namespace.
-
عرض العقد:
kubectl get nodes kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'.
المراقبة والتصحيح
-
عرض السجلات:
kubectl logs <pod-name> kubectl logs -f <pod-name> # متابعة السجلات في الوقت الفعلي.
-
وصف الأحداث:
kubectl describe events
-
التحقق من معلومات التجميع:
kubectl cluster-info kubectl version # التحقق من إصدار Kubernetes.
الأوامر المتقدمة
-
فرز الموارد:
kubectl get pods --sort-by='.status.containerStatuses.restartCount' kubectl get services --sort-by=.metadata.name.
-
فلترة الموارد:
kubectl get pods --field-selector=status.phase=Running kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'.
-
استرداد بيانات محددة:
kubectl get configmap myconfig -o jsonpath='{.data.ca\.crt}' kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'.