1. مقدمة
kubectl-ai
هي واجهة ذكية مستندة إلى الذكاء الاصطناعي تحوّل نية المستخدم إلى عمليات دقيقة في Kubernetes، ما يجعل إدارة Kubernetes أكثر سهولة وفعالية.
المهام التي ستنفذها
- ستعمل مع
kubectl-ai
، وهي أداة مستندة إلى الذكاء الاصطناعي (AI) لإدارة مجموعة GKE.
ما ستتعلمه
- ستنشئ مجموعة GKE وتُعدّ
kubectl-ai.
- ستنفّذ مهام Kubernetes، مثل إدارة الموارد وإنشائها وتصحيحها باستخدام المجموعات والموارد المخصّصة لتحديد المشاكل وحلّها.
المتطلبات
- متصفّح الويب Chrome
- حساب Gmail
- مشروع على السحابة الإلكترونية تم تفعيل الفوترة فيه
- مفتاح Gemini API
يفترض هذا الدرس العملي أن يكون المستخدم على دراية بالمعلومات الأساسية عن Kubernetes.
2. قبل البدء
إنشاء مشروع
- في Google Cloud Console، ضمن صفحة اختيار المشروع، اختَر أو أنشِئ مشروعًا على Google Cloud.
- تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع .
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومحمَّلة مسبقًا بأداة bq. انقر على "تفعيل Cloud Shell" في أعلى "وحدة تحكّم Google Cloud".
- بعد الاتصال بـ Cloud Shell، تحقَّق من أنّك قد تمّت مصادقتك وأنّه تم ضبط المشروع على معرّف مشروعك باستخدام الأمر التالي:
gcloud auth list
- نفِّذ الأمر التالي في Cloud Shell للتأكّد من أنّ أمر gcloud يعرف مشروعك.
gcloud config list project
- إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
- فعِّل واجهات برمجة التطبيقات المطلوبة من خلال الأمر الموضّح أدناه. قد تستغرق هذه العملية بضع دقائق، لذا يُرجى الانتظار.
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 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 يتوافق مع نماذج الذكاء الاصطناعي من 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
الطرفية عن طريق كتابة 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 .
بهذه الطريقة، تمكّنا من إعداد kubectl-ai
للتفاعل مع مجموعة GKE الحالية.
لقد نفّذنا للتو بعض الأوامر وعرضنا طريقة العمل باستخدام kubectl-ai
. يمكنك توجيه الناتج إلى أدوات أخرى، وفهم الأخطاء، والحفاظ على البيانات بين عمليات تشغيل الجلسات المختلفة في kubectl-ai
، وغير ذلك. يُرجى الرجوع إلى قسم الاستخدام في مستندات الأداة.
6. (اختياري) واجهة المحادثة في kubectl-ai
في بعض الحالات، قد تفضّل العمل مع kubectl-ai
من خلال واجهة Chat عادية. تتضمّن 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 كما هو موضّح أدناه:
بعد ذلك، انقر على معاينة على المنفذ 8080. سيؤدي ذلك إلى تشغيل متصفّح وإتاحة واجهة محادثة الويب كما هو موضّح أدناه:
في ما يلي نموذج استعلام نفّذناه في واجهة المحادثة:
جرِّب طلبات بحث أخرى في هذه الواجهة. تقدّم هذه الميزة أيضًا تلميحات بشأن طلبات البحث الأخرى التي يمكنك تنفيذها باللغة الطبيعية.
7. تَنظيم
لتجنُّب تحصيل رسوم مستمرة من حسابك على Google Cloud، من المهم حذف الموارد التي أنشأناها خلال ورشة العمل هذه.
إذا لم تعُد بحاجة إلى مجموعة GKE التي أنشأناها في القسم السابق من هذا المختبر، يمكنك حذفها باستخدام الأمر التالي:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. تهانينا
تهانينا، لقد استخدمت بنجاح kubectl-ai، وهو مساعد Kubernetes مستند إلى الذكاء الاصطناعي لإدارة مجموعة Kubernetes من خلال طلبات البحث باللغة الطبيعية. لمزيد من المعلومات، يُرجى الرجوع إلى المراجع الواردة في القسم التالي.