تم تصميم هذا المشغل لتمكين K8SGPT داخل مجموعة Kubernetes. سيسمح لك بإنشاء مورد مخصص يحدد سلوك ونطاق عبء عمل K8SGPT المدارة. سيكون التحليل والمخرجات قابلة للتكوين لتمكين التكامل في سير العمل الحالي.
helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
قم بتثبيت المشغل من قسم التثبيت.
خلق سر:
kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key= $OPENAI_TOKEN -n k8sgpt-operator-system
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true
model: gpt-3.5-turbo
backend: openai
secret:
name: k8sgpt-sample-secret
key: openai-api-key
# backOff:
# enabled: false
# maxRetries: 5
# anonymized: false
# language: english
# proxyEndpoint: https://10.255.30.150 # use proxyEndpoint to setup backend through an HTTP/HTTPS proxy
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
#integrations:
# trivy:
# enabled: true
# namespace: trivy-system
# filters:
# - Ingress
# sink:
# type: slack
# webhook: <webhook-url> # use the sink secret if you want to keep your webhook url private
# secret:
# name: slack-webhook
# key: url
#extraOptions:
# backstage:
# enabled: true
EOF
❯ kubectl get results -o json | jq .
{
" apiVersion " : " v1 " ,
" items " : [
{
" apiVersion " : " core.k8sgpt.ai/v1alpha1 " ,
" kind " : " Result " ,
" spec " : {
" details " : " The error message means that the service in Kubernetes doesn't have any associated endpoints, which should have been labeled with " control-plane=controller-manager " . nnTo solve this issue, you need to add the " control-plane=controller-manager " label to the endpoint that matches the service. Once the endpoint is labeled correctly, Kubernetes can associate it with the service, and the error should be resolved. " ,
يتيح مشغل k8sgpt.ai
مراقبة مجموعات متعددة من خلال توفير قيمة kubeconfig
.
قد تكون هذه الميزة رائعة إذا كنت ترغب في احتضان هندسة المنصات مثل تشغيل أسطول من مجموعات Kubernetes لعدة أصحاب المصلحة. سيتم تثبيت مشغل k8sgpt.ai
بشكل خاص للبنية التحتية المستندة إلى API Cluster في مجموعة إدارة واجهة برمجة تطبيقات المجموعة نفسها: هذه الهيئة مسؤولة عن إنشاء المجموعات المطلوبة وفقًا لمزود البنية التحتية لمجموعات البذور.
بمجرد أن يتم توفير مجموعة قائمة على API Cluster A kubeconfig
وفقًا لاتفاقية التسمية ${CLUSTERNAME}-kubeconfig
ستكون value
في نفس مساحة الاسم: مفتاح البيانات السرية التقليدية ، يمكن استخدام ذلك لتوجيه مشغل k8sgpt.ai
لمراقبة الكئة عن بُعد دون تثبيت أي دائرة مورد للوارد.
$: kubectl get clusters
NAME PHASE AGE VERSION
capi-quickstart Provisioned 8s v1.28.0
$: kubectl get secrets
NAME TYPE DATA AGE
capi-quickstart-kubeconfig Opaque 1 8s
مصدر قلق أمني
إذا كان الإعداد الخاص بك يتطلب منهج امتياز أقل ، فيجب توفير
kubeconfig
مختلف لأن واجهة برمجة تطبيقات الكتلة التي تم إنشاؤها محدودة لمستخدمadmin
الذي يحتوي على أذوناتclustr-admin
.
بمجرد حصولك على kubeconfig
صالح ، يمكن إنشاء مثيل k8sgpt
كما يلي.
apiVersion : core.k8sgpt.ai/v1alpha1
kind : K8sGPT
metadata :
name : capi-quickstart
namespace : default
spec :
ai :
anonymized : true
backend : openai
language : english
model : gpt-3.5-turbo
secret :
key : api_key
name : my_openai_secret
kubeconfig :
key : value
name : capi-quickstart-kubeconfig
بمجرد تطبيق مشغل k8sgpt.ai
سيقوم مشغل k8sgpt.ai
باستخدام مجموعة البذور kubeconfig
المحددة في الحقل /spec/kubeconfig
.
ستكون كائنات Result
الناتجة متوفرة في نفس مساحة الاسم حيث تم نشر مثيل k8sgpt.ai
، وفقًا لذلك مع المفاتيح التالية:
k8sgpts.k8sgpt.ai/name
: اسم مثيل k8sgpt.ai
k8sgpts.k8sgpt.ai/namespace
: مساحة اسم مثيل k8sgpt.ai
k8sgpts.k8sgpt.ai/backend
: الواجهة الخلفية من الذكاء الاصطناعي (إذا تم تحديدها) بفضل هذه الملصقات ، يمكن ترشيح النتائج وفقًا للمجموعة المحددة المراقبة ، دون تلويث المجموعة الأساسية مع k8sgpt.ai
CRDs واستهلاك أعباء عمل لحساب البذور ، وكذلك الحفاظ على السرية حول بيانات اعتماد سائق AI الخلفية.
في حالة حقل مفقود
/spec/kubeconfig
، سيقوم مشغلk8sgpt.ai
بتتبع الكتلة التي تم نشرها عليها: هذا ممكن عن طريق تركيبServiceAccount
المقدم.
قم بتثبيت المشغل من قسم التثبيت.
خلق سر:
kubectl create secret generic k8sgpt-sample-cache-secret --from-literal=azure_client_id= < AZURE_CLIENT_ID > --from-literal=azure_tenant_id= < AZURE_TENANT_ID > --from-literal=azure_client_secret= < AZURE_CLIENT_SECRET > -n k8sgpt-
operator-system
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
model: gpt-3.5-turbo
backend: openai
enabled: true
secret:
name: k8sgpt-sample-secret
key: openai-api-key
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
remoteCache:
credentials:
name: k8sgpt-sample-cache-secret
azure:
# Storage account must already exist
storageAccount: "account_name"
containerName: "container_name"
EOF
قم بتثبيت المشغل من قسم التثبيت.
خلق سر:
kubectl create secret generic k8sgpt-sample-cache-secret --from-literal=aws_access_key_id= < AWS_ACCESS_KEY_ID > --from-literal=aws_secret_access_key= < AWS_SECRET_ACCESS_KEY > -n k8sgpt-
operator-system
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
model: gpt-3.5-turbo
backend: openai
enabled: true
secret:
name: k8sgpt-sample-secret
key: openai-api-key
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
remoteCache:
credentials:
name: k8sgpt-sample-cache-secret
s3:
bucketName: foo
region: us-west-1
EOF
قم بتثبيت المشغل من قسم التثبيت.
خلق سر:
kubectl create secret generic k8sgpt-sample-secret --from-literal=azure-api-key= $AZURE_TOKEN -n k8sgpt-operator-system
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true
secret:
name: k8sgpt-sample-secret
key: azure-api-key
model: gpt-35-turbo
backend: azureopenai
baseUrl: https://k8sgpt.openai.azure.com/
engine: llm
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
EOF
قم بتثبيت المشغل من قسم التثبيت.
عند التشغيل على AWS ، لديك عدد من الطرق لإعطاء الإذن لعبء العمل K8SGPT المدار للوصول إلى صدمة Amazon Bedrock.
لمنح الوصول إلى الأساس باستخدام حساب خدمة Kubernetes ، قم بإنشاء دور IAM مع أذونات الأساس. يتم تضمين سياسة مثال أدناه:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
لمنح الوصول إلى الأساس باستخدام بيانات اعتماد AWS في سر Kubernetes يمكنك إنشاء سر:
kubectl create secret generic bedrock-sample-secret --from-literal=AWS_ACCESS_KEY_ID= " $( echo $AWS_ACCESS_KEY_ID ) " --from-literal=AWS_SECRET_ACCESS_KEY= " $( echo $AWS_SECRET_ACCESS_KEY ) " -n k8sgpt-operator-system
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true
secret:
name: bedrock-sample-secret
model: anthropic.claude-v2
region: eu-central-1
backend: amazonbedrock
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
EOF
قم بتثبيت المشغل من قسم التثبيت.
اتبع دليل تثبيت Localai لتثبيت Localai. ( لا يلزم سرية Openai عند استخدام Localai ).
قم بتطبيق كائن تكوين K8SGPT:
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-local-ai
namespace: default
spec:
ai:
enabled: true
model: ggml-gpt4all-j
backend: localai
baseUrl: http://local-ai.local-ai.svc.cluster.local:8080/v1
noCache: false
repository: ghcr.io/k8sgpt-ai/k8sgpt
version: v0.3.41
EOF
ملاحظة: تأكد من أن قيمة baseUrl
هي اسم DNS تم إنشاؤه بشكل صحيح لخدمة Localai. يجب أن يستغرق النموذج: http://local-ai.<namespace_local_ai_was_installed_in>.svc.cluster.local:8080/v1
.
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true
model: gpt-3.5-turbo
backend: openai
secret:
name: k8sgpt-sample-secret
key: openai-api-key
noCache: false
repository: sample.repository/k8sgpt
version: sample-tag
imagePullSecrets:
- name: sample-secret
EOF
المعلمات الاختيارية المتاحة للحوض.
('type' ، 'Webhook' هي معلمات مطلوبة.)
أداة | قناة | icon_url | اسم المستخدم |
---|---|---|---|
الركود | |||
المادة | ✔ | ✔ | ✔ |
لمزيد من التفاصيل يرجى الاطلاع هنا