أداة مساعدة لـ Kubernetes

بعض الأوامر الشائعة في k8s مع المعلمات

Page content

هنا قائمة الأوامر المختصرة لـ k8s تغطي أوامر و念 kubernetes المهمة من تثبيت إلى تشغيل الحاويات وإزالة المخلفات:

k8s lights

تثبيت Kubernetes

باستخدام kubeadm

للتثبيت باستخدام kubeadm، اتبع هذه الخطوات:

  1. إعداد البيئة:

    • تأكد من تمكين الوحدات الن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
      
    • أعد تشغيل النظام لتطبيق التغييرات.
  2. تثبيت 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
      
  3. تهيئة تجميع 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"}}'.
    

روابط مفيدة