क्यूबरनेट्स चीटशीट
कुछ आम k8s कमांड्स पैरामीटर के साथ
यहाँ मेरा k8s टिप्पणी शीट है, जो कुबेरनेट्स के महत्वपूर्ण कमांड और अवधारणाओं को कवर करता है, जिसमें इंस्टॉल करने से लेकर कंटेनर चलाने और साफ करने तक के विषय शामिल हैं:
कुबेरनेट्स की इंस्टॉलेशन
कुबेडम का उपयोग करके
kubeadm
का उपयोग करके कुबेरनेट्स को इंस्टॉल करने के लिए इन चरणों का पालन करें:
-
पर्यावरण के तैयार करें:
- आवश्यक कर्नल मॉड्यूल्स को एनेबल करें:
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
- परिवर्तन लागू करने के लिए सिस्टम को रीबूट करें।
- आवश्यक कर्नल मॉड्यूल्स को एनेबल करें:
-
डॉकर और अन्य पूर्वापेक्षाओं की इंस्टॉलेशन:
- डॉकर की इंस्टॉलेशन:
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
- डॉकर की इंस्टॉलेशन:
-
कुबेरनेट्स क्लस्टर की आरंभ करें:
- पहले कंट्रोल प्लेन नोड की आरंभ:
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"}}'.