
Dieser Bediener ist so konzipiert, dass K8SGPT in einem Kubernetes -Cluster ermöglicht wird. Sie können eine benutzerdefinierte Ressource erstellen, die das Verhalten und den Umfang einer verwalteten K8SGPT -Arbeitsbelastung definiert. Analyse und Ausgaben können auch konfigurierbar sein, um die Integration in vorhandene Workflows zu ermöglichen.

helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
Installieren Sie den Bediener aus dem Installationsabschnitt.
Geheimnis erstellen:
kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key= $OPENAI_TOKEN -n k8sgpt-operator-systemkubectl 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. " , Der k8sgpt.ai -Bediener ermöglicht die Überwachung mehrerer Cluster durch die Bereitstellung eines kubeconfig -Werts.
Diese Funktion könnte faszinierend sein, wenn Sie Plattformtechnik annehmen möchten, z. B. eine Flotte von Kubernetes -Clustern für mehrere Stakeholder. Der k8sgpt.ai Betreiber ist speziell für die auf Cluster-API-basierten Infrastrukturen entwickelt und wird im gleichen Cluster-API-Management-Cluster installiert: Dieser ist für die Erstellung der erforderlichen Cluster gemäß dem Infrastrukturanbieter für die Saatgut-Cluster verantwortlich.
Sobald einem Cluster-API-basierten Cluster eine kubeconfig gemäß der Namenskonvention ${CLUSTERNAME}-kubeconfig im gleichen Namespace verfügbar sein wird: Der herkömmliche Geheimdatenschlüssel ist value , dies kann zur Überwachung eines Remote k8sgpt.ai Cluster verwendet werden, ohne dass ein Remote-Cluster angewiesen wird, ohne dass eine Ressource für die Ressource eingesetzt wird.
$: 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
Ein Sicherheitsbedenken
Wenn für Ihr Setup den Ansatz am wenigsten Privilegien erfordert, muss eine andere
kubeconfigbereitgestellt werden, da die von der Cluster-API erzeugte, an denadminBenutzer begrenzt ist, derenclustr-adminBerechtigungen verfügt.
Sobald Sie eine gültige kubeconfig haben, kann eine k8sgpt -Instanz wie folgt erstellt werden.
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 Sobald der k8sgpt.ai -Betreiber angewendet wurde, wird die Bereitstellung k8sgpt.ai erstellt, indem der im Feld /spec/kubeconfig definierte Saatgut -Cluster kubeconfig definiert ist.
Die resultierenden Result sind im gleichen Namespace verfügbar, in dem die Instanz k8sgpt.ai bereitgestellt wurde, entsprechend mit den folgenden Schlüssel gekennzeichnet:
k8sgpts.k8sgpt.ai/name : DER k8sgpt.ai -Instanznamek8sgpts.k8sgpt.ai/namespace : The k8sgpt.ai -Instanz -Namespacek8sgpts.k8sgpt.ai/backend : Das KI -Backend (falls angegeben) Dank dieser Bezeichnungen können die Ergebnisse gemäß dem angegebenen überwachten Cluster filtriert werden, ohne den zugrunde liegenden Cluster mit den k8sgpt.ai -CRDs zu verschmutzen und die Workloads des Saatguts zu konsumieren und die Vertraulichkeit gegenüber den AI -Backend -Treiber -Anmeldeinformationen zu bewahren.
Im Falle eines fehlenden Feldes
/spec/kubeconfig-Feldes verfolgtk8sgpt.aiden Cluster, für den er bereitgestellt wurde: Dies ist möglich, indem der bereitgestellteServiceAccountgefasst wird.
Installieren Sie den Bediener aus dem Installationsabschnitt.
Geheimnis erstellen:
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
Installieren Sie den Bediener aus dem Installationsabschnitt.
Geheimnis erstellen:
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
Installieren Sie den Bediener aus dem Installationsabschnitt.
Geheimnis erstellen:
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
Installieren Sie den Bediener aus dem Installationsabschnitt.
Wenn Sie auf AWS ausgeführt werden, können Sie die verwaltete K8SGPT -Arbeitsbelastung für die Erlaubnis zur Erlaubnis geben, auf das Amazon -Grundgestein zuzugreifen.
Um mit einem Kubernetes -Servicekonto Zugang zu Grundgestein zu gewähren, erstellen Sie eine IAM -Rolle bei den Grundgesteinsberechtigungen. Eine Beispielrichtlinie ist unten enthalten:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
Um den Zugang zum Grundgestein mit AWS -Anmeldeinformationen in einem Kubernetes -Geheimnis zu gewähren, können Sie ein Geheimnis erstellen:
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
Installieren Sie den Bediener aus dem Installationsabschnitt.
Folgen Sie dem örtlichen Installationshandbuch zur Installation von Localai. ( Bei Verwendung von Localai ist kein OpenAI -Geheimnis erforderlich ).
Wenden Sie das K8SGPT -Konfigurationsobjekt an:
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 HINWEIS: Stellen Sie sicher, dass der Wert von baseUrl ein ordnungsgemäß konstruierter DNS -Name für den lokalen Dienst ist. Es sollte das Formular annehmen: 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 Optionale Parameter für die Spüle verfügbar.
('Typ', 'Webhook' sind erforderliche Parameter.)
| Werkzeug | Kanal | icon_url | Benutzername |
|---|---|---|---|
| Locker | |||
| Materie | ✔️ | ✔️ | ✔️ |
Weitere Informationen finden Sie hier