
이 연산자는 Kubernetes 클러스터 내에서 K8SGPT를 활성화하도록 설계되었습니다. 관리하는 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-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. " , k8sgpt.ai 연산자는 kubeconfig 값을 제공하여 여러 클러스터를 모니터링 할 수 있습니다.
이 기능은 여러 이해 관계자를 위해 Kubernetes 클러스터를 운영하는 것과 같은 플랫폼 엔지니어링을 수용하려는 경우 매력적일 수 있습니다. 특히 클러스터 API 기반 인프라를 위해 설계된 k8sgpt.ai 운영자는 동일한 클러스터 API 관리 클러스터에 설치 될 예정입니다. 이는 종자 클러스터의 인프라 제공 업체에 따라 필요한 클러스터를 작성하는 데 책임이 있습니다.
클러스터 API 기반 클러스터가 명명 컨벤션 ${CLUSTERNAME}-kubeconfig 따라 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
보안 문제
설정에 최소한의 권한 접근법이 필요한 경우 클러스터 API 생성 된 클러스터 API가
clustr-admin권한이있는admin사용자에게 제한되어 있기 때문에 다른kubeconfig제공되어야합니다.
유효한 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 운영자는 적용되면 필드 /spec/kubeconfig 에 정의 된 종자 클러스터 kubeconfig 사용하여 k8sgpt.ai 배포를 생성합니다.
결과 Result 객체는 k8sgpt.ai 인스턴스가 배포 된 동일한 네임 스페이스에서 사용할 수 있으므로 다음 키가 표시됩니다.
k8sgpts.k8sgpt.ai/name : k8sgpt.ai 인스턴스 이름k8sgpts.k8sgpt.ai/namespace : k8sgpt.ai 인스턴스 네임 스페이스k8sgpts.k8sgpt.ai/backend : AI 백엔드 (지정된 경우) 이러한 레이블 덕분에 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에서 실행할 때는 Amazon Bedrock에 액세스하기 위해 관리되는 K8SGPT 워크로드에 권한을 부여하는 여러 가지 방법이 있습니다.
Kubernetes 서비스 계정을 사용하여 기반암에 대한 액세스 권한을 부여하려면 Bedrock 권한으로 IAM 역할을 작성하십시오. 예제 정책은 다음에 포함되어 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
Kubernetes 비밀에서 AWS 자격 증명을 사용하여 기반암에 대한 액세스 권한을 부여하려면 비밀을 만들 수 있습니다.
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를 설치하십시오. ( localai를 사용할 때는 Openai 비밀이 필요하지 않습니다 ).
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 의 값이 LocalAI 서비스에 적절하게 구성된 DNS 이름인지 확인하십시오. 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 | 사용자 이름 |
|---|---|---|---|
| 느슨하게 | |||
| 가장 중요합니다 | ✔️ | ✔️ | ✔️ |
자세한 내용은 여기를 참조하십시오