1. مقدمه
kubectl-ai
یک رابط هوشمند مبتنی بر هوش مصنوعی است که قصد کاربر را به عملیات دقیق Kubernetes تبدیل میکند و مدیریت Kubernetes را در دسترستر و کارآمدتر میکند.
کاری که خواهی کرد
- شما با
kubectl-ai
، یک ابزار مجهز به دستیار Kubernetes با هوش مصنوعی برای مدیریت یک خوشه GKE کار خواهید کرد.
چیزی که یاد خواهید گرفت
- شما یک کلاستر GKE ایجاد می کنید و
kubectl-ai.
- شما وظایف Kubernetes مانند مدیریت، ایجاد، وصله منابع با عیب یابی کلاسترها و منابع را انجام خواهید داد.
آنچه شما نیاز دارید
- مرورگر وب کروم
- یک اکانت جیمیل
- یک پروژه Cloud با فعال کردن صورتحساب
- یک کلید API Gemini
این کد لبه انتظار دارد که کاربر با دانش اولیه Kubernetes آشنا باشد.
2. قبل از شروع
یک پروژه ایجاد کنید
- در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید.
- مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورتحساب در پروژه آشنا شوید.
- شما از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان در حال اجرا در Google Cloud که با bq از قبل بارگذاری شده است. روی Activate Cloud Shell در بالای کنسول Google Cloud کلیک کنید.
- پس از اتصال به Cloud Shell، با استفاده از دستور زیر بررسی میکنید که قبلاً احراز هویت شدهاید و پروژه به ID پروژه شما تنظیم شده است:
gcloud auth list
- دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد.
gcloud config list project
- اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:
gcloud config set project <YOUR_PROJECT_ID>
- API های مورد نیاز را از طریق دستور زیر فعال کنید. این ممکن است چند دقیقه طول بکشد، پس لطفا صبور باشید.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
در اجرای موفقیت آمیز دستور، باید پیامی مشابه تصویر زیر مشاهده کنید:
Operation "operations/..." finished successfully.
اگر هر یک از API از دست رفته است، همیشه می توانید آن را در طول پیاده سازی فعال کنید.
برای دستورات و استفاده از 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 CLI را نصب کنید
ما از روش نصب سریع (توصیه شده) برای نصب 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 از مدلهای AI از gemini
، vertexai
، azopenai
، openai
، grok
، bedrock
و ارائهدهندگان محلی LLM مانند ollama
و llama.cpp
پشتیبانی میکند. در مورد ما، ما از Gemini (Google) استفاده خواهیم کرد و باید یک کلید API برای آن از طریق 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
با تایپ کردن quit
می توانید از ترمینال kubectl-ai
خارج شوید.
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 .
به این ترتیب ما توانستیم kubectl-ai
برای تعامل با خوشه GKE فعلی خود راه اندازی کنیم.
ما فقط چند دستور را اجرا کردیم و یک حالت کار با 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
مطابق شکل زیر روی Web Preview در Cloud Shell کلیک کنید:
سپس روی Preview در پورت 8080 کلیک کنید. این یک مرورگر را راه اندازی می کند و رابط چت وب را مطابق شکل زیر در دسترس قرار می دهد:
در اینجا یک پرس و جو نمونه است که ما در رابط چت اجرا کردیم:
سوالات دیگر را در این رابط امتحان کنید. همچنین نکاتی را در مورد دیگر درخواستهای زبان طبیعی که میتوانید اجرا کنید، ارائه میکند.
7. پاکسازی کنید
برای جلوگیری از هزینههای مداوم برای حساب Google Cloud خود، مهم است که منابعی را که در طول این کارگاه ایجاد کردهایم حذف کنید.
اگر به خوشه GKE که در بخش قبلی این آزمایشگاه ایجاد کردیم نیاز ندارید، می توانید آن را از طریق دستور زیر حذف کنید:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. تبریک می گویم
تبریک میگوییم، شما با موفقیت از kubectl-ai، یک دستیار Kubernetes مجهز به هوش مصنوعی برای مدیریت خوشه Kubernetes خود از طریق جستجوهای زبان طبیعی استفاده کردید. برای اطلاعات بیشتر، به منابع ذکر شده در بخش بعدی مراجعه کنید.