कोडलैब - Kubectl-ai की मदद से Kubernetes को मैनेज करना. यह एआई की मदद से काम करने वाला Kubernetes असिस्टेंट है

1. परिचय

kubectl-ai, एआई की मदद से काम करने वाला एक स्मार्ट इंटरफ़ेस है. यह उपयोगकर्ता के इंटेंट को सटीक Kubernetes ऑपरेशन में बदलता है. इससे Kubernetes को मैनेज करना ज़्यादा आसान और असरदार हो जाता है.

d62a763b2dba5ba7.png

आपको क्या करना होगा

  • आपको kubectl-ai के साथ काम करना होगा. यह एआई की मदद से काम करने वाला Kubernetes Assistant टूल है. इसकी मदद से, GKE क्लस्टर को मैनेज किया जा सकता है.

आपको क्या सीखने को मिलेगा

  • आपको एक GKE क्लस्टर बनाना होगा और kubectl-ai. सेट अप करना होगा
  • आपको Kubernetes से जुड़े टास्क करने होंगे. जैसे, क्लस्टर और संसाधनों से जुड़ी समस्याओं को हल करने के साथ-साथ, संसाधनों को मैनेज करना, बनाना, और पैच करना.

आपको इन चीज़ों की ज़रूरत होगी

  • Chrome वेब ब्राउज़र
  • Gmail खाता
  • ऐसा Cloud प्रोजेक्ट जिसमें बिलिंग की सुविधा चालू हो
  • Gemini API पासकोड

इस कोडलैब में यह माना गया है कि उपयोगकर्ता को Kubernetes के बारे में बुनियादी जानकारी है.

2. शुरू करने से पहले

प्रोजेक्ट बनाना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
  3. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इसमें bq पहले से लोड होता है. Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.

Cloud Shell बटन की इमेज चालू करें

  1. Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट किया गया है, इस कमांड का इस्तेमाल करें:
gcloud auth list
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. नीचे दिए गए निर्देश का इस्तेमाल करके, ज़रूरी एपीआई चालू करें. इसमें कुछ मिनट लग सकते हैं. इसलिए, कृपया इंतज़ार करें.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

कमांड के सही तरीके से लागू होने पर, आपको यहां दिखाए गए मैसेज जैसा कोई मैसेज दिखेगा:

Operation "operations/..." finished successfully.

अगर कोई एपीआई छूट जाता है, तो उसे लागू करने के दौरान कभी भी चालू किया जा सकता है.

gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

3. GKE क्लस्टर सेट अप करना

इस चरण में, हम एक GKE क्लस्टर सेट अप करेंगे, जिसमें हम अपनी कमांड चलाएंगे. पक्का करें कि आपने पिछले चरण पूरे कर लिए हों. साथ ही, आपने सही प्रोजेक्ट आईडी सेट अप किया हो और अपने Google Cloud प्रोजेक्ट में ज़रूरी सेवाएं चालू की हों.

GKE क्लस्टर बनाना

Cloud Shell में दी गई यह कमांड चलाएं. अगर आपको क्लस्टर किसी दूसरे ज़ोन में बनाना है, तो --zone वैल्यू को बदलकर उस ज़ोन के हिसाब से सेट करें.

gcloud container clusters create my-gke-cluster \
       --num-nodes 2 \
       --machine-type e2-standard-4 \
       --zone us-central1-a

इसे पूरा होने में कुछ समय लग सकता है. इसलिए, कृपया इंतज़ार करें. प्रोसेस पूरी होने के बाद, आपको नीचे दिए गए उदाहरण से मिलता-जुलता आउटपुट दिखेगा:

Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.                                                                                                             
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4

GKE क्लस्टर की जानकारी की पुष्टि करना

सबसे पहले, क्लस्टर के क्रेडेंशियल फ़ेच करते हैं:

gcloud container clusters get-credentials my-gke-cluster \
                 --zone us-central1-a

आपको नीचे दिखाया गया आउटपुट दिखेगा:

Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.

इसके बाद, क्लस्टर की जानकारी की पुष्टि करें:

kubectl get nodes

आपको ऐसा आउटपुट दिखेगा:

NAME                                            STATUS   ROLES    AGE     VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z   Ready    <none>   2m58s   v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl   Ready    <none>   3m2s    v1.33.4-gke.1350000

आखिर में, क्लस्टर नेमस्पेस की पुष्टि करें:

kubectl get namespaces

आपको ऐसा आउटपुट दिखेगा:

NAME                          STATUS   AGE
default                       Active   6m16s
gke-managed-cim               Active   4m21s
gke-managed-system            Active   4m6s
gke-managed-volumepopulator   Active   4m
gmp-public                    Active   3m40s
gmp-system                    Active   3m41s
kube-node-lease               Active   6m16s
kube-public                   Active   6m16s
kube-system                   Active   6m16s

4. kubectl-ai सीएलआई इंस्टॉल करना

हम kubectl-ai CLI को इंस्टॉल करने के लिए, क्विक इंस्टॉल (सुझाया गया) का इस्तेमाल करेंगे.

Cloud Shell में यह कमांड डालें:

curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash

इससे kubectl-ai CLI डाउनलोड और इंस्टॉल हो जाएगा. इसके बाद, आपको यह मैसेज दिखेगा:

✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.

हम यह पुष्टि कर सकते हैं कि kubectl-ai कमांड काम कर रहा है या नहीं. इसके लिए, यह कमांड चलाएं:

kubectl-ai

ध्यान दें: ऊपर दी गई कमांड से, गड़बड़ी का यह मैसेज दिखेगा कि

creating llm client: GEMINI_API_KEY environment variable not set

ध्यान दें कि kubectl-ai, gemini, vertexai, azopenai, openai, grok, bedrock और स्थानीय एलएलएम उपलब्ध कराने वाली कंपनियों के एआई मॉडल के साथ काम करता है. जैसे, ollama और llama.cpp. हम Gemini (Google) का इस्तेमाल करेंगे. इसके लिए, हमें Google AI Studio से एपीआई पासकोड लेना होगा. कुंजी जनरेट करने और वैल्यू तैयार होने के बाद, Cloud Shell में इस कमांड का इस्तेमाल करके, GEMINI_API_KEY एनवायरमेंट वैरिएबल सेट करें. यह वैरिएबल, आपकी कुंजी की ओर इशारा करता है.

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

ध्यान दें: "GEMINI_API_KEY" का इस्तेमाल सिर्फ़ कुंजी वैल्यू के तौर पर करें

kubectl-ai को एक बार फिर लॉन्च करें. इस बार आपको दिखेगा कि यह लॉन्च हो गया है और इंटरैक्टिव टर्मिनल में आपके निर्देश का इंतज़ार कर रहा है.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

प्रॉम्प्ट में, kubectl कमांड से जुड़ी कुछ क्वेरी डालकर देखें. नीचे कुछ सैंपल दिए गए हैं:

  • What is the command to get the nodes in a cluster?
  • list pods

kubectl-ai टाइप करके, kubectl-ai टर्मिनल से बाहर निकला जा सकता है.quit

5. kubectl-ai का इस्तेमाल करना

kubectl-ai को कॉन्फ़िगर करने के बाद, अब आपके पास आम भाषा में क्वेरी का इस्तेमाल करके क्लस्टर से इंटरैक्ट करने की सुविधा है. चलिए, कुछ और निर्देश आज़माते हैं:

यह कमांड चलाएं:

kubectl-ai --model gemini-2.5-flash "list pods in default namespace"

इससे यह आउटपुट मिलेगा:

Running: kubectl get pods -n default

There are no resources found in the default namespace.      

>>>

ध्यान दें कि इसने हमारी सामान्य भाषा में की गई क्वेरी को, पॉड की सूची बनाने के लिए kubectl कमांड में कैसे बदला.

इसके अलावा, ध्यान दें कि अब हम kubectl-ai इंटरैक्टिव टर्मिनल (>>>) में हैं. यहां हम इससे इंटरैक्ट करना जारी रख सकते हैं.

यह निर्देश दें:

how many pods are there in kube-system namespace

आउटपुट यहां दिखाया गया है:

>>> how many pods are there in kube-system namespace

Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'

There are 18 pods in the kube-system namespace.

सिंगल शॉट कमांड

पिछले सेक्शन में बताया गया था कि kubectl-ai को कैसे लॉन्च किया जा सकता है और इंटरैक्टिव टर्मिनल में बने रहकर, अगले निर्देश कैसे दिए जा सकते हैं. यह उन निर्देशों के लिए सही नहीं है जिन्हें आपको अपने-आप पूरा करना है. साथ ही, आपको इंटरैक्टिव प्रॉम्प्ट के बिना, अगले निर्देश का इंतज़ार नहीं करना है.

--quiet पैरामीटर के साथ सिंगल शॉट कमांड का तरीका डालें.

यहां डिप्लॉयमेंट बनाने के लिए, निर्देश का एक सैंपल दिया गया है.

kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions

इससे create deployment कमांड इस तरह से लागू होगी:

Running: kubectl create deployment nginx --image=nginx --replicas=2

I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .

इस तरह, हम अपने मौजूदा GKE क्लस्टर के साथ इंटरैक्ट करने के लिए kubectl-ai को सेट अप कर पाए.

हमने अभी कुछ ही निर्देश दिए हैं और kubectl-ai के साथ काम करने का एक तरीका दिखाया है. आउटपुट को अन्य टूल पर पाइप किया जा सकता है. साथ ही, गड़बड़ियों को समझा जा सकता है. इसके अलावा, kubectl-ai के अलग-अलग सेशन रन के बीच बने रहने की सुविधा और अन्य सुविधाओं के बारे में जाना जा सकता है. टूल के दस्तावेज़ का इस्तेमाल सेक्शन ज़रूर देखें.

6. (ज़रूरी नहीं) kubectl-ai का चैट इंटरफ़ेस

कुछ मामलों में, आपको स्टैंडर्ड चैट इंटरफ़ेस के ज़रिए kubectl-ai के साथ काम करना बेहतर लग सकता है. Kubectl-ai में अपना यूज़र इंटरफ़ेस (यूआई) होता है. इसे Cloud Shell में नीचे दी गई कमांड के ज़रिए लॉन्च किया जा सकता है:

kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080

इससे चैट इंटरफ़ेस में यूटिलिटी लॉन्च हो जाएगी. आपको इससे मिलता-जुलता आउटपुट दिखेगा:

listening on http://[::]:8080

नीचे दिए गए तरीके से, Cloud Shell में वेब प्रीव्यू पर क्लिक करें:

f990712162e8e924.png

इसके बाद, पोर्ट 8080 पर झलक देखें पर क्लिक करें. इससे ब्राउज़र लॉन्च होगा और वेब चैट इंटरफ़ेस उपलब्ध होगा. यह इंटरफ़ेस यहां दिखाया गया है:

90fce57ad7f16842.png

यहां एक सैंपल क्वेरी दी गई है, जिसे हमने चैट इंटरफ़ेस में एक्ज़ीक्यूट किया है:

6a304d227d3fa5a6.png

इस इंटरफ़ेस में अन्य क्वेरी आज़माएं. यह आपको इस बारे में भी सुझाव देता है कि आम भाषा में कौनसी अन्य क्वेरी चलाई जा सकती हैं.

7. व्यवस्थित करें

अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, इस वर्कशॉप के दौरान बनाई गई संसाधनों को मिटाना ज़रूरी है.

अगर आपको इस लैब के पिछले सेक्शन में बनाया गया GKE क्लस्टर नहीं चाहिए, तो इसे इस कमांड से मिटाया जा सकता है:

gcloud container clusters delete my-gke-cluster --zone=us-central1-a

8. बधाई हो

बधाई हो, आपने kubectl-ai का इस्तेमाल करके, Kubernetes क्लस्टर को मैनेज कर लिया है. यह एआई की मदद से काम करने वाला Kubernetes असिस्टेंट है. आपने इसे आम बोलचाल वाली भाषा में क्वेरी दी थीं. ज़्यादा जानकारी के लिए, अगले सेक्शन में दिए गए संसाधन देखें.

9. संसाधन