कुबेरनेट्स - ऑटोस्कोलिंग
Autoscalingकुबेरनेट क्लस्टर में प्रमुख विशेषताओं में से एक है। यह एक ऐसी सुविधा है जिसमें क्लस्टर नोड्स की संख्या बढ़ाने में सक्षम है क्योंकि सेवा प्रतिक्रिया की मांग बढ़ जाती है और आवश्यकता घटने पर नोड्स की संख्या कम हो जाती है। ऑटो स्केलिंग की यह सुविधा वर्तमान में Google क्लाउड इंजन (GCE) और Google कंटेनर इंजन (GKE) में समर्थित है और जल्द ही AWS के साथ शुरू होगी।
जीसीई में स्केलेबल इन्फ्रास्ट्रक्चर स्थापित करने के लिए, हमें पहले Google क्लाउड मॉनिटरिंग, गूगल क्लाउड लॉगिंग और स्टैकेड्रीवर सक्षम की सुविधाओं के साथ एक सक्रिय जीसीई परियोजना की आवश्यकता है।
सबसे पहले, हम इसमें कुछ नोड्स चलाने के साथ क्लस्टर सेट करेंगे। एक बार करने के बाद, हमें निम्नलिखित पर्यावरण चर को स्थापित करने की आवश्यकता है।
वातावरण विविधता
export NUM_NODES = 2
export KUBE_AUTOSCALER_MIN_NODES = 2
export KUBE_AUTOSCALER_MAX_NODES = 5
export KUBE_ENABLE_CLUSTER_AUTOSCALER = true
एक बार हो जाने के बाद, हम क्लस्टर को चालू करेंगे kube-up.sh। यह क्लस्टर ऑटो-स्केलर ऐड पर एक साथ एक क्लस्टर बनाएगा।
./cluster/kube-up.sh
क्लस्टर के निर्माण पर, हम निम्नलिखित kubectl कमांड का उपयोग करके अपने क्लस्टर की जांच कर सकते हैं।
$ kubectl get nodes
NAME STATUS AGE
kubernetes-master Ready,SchedulingDisabled 10m
kubernetes-minion-group-de5q Ready 10m
kubernetes-minion-group-yhdx Ready 8m
अब, हम क्लस्टर पर एक एप्लिकेशन को तैनात कर सकते हैं और फिर क्षैतिज पॉड ऑटोसालर को सक्षम कर सकते हैं। यह निम्नलिखित कमांड का उपयोग करके किया जा सकता है।
$ kubectl autoscale deployment <Application Name> --cpu-percent = 50 --min = 1 --
max = 10
उपरोक्त कमांड से पता चलता है कि हम POD की कम से कम एक और अधिकतम 10 प्रतिकृति को बनाए रखेंगे क्योंकि आवेदन बढ़ता है।
हम ऑटोकैलर की स्थिति को चलाकर जांच सकते हैं $kubclt get hpaआदेश। हम निम्नलिखित कमांड का उपयोग करके फली पर लोड बढ़ाएंगे।
$ kubectl run -i --tty load-generator --image = busybox /bin/sh
$ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
हम जांच कर सकते हैं hpa चलाकर $ kubectl get hpa आदेश।
$ kubectl get hpa
NAME REFERENCE TARGET CURRENT
php-apache Deployment/php-apache/scale 50% 310%
MINPODS MAXPODS AGE
1 20 2m
$ kubectl get deployment php-apache
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
php-apache 7 7 7 3 4m
हम निम्नलिखित कमांड का उपयोग करके चल रहे फली की संख्या की जांच कर सकते हैं।
jsz@jsz-desk2:~/k8s-src$ kubectl get pods
php-apache-2046965998-3ewo6 0/1 Pending 0 1m
php-apache-2046965998-8m03k 1/1 Running 0 1m
php-apache-2046965998-ddpgp 1/1 Running 0 5m
php-apache-2046965998-lrik6 1/1 Running 0 1m
php-apache-2046965998-nj465 0/1 Pending 0 1m
php-apache-2046965998-tmwg1 1/1 Running 0 1m
php-apache-2046965998-xkbw1 0/1 Pending 0 1m
और अंत में, हम नोड स्थिति प्राप्त कर सकते हैं।
$ kubectl get nodes
NAME STATUS AGE
kubernetes-master Ready,SchedulingDisabled 9m
kubernetes-minion-group-6z5i Ready 43s
kubernetes-minion-group-de5q Ready 9m
kubernetes-minion-group-yhdx Ready 9m