Operator ini dirancang untuk memungkinkan K8SGPT dalam kluster Kubernetes. Ini akan memungkinkan Anda untuk membuat sumber daya khusus yang mendefinisikan perilaku dan ruang lingkup beban kerja K8SGPT yang dikelola. Analisis dan output juga akan dapat dikonfigurasi untuk memungkinkan integrasi ke dalam alur kerja yang ada.
helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
Pasang operator dari bagian instalasi.
Buat Rahasia:
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. " ,
Operator k8sgpt.ai
memungkinkan pemantauan beberapa cluster dengan memberikan nilai kubeconfig
.
Fitur ini bisa menarik jika Anda ingin merangkul rekayasa platform seperti menjalankan armada kluster Kubernetes untuk banyak pemangku kepentingan. Terutama dirancang untuk infrastruktur berbasis API cluster, operator k8sgpt.ai
akan dipasang di kluster manajemen API cluster yang sama: yang ini bertanggung jawab untuk membuat cluster yang diperlukan sesuai dengan penyedia infrastruktur untuk kelompok benih.
Setelah kluster berbasis API cluster telah disediakan kubeconfig
sesuai dengan konvensi penamaan ${CLUSTERNAME}-kubeconfig
akan tersedia di namespace yang sama: Kunci data rahasia konvensional adalah value
, ini dapat digunakan untuk menginstruksikan operator unggas 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
Masalah keamanan
Jika pengaturan Anda memerlukan pendekatan hak istimewa paling sedikit,
kubeconfig
yang berbeda harus disediakan karena API cluster yang dihasilkan satu dibatasi untuk penggunaadmin
yang memiliki izinclustr-admin
.
Setelah Anda memiliki kubeconfig
yang valid, instance k8sgpt
dapat dibuat saat berikut.
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
Setelah diterapkan, operator k8sgpt.ai
akan membuat penyebaran k8sgpt.ai
dengan menggunakan kluster benih kubeconfig
yang ditentukan dalam bidang /spec/kubeconfig
.
Objek Result
yang dihasilkan akan tersedia di namespace yang sama di mana instance k8sgpt.ai
telah digunakan, dengan demikian diberi label dengan tombol berikut:
k8sgpts.k8sgpt.ai/name
: nama instance k8sgpt.ai
k8sgpts.k8sgpt.ai/namespace
: namespace instance k8sgpt.ai
k8sgpts.k8sgpt.ai/backend
: backend AI (jika ditentukan) Berkat label -label ini, hasilnya dapat disaring sesuai dengan cluster yang dipantau yang ditentukan, tanpa mencemari cluster yang mendasarinya dengan k8sgpt.ai
CRD dan mengonsumsi beban kerja komputasi benih, serta menjaga kerahasiaan tentang kredensial driver backend AI.
Dalam kasus bidang yang hilang
/spec/kubeconfig
, operatork8sgpt.ai
akan melacak cluster yang telah digunakan: Ini dimungkinkan dengan memasangServiceAccount
yang disediakan.
Pasang operator dari bagian instalasi.
Buat Rahasia:
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
Pasang operator dari bagian instalasi.
Buat Rahasia:
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
Pasang operator dari bagian instalasi.
Buat Rahasia:
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
Pasang operator dari bagian instalasi.
Saat menjalankan AWS, Anda memiliki sejumlah cara untuk memberikan izin kepada beban kerja K8SGPT yang dikelola untuk mengakses Amazon Bedrock.
Untuk memberikan akses ke batuan dasar menggunakan akun layanan Kubernetes, buat peran IAM dengan izin batuan dasar. Contoh kebijakan disertakan di bawah ini:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
Untuk memberikan akses ke batuan dasar menggunakan kredensial AWS dalam rahasia Kubernetes Anda dapat membuat rahasia:
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
Pasang operator dari bagian instalasi.
Ikuti Panduan Instalasi Localai untuk menginstal Localai. ( Tidak diperlukan rahasia openai saat menggunakan localai ).
Terapkan objek konfigurasi 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
Catatan: Pastikan nilai baseUrl
adalah nama DNS yang dibangun dengan benar untuk layanan Localai. Ini harus mengambil formulir: 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
Parameter opsional tersedia untuk wastafel.
('Type', 'WebHook' adalah parameter yang diperlukan.)
alat | saluran | icon_url | nama belakang |
---|---|---|---|
Kendur | |||
Paling penting | ✔️ | ✔️ | ✔️ |
Untuk detailnya silakan lihat di sini