
Cet opérateur est conçu pour activer K8SGPT dans un cluster Kubernetes. Il vous permettra de créer une ressource personnalisée qui définit le comportement et la portée d'une charge de travail K8SGPT gérée. L'analyse et les sorties seront également configurables pour permettre l'intégration dans les flux de travail existants.

helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
Installez l'opérateur à partir de la section d'installation.
Créer un secret:
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. " , L'opérateur k8sgpt.ai permet de surveiller plusieurs clusters en fournissant une valeur kubeconfig .
Cette fonctionnalité pourrait être fascinante si vous souhaitez adopter l'ingénierie de la plate-forme telle que la gestion d'une flotte de grappes de Kubernetes pour plusieurs parties prenantes. Surtout conçu pour les infrastructures basées sur l'API en cluster, l'opérateur k8sgpt.ai va être installé dans le même cluster de gestion des API de cluster: celui-ci est responsable de la création des clusters requis selon le fournisseur d'infrastructure pour les grappes de semences.
Une fois qu'un cluster basé sur l'API a été provisionné un kubeconfig selon la convention de dénomination ${CLUSTERNAME}-kubeconfig sera disponible dans le même espace de noms: la clé de données secrètes conventionnelle est value , cela peut être utilisé pour instruire l'opérateur k8sgpt.ai pour surveiller un cluster à distance sans installer une ressource déployée à l'opérateur de graines.
$: 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
Un problème de sécurité
Si votre configuration nécessite la moindre approche de privilège, un autre
kubeconfigdoit être fourni car l'API du cluster généré est délimitée à l'utilisateuradminqui a des autorisationsclustr-admin.
Une fois que vous avez un kubeconfig valide, une instance k8sgpt peut être créée comme elle suit.
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 Une fois appliqué, l'opérateur k8sgpt.ai créera le déploiement k8sgpt.ai en utilisant le cluster de graines kubeconfig défini dans le champ /spec/kubeconfig .
Les objets Result résultant seront disponibles dans le même espace de noms où l'instance k8sgpt.ai a été déployée, en conséquence étiquetée avec les clés suivantes:
k8sgpts.k8sgpt.ai/name : le nom de l'instance k8sgpt.aik8sgpts.k8sgpt.ai/namespace : L'espace de noms d'instance k8sgpt.aik8sgpts.k8sgpt.ai/backend : le backend AI (si spécifié) Grâce à ces étiquettes, les résultats peuvent être filtrés en fonction du cluster surveillé spécifié, sans polluer le cluster sous-jacent avec le k8sgpt.ai CRDS et la consommation de charges de travail de calcul des semences, ainsi que la confidentialité des informations d'identification du conducteur du backend AI.
En cas de champ manquant
/spec/kubeconfig, l'opérateurk8sgpt.aisuivra le cluster sur lequel a été déployé: cela est possible en montant leServiceAccountfourni.
Installez l'opérateur à partir de la section d'installation.
Créer un secret:
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
Installez l'opérateur à partir de la section d'installation.
Créer un secret:
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
Installez l'opérateur à partir de la section d'installation.
Créer un secret:
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
Installez l'opérateur à partir de la section d'installation.
Lorsque vous fonctionnez sur AWS, vous avez plusieurs façons de donner la permission à la charge de travail K8SGPT gérée pour accéder au substratum rocheux d'Amazon.
Pour accorder l'accès au substratum rocheux à l'aide d'un compte de service Kubernetes, créez un rôle IAM avec les autorisations de substratum rocheux. Un exemple de politique est inclus ci-dessous:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
Pour accorder l'accès au socle en utilisant des informations d'identification AWS dans un secret de Kubernetes, vous pouvez créer un secret:
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
Installez l'opérateur à partir de la section d'installation.
Suivez le Guide d'installation de Localai pour installer localai. ( Aucun secret Openai n'est requis lors de l'utilisation de localai ).
Appliquer l'objet de configuration 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 Remarque: Assurez-vous que la valeur de baseUrl est un nom DNS correctement construit pour le service localai. Il devrait prendre la forme: 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 Paramètres facultatifs disponibles pour l'évier.
(«type», «webhook» sont des paramètres requis.)
| outil | canal | icon_url | nom d'utilisateur |
|---|---|---|---|
| Mou | |||
| La plus importante | ✔️ | ✔️ | ✔️ |
Pour plus de détails, veuillez consulter ici