मैंने [आधिकारिक ट्यूटोरियल] [1] के अनुसार सिंगल नोड कुबेरनेट्स की स्थापना की है।

आधिकारिक दस्तावेज़ीकरण के अलावा मैंने सिंगल नोड क्लस्टर सेट अप किया है:

kubectl taint nodes --all node-role.kubernetes.io/master-

विकलांग बेदखली की सीमा:

cat << EOF >> /var/lib/kubelet/config.yaml
evictionHard:
  imagefs.available: 1%
  memory.available: 100Mi
  nodefs.available: 1%
  nodefs.inodesFree: 1%
EOF

systemctl daemon-reload
systemctl restart kubelet

और डॉकर के लिए सिस्टमड ड्राइवर सेट करें:

cat << EOF > /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

systemctl daemon-reload
systemctl restart docker

मैं कुबेरनेट्स क्लस्टर (इसकी सभी सेवाओं, पॉड, आदि सहित) को अस्थायी रूप से कैसे रोक सकता हूं? मैंने systemctl stop kubelet जारी किया है, लेकिन मुझे अभी भी प्रक्रियाओं के बीच कुछ कुबेरनेट्स सामान दिखाई दे रहे हैं

$ ps -elf | grep kube
4 S root       6032   5914  1  80   0 - 2653148 -    Feb17 ?        00:35:10 etcd --advertise-client-urls=https://192.168.1.111:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --initial-advertise-peer-urls=https://192.168.1.111:2380 --initial-cluster=ubuntu=https://192.168.1.111:2380 --key-file=/etc/kubernetes/pki/etcd/server.key --listen-client-urls=https://127.0.0.1:2379,https://192.168.1.111:2379 --listen-metrics-urls=http://127.0.0.1:2381 --listen-peer-urls=https://192.168.1.111:2380 --name=ubuntu --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt --peer-client-cert-auth=true --peer-key-file=/etc/kubernetes/pki/etcd/peer.key --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt --snapshot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
4 S root       7536   7495  0  80   0 - 35026 -      Feb17 ?        00:01:04 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=ubuntu
4 S root       9868   9839  0  80   0 - 34463 -      Feb17 ?        00:00:59 /usr/bin/kube-controllers
4 S root      48394  48375  2  80   0 - 36076 -      13:41 ?        00:01:09 kube-scheduler --authentication-kubeconfig=/etc/kubernetes/scheduler.conf --authorization-kubeconfig=/etc/kubernetes/scheduler.conf --bind-address=127.0.0.1 --kubeconfig=/etc/kubernetes/scheduler.conf --leader-elect=true
4 S root      48461  48436  3  80   0 - 52484 -      13:41 ?        00:01:53 kube-controller-manager --allocate-node-cidrs=true --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf --bind-address=127.0.0.1 --client-ca-file=/etc/kubernetes/pki/ca.crt --cluster-cidr=10.244.0.0/16 --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt --cluster-signing-key-file=/etc/kubernetes/pki/ca.key --controllers=*,bootstrapsigner,tokencleaner --kubeconfig=/etc/kubernetes/controller-manager.conf --leader-elect=true --node-cidr-mask-size=24 --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --root-ca-file=/etc/kubernetes/pki/ca.crt --service-account-private-key-file=/etc/kubernetes/pki/sa.key --service-cluster-ip-range=10.96.0.0/12 --use-service-account-credentials=true
4 S root      52675  52586  7  80   0 - 123895 -     14:00 ?        00:02:01 kube-apiserver --advertise-address=192.168.1.111 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --insecure-port=0 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
1
Wakan Tanka 18 फरवरी 2020, 16:34
आपने किस ट्यूटोरियल का इस्तेमाल किया? क्या आपने kubeadm का उपयोग करके क्लस्टर स्थापित किया है?
 – 
Crou
18 फरवरी 2020, 18:10

3 जवाब

यदि आप वास्तव में किसी भी कारण से कुबेरनेट्स/डॉकर द्वारा चल रही हर चीज को रोकना चाहते हैं - तो आप क्यूबलेट और डॉकर दोनों को रोक सकते हैं।

इन आदेशों को उस नोड पर निष्पादित करें जिसे आप कुबेरनेट्स/डॉकर को रोकना पसंद करते हैं

systemctl stop kubelet 
systemctl stop docker

मैं पहले नोड को निकालने की दृढ़ता से अनुशंसा करता हूं, लेकिन यदि आप बिना किसी सावधानी के सबकुछ मारना चाहते हैं तो कुबेरनेट्स और नोड पर चल रहे कंटेनरों को रोकने का एक तरीका होगा :)

एक बार जब आप सब कुछ फिर से शुरू करना चाहते हैं तो बस डॉकर और क्यूबलेट फिर से शुरू करें या मशीन को रीबूट करें।

चियर्स

2
Henry 18 फरवरी 2020, 22:04
ऊपर काम किया, लेकिन मैं अभी भी coredns और containerd (हालांकि मैं डॉकर का उपयोग कर रहा हूं) को शीर्ष / htop में देखता हूं: कोई सुझाव?
 – 
watery
14 अप्रैल 2020, 04:28
वास्तव में नहीं, लेकिन यदि आप कुबेक्टल के माध्यम से जांचते हैं कि क्या इन नोड पर अभी भी पॉड चल रहे हैं तो आप देखेंगे कि इसका क्लस्टर संबंधित है या नहीं। वैसे भी, सरल तरीका क्लस्टर से नोड को डिलीट कमांड के माध्यम से हटाने के लिए होगा और फिर आप उन नोड के साथ जो कुछ भी पसंद करते हैं उसे चेक/बूट/डिलीट कर सकते हैं :)
 – 
Henry
15 अप्रैल 2020, 13:15

आपको kubectl drain <node name> का उपयोग करना चाहिए

जब कुबेक्टल ड्रेन सफलतापूर्वक लौटता है, तो यह इंगित करता है कि सभी पॉड्स को वांछित ग्रेसफुल टर्मिनेशन अवधि के संबंध में सुरक्षित रूप से बेदखल कर दिया गया है।

एक बार जब यह वापस आ जाता है (बिना कोई त्रुटि दिए), तो आप नोड को बंद कर सकते हैं (या समकक्ष, यदि क्लाउड प्लेटफ़ॉर्म पर, नोड का समर्थन करने वाली वर्चुअल मशीन को हटा दें)। यदि आप रखरखाव ऑपरेशन के दौरान क्लस्टर में नोड छोड़ते हैं, तो आपको चलाने की आवश्यकता है

kubectl uncordon <node name>

बाद में कुबेरनेट्स को यह बताने के लिए कि यह नोड पर नए पॉड्स को शेड्यूल करना फिर से शुरू कर सकता है

0
Arghya Sadhu 18 फरवरी 2020, 17:05

एक में दो प्रश्न पूछे जाते हैं:

  • कुबेरनेट क्लस्टर बंद करो और
  • अस्थायी रूप से रुकें

मैं दोनों को ध्यान में रखकर उत्तर दूंगा। साथ ही यह भी स्पष्ट नहीं है कि आपने अपना क्लस्टर कैसे बनाया लेकिन ऐसा लगता है कि आपने kubeadm का उपयोग किया है।

कदम:

  1. जैसा कि द्वारा उल्लेख किया गया है @अर्घ्य-साधु और @ हेनरी, ग्रेसफुल शटडाउन की अनुशंसा की जाती है लेकिन अनिवार्य नहीं है यदि यह एक परीक्षण क्लस्टर है और आपको कार्यभार (पॉड्स, आदि) की परवाह नहीं है।
    • kubectl cordon <node name>
    • kubectl drain <node name>
  2. kubeadm मास्टर प्लेन पॉड्स को स्टैटिक पॉड्स के रूप में होस्ट करता है ref! mv /etc/kubernetes/manifests/ /tmp जैसा बताया गया है यहां
0
garlicFrancium 18 फरवरी 2020, 22:39