
k8sgpt هي أداة لمسح مجموعات Kubernetes الخاصة بك ، وتشخيص ، والثالوث المشكلات في اللغة الإنجليزية البسيطة.
قامت بتجربة SRE بتدوينها في تحليلاتها وتساعد على سحب المعلومات الأكثر صلة بإثراءها باستخدام الذكاء الاصطناعي.
خارج نطاق دمج الصندوق مع Openai و Azure و Cohere و Amazon Bedrock و Google Gemini والموديلات المحلية.

$ brew install k8sgptأو
brew tap k8sgpt-ai/k8sgpt
brew install k8sgpt32 بت:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.rpm
64 بت:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.rpm
32 بت:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.deb
sudo dpkg -i k8sgpt_386.deb
64 بت:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.deb
sudo dpkg -i k8sgpt_amd64.deb
32 بت:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.apk
apk add --allow-untrusted k8sgpt_386.apk
64 بت:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.apk
apk add --allow-untrusted k8sgpt_amd64.apk
==> Installing k8sgpt from k8sgpt-ai/k8sgpt Error: The following formula cannot be installed from a bottle and must be
built from the source. k8sgpt Install Clang or run brew install gcc.
إذا قمت بتثبيت GCC كما هو مقترح ، فستستمر المشكلة. لذلك ، تحتاج إلى تثبيت الحزمة الأساسية.
sudo apt-get update
sudo apt-get install build-essential
للتثبيت داخل مجموعة Kubernetes ، يرجى استخدام k8sgpt-operator مع تعليمات التثبيت هنا
يعد هذا النمط من التشغيل مثاليًا للمراقبة المستمرة لمجموعةك ويمكن أن تتكامل مع مراقبةك الحالية مثل Prometheus و AlertManager.
k8sgpt generate لفتح رابط المتصفح لإنشاءهk8sgpt auth add لوضعه في k8sgpt.--password .k8sgpt filters لإدارة المرشحات النشطة المستخدمة من قبل المحلل. بشكل افتراضي ، يتم تنفيذ جميع المرشحات أثناء التحليل.k8sgpt analyze لتشغيل فحص.k8sgpt analyze --explain للحصول على شرح أكثر تفصيلا للقضايا.k8sgpt analyze --with-doc (مع أو بدون علم شرح) للحصول على الوثائق الرسمية من Kubernetes. يستخدم K8SGPT المحللين للفرز وتشخيص المشكلات في المجموعة الخاصة بك. يحتوي على مجموعة من المحللين المدمجون ، لكنك ستتمكن من كتابة محلللك.
قم بإجراء فحص باستخدام المحللين الافتراضي
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
تصفية على المورد
k8sgpt analyze --explain --filter=Service
تصفية بواسطة مساحة الاسم
k8sgpt analyze --explain --filter=Pod --namespace=default
الإخراج إلى JSON
k8sgpt analyze --explain --filter=Service --output=json
مجهول أثناء التوضيح
k8sgpt analyze --explain --filter=Service --output=json --anonymize
قائمة المرشحات
k8sgpt filters list
إضافة المرشحات الافتراضية
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,Podإزالة المرشحات الافتراضية
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,Podقائمة التكوين الخلفي
k8sgpt auth list
تحديث التكوين الخلفي
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
إزالة الخلفية المكونة
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
قائمة التكامل
k8sgpt integrations list
تنشيط التكامل
k8sgpt integrations activate [integration(s)]
استخدام التكامل
k8sgpt analyze --filter=[integration(s)]
إلغاء تنشيط التكامل
k8sgpt integrations deactivate [integration(s)]
الوضع خدمة
k8sgpt serve
تحليل مع وضع الخدمة
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
التحليل مع الرؤوس المخصصة
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
إحصائيات تحليل الطباعة
k8sgpt analyze -s
The stats mode allows for debugging and understanding the time taken by an analysis by displaying the statistics of each analyzer.
- Analyzer Ingress took 47.125583ms
- Analyzer PersistentVolumeClaim took 53.009167ms
- Analyzer CronJob took 57.517792ms
- Analyzer Deployment took 156.6205ms
- Analyzer Node took 160.109833ms
- Analyzer ReplicaSet took 245.938333ms
- Analyzer StatefulSet took 448.0455ms
- Analyzer Pod took 5.662594708s
- Analyzer Service took 38.583359166s
المعلومات التشخيصية
لجمع المعلومات التشخيصية ، استخدم الأمر التالي لإنشاء dump_<timestamp>_json في الدليل المحلي الخاص بك.
k8sgpt dump
يستخدم K8SGPT LLM المختار ، مزود الذكاء الاصطناعي التوليدي عندما تريد شرح نتائج التحليل باستخدام -العلم على سبيل المثال k8sgpt analyze --explain . يمكنك استخدام --backend Flag لتحديد مزود تم تكوينه (إنه openai افتراضيًا).
يمكنك سرد مقدمي الخدمات المتاحة باستخدام k8sgpt auth list :
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
للحصول على وثائق مفصلة حول كيفية تكوين واستخدام كل مزود انظر هنا.
لتعيين مزود افتراضي جديد
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
مع هذا الخيار ، يتم إخفاء البيانات قبل إرسالها إلى الواجهة الخلفية لمنظمة العفو الدولية. أثناء تنفيذ التحليل ، يسترجع k8sgpt البيانات الحساسة (أسماء الكائنات Kubernetes ، الملصقات ، إلخ). يتم إخفاء هذه البيانات عند إرسالها إلى الواجهة الخلفية لمنظمة العفو الدولية واستبدالها بمفتاح يمكن استخدامه لإلغاء الهوية على البيانات عند إرجاع المحلول إلى المستخدم.
Error: HorizontalPodAutoscaler uses StatefulSet/fake-deployment as ScaleTargetRef which does not exist.Error: HorizontalPodAutoscaler uses StatefulSet/tGLcCRcHa1Ce5Rs as ScaleTargetRef which does not exist.The Kubernetes system is trying to scale a StatefulSet named tGLcCRcHa1Ce5Rs using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.The Kubernetes system is trying to scale a StatefulSet named fake-deployment using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.ملاحظة: لا ينطبق عدم الكشف عن هويته حاليًا على الأحداث.
عدم الكشف عن هويته لا ينطبق حاليًا على الأحداث.
في عدد قليل من المحللين مثل POD ، فإننا نتغذى على خلفية الذكاء الاصطناعي لرسائل الحدث غير المعروفة مسبقًا وبالتالي نحن لا نخفيها في الوقت الحالي .
فيما يلي قائمة المحللين التي يتم فيها إخفاء البيانات:-
فيما يلي قائمة المحللين التي لا يتم إخفاء البيانات فيها:--
*ملحوظة :
لن يخفي K8GPT المحللين أعلاه لأنهم لا يرسلون أي معلومات تعريف باستثناء محلل الأحداث .
من المقرر أن يخفي محلل الأحداث في المستقبل القريب كما هو موضح في هذه القضية. يجب إجراء مزيد من الأبحاث لفهم الأنماط وتكون قادرة على إخفاء الأجزاء الحساسة لحدث مثل اسم POD ، مساحة الاسم ، إلخ.
فيما يلي قائمة الحقول التي لا يتم إخفاءها :-
*ملحوظة :
k8sgpt يخزن بيانات التكوين في ملف $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . يتم تخزين البيانات في نص عادي ، بما في ذلك مفتاح Openai الخاص بك.
مواقع ملفات التكوين:
| نظام التشغيل | طريق |
|---|---|
| ماكوس | ~/Library/Application Support/K8SGPT/K8SGPT.YAML |
| Linux | ~/.config/k8sgpt/k8sgpt.yaml |
| النوافذ | ٪ localappdata ٪/k8sgpt/k8sgpt.yaml |
إضافة ذاكرة التخزين المؤقت عن بعد
AWS_ACCESS_KEY_ID و AWS_SECRET_ACCESS_KEY مطلوب كمتغيرات بيئية.k8sgpt cache add s3 --region <aws region> --bucket <name>k8sgpt cache add s3 --bucket <name> --endpoint <http://localhost:9000>k8sgpt cache add s3 --bucket <name> --endpoint <https://localhost:9000> --insecurek8sgpt cache add azure --storageacc <storage account name> --container <container name>GOOGLE_APPLICATION_CREDENTIALS مطلوب كمتغيرات بيئية.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>إدراج عناصر ذاكرة التخزين المؤقت
k8sgpt cache list
تطهير كائن من ذاكرة التخزين المؤقت ملاحظة: سيقوم تطهير كائن باستخدام هذا الأمر بحذف ملفات المنبع ، لذلك يتطلب أذونات مناسبة.
k8sgpt cache purge $OBJECT_NAME
إزالة ذاكرة التخزين المؤقت عن بُعد : لن يحذف هذا دلو S3 المنبع أو حاوية تخزين Azure
k8sgpt cache remove
قد يكون هناك سيناريوهات حيث ترغب في كتابة محللك بلغة من اختيارك. يدعم K8SGPT الآن القدرة على القيام بذلك عن طريق الالتزام بالمخطط وخدمة المحلل للاستهلاك. للقيام بذلك ، حدد المحلل داخل تكوين K8SGPT وسيضيفه إلى عملية المسح. بالإضافة إلى ذلك ، ستحتاج إلى تمكين العلم التالي في التحليل:
k8sgpt analyze --custom-analysis
فيما يلي مثال على محلل المضيف المحلي في Rust عندما يتم تشغيل هذا على localhost:8080 يمكن لـ K8SGPT Config أن يستلمه بالإضافات التالية:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
هذا الآن يمنح القدرة على المرور عبر معلومات HostOS (من مثال المحلل) إلى K8SGPT لاستخدامه كسياق مع التحليل العادي.
انظر المستندات حول كيفية كتابة محلل مخصص
تم تكوين تحليلات مخصصة
k8sgpt custom-analyzer list
إضافة محلل مخصص دون تثبيت
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
إزالة المحلل المخصص
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
ابحث عن وثائقنا الرسمية المتاحة هنا
يرجى قراءة دليلنا المساهمة.
تجدنا على الركود