क्यूबरनेट्स चीटशीट

कुछ आम k8s कमांड्स पैरामीटर के साथ

Page content

यहाँ मेरा k8s टिप्पणी शीट है, जो कुबेरनेट्स के महत्वपूर्ण कमांड और अवधारणाओं को कवर करता है, जिसमें इंस्टॉल करने से लेकर कंटेनर चलाने और साफ करने तक के विषय शामिल हैं:

k8s lights

कुबेरनेट्स की इंस्टॉलेशन

कुबेडम का उपयोग करके

kubeadm का उपयोग करके कुबेरनेट्स को इंस्टॉल करने के लिए इन चरणों का पालन करें:

  1. पर्यावरण के तैयार करें:

    • आवश्यक कर्नल मॉड्यूल्स को एनेबल करें:
      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. डॉकर और अन्य पूर्वापेक्षाओं की इंस्टॉलेशन:

    • डॉकर की इंस्टॉलेशन:
      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
      
    • कुबेरनेट्स रिपॉजिटरी को जोड़ें और 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. कुबेरनेट्स क्लस्टर की आरंभ करें:

    • पहले कंट्रोल प्लेन नोड की आरंभ:
      sudo kubeadm init
      
    • अतिरिक्त कंट्रोल प्लेन और वर्कर नोड्स को जोड़ें:
      kubeadm join <control-plane-node>:8443 --token <token> --discovery-token-ca-cert-hash <hash>
      

मिनिकब या किंड का उपयोग करके

स्थानीय विकास के लिए आप minikube या kind का उपयोग कर सकते हैं:

  • मिनिकब:

    minikube start
    

    आधिकारिक [शुरू करें! गाइड] का पालन करें।

  • किंड:

    curl -sfL https://get.k3s.io | sh -
    kind create cluster
    

    [किंड फास्ट स्टार्ट पेज] का पालन करें।

सामान्य कमांड्स

मूल कमांड्स

  • संसाधनों के बारे में जानकारी प्राप्त करें:

    kubectl get <resource>  # संसाधनों की सूची (जैसे, पॉड, सर्विस, डिप्लॉयमेंट)
    kubectl get pods --all-namespaces  # सभी नेमस्पेस में पॉड की सूची
    kubectl get pods -o wide  # अधिक विवरण के साथ पॉड की सूची
    kubectl get pod my-pod -o yaml  # एक पॉड के YAML विन्यास को प्राप्त करें।
    
  • संसाधनों का विवरण:

    kubectl describe <resource>  # एक संसाधन का विस्तृत विवरण (जैसे, नोड, पॉड)
    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>  # कॉन्फिगमैप बनाएं
    kubectl create secret generic <secret-name> --from-literal=<key>=<value>  # सीक्रेट बनाएं।
    
  • संसाधनों को हटाएं:

    kubectl delete <resource> <name>  # एक संसाधन को हटाएं (जैसे, पॉड, डिप्लॉयमेंट)
    kubectl delete pod my-pod
    kubectl delete deployment my-deployment.
    

पॉड प्रबंधन

  • एक कंटेनर के लिए कमांड और आर्ग्यूमेंट की परिभाषा:

    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.
    

कॉन्फिगमैप और सीक्रेट प्रबंधन

  • एक कॉन्फिगमैप बनाएं:

    kubectl create configmap <configmap-name> --from-literal=<key>=<value>
    kubectl create configmap app-config --from-literal=environment=production --from-literal=log_level=info.
    
  • एक सीक्रेट बनाएं:

    kubectl create secret generic <secret-name> --from-literal=<key>=<value>
    kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=supersecret.
    

डिप्लॉयमेंट और सर्विस प्रबंधन

  • एक डिप्लॉयमेंट बनाएं:

    kubectl create deployment <deployment-name> --image=<image-name>
    kubectl create deployment my-deployment --image=nginx:latest.
    
  • एक डिप्लॉयमेंट को सर्विस के रूप में प्रकट करें:

    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  # कुबेरनेट्स के संस्करण की जांच करें।
    

उन्नत कमांड्स

  • संसाधनों को सॉर्ट करें:

    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"}}'.
    

उपयोगी लिंक