지난 글에서는 K8sGPT에 대한 소개와 기본적인 활용법을 다뤘습니다.
이번에는 k8sGPT CLI 명령어를 사용하지 않고, Prometheus와 Grafana를 이용해 데이터를 시각화하는 실전 노하우를 공유합니다!
운영 환경에서 장애가 발생했을 때, 어떻게 시각적으로 문제를 파악할 수 있는지 궁금하셨다면 끝까지 읽어주세요. 
1. Prometheus + Grafana 설치 필요 사항 
Prometheus를 설치할 때는 아래 옵션을 꼭 추가해야 합니다.
이 설정을 하지 않으면 Grafana에서 화면이 보이지 않습니다.
bashhelm install prometheus prometheus-community/kube-prometheus-stack -n monitoring --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
•
k8sgpt-operator와 연동하여 정보를 얻기 위한 설정입니다.
2. Kubernetes 시스템 내의 서비스 분석을 위한 Operator 설치 
$ helm repo add k8sgpt https://charts.k8sgpt.ai/
"k8sgpt" has been added to your repositories
$ helm repo list
NAME URL
k8sgpt https://charts.k8sgpt.ai/
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "k8sgpt" chart repository
Update Complete. ⎈Happy Helming!⎈
# k8sgpt-operator 설치 시 interplex / grafana Dashboard / serviceMonitor 기능 활성화 합니다.
$ helm install k8sgpt k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace --set interplex.enabled=true --set grafanaDashboard.enabled=true --set serviceMonitor.enabled=true
NAME: release
LAST DEPLOYED: Tue Feb 11 01:38:11 2025
NAMESPACE: k8sgpt-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
$ helm ls -n k8sgpt-operator-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
k8sgpt k8sgpt-operator-system 1 2025-02-11 01:38:11.148735033 +0000 UTC deployed k8sgpt-operator-0.2.6 0.0.26
Plain Text
복사
3. K8sGPT 서비스 목록 확인 
K8sGPT Opeator 서비스가 동작 중이면, 아래와 같은 화면처럼 동작 되어야 합니다.
$ kubectl get all -n k8sgpt-operator-system
NAME READY STATUS RESTARTS AGE
pod/k8sgpt-interplex-0 1/1 Running 0 116s
pod/k8sgpt-k8sgpt-operator-controller-manager-7676dfb9ff-2nbhb 2/2 Running 0 116s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/k8sgpt-interplex-service ClusterIP None <none> 8084/TCP 117s
service/k8sgpt-k8sgpt-operat-controller-manager-metrics-service ClusterIP 10.110.120.18 <none> 8443/TCP 117s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/k8sgpt-k8sgpt-operator-controller-manager 1/1 1 1 117s
NAME DESIRED CURRENT READY AGE
replicaset.apps/k8sgpt-k8sgpt-operator-controller-manager-7676dfb9ff 1 1 1 116s
NAME READY AGE
statefulset.apps/k8sgpt-interplex 1/1 116s
Plain Text
복사
4. K8sGPT 에 AI 등록에 필요한 Key 및 secret 생성 
# 사전에 생성 한 Cohere API 키 환경 변수 설정
$ export CohereAI_TOKEN="sk...."
# Cohere API 키 환경 변수 사용하여 secret 생성
$ kubectl create secret generic k8sgpt-sample-secret --from-literal=cohereai-api-key=$CohereAI_TOKEN -n k8sgpt-operator-system
Plain Text
복사
5. Cohere 를 K8sGPT 에서 사용 할 수 있도록 K8sGTP CRD 생성
kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample-test
namespace: k8sgpt-operator-system
spec:
ai:
enabled: true # AI 활성화
model: command # AI 버전
backend: cohere # AI 종류
secret:
name: k8sgpt-sample-secret # AI Key 가 등록된 Secret
key: cohereai-api-key
noCache: false
version: v0.3.48 # 최신 K8sgpt 버전으로 명시
EOF
Plain Text
복사
6. K8sGPT Operator results 문제 분석 Test
error 부분 확인 시 문제가 되는 부분은 확인은 되나, 별도의 해결 방안은 제공되지 않았습니다.
$ kubectl get results -n k8sgpt-operator-system -o json | jq .
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "core.k8sgpt.ai/v1alpha1",
"kind": "Result",
"metadata": {
"creationTimestamp": "2025-02-15T23:57:12Z",
"generation": 1,
"labels": {
"k8sgpts.k8sgpt.ai/backend": "cohere",
"k8sgpts.k8sgpt.ai/name": "k8sgpt-sample-test",
"k8sgpts.k8sgpt.ai/namespace": "k8sgpt-operator-system"
},
"name": "defaultbrokenpod",
"namespace": "k8sgpt-operator-system",
"resourceVersion": "4328",
"uid": "053f287e-41da-402d-ba31-2f68d735cad8"
},
"spec": {
"backend": "cohere",
"details": "",
"error": [ # pod error 에 대한 이슈 Log
{
"text": "Back-off pulling image \"nginx:11111\""
}
],
"kind": "Pod",
"name": "default/k8sgpt-pod-test",
"parentObject": ""
},
"status": {}
}
Plain Text
복사
7. Prometheus + Grafana 를 통한 K8sGPT 분석 모니터링 확인
•
아래의 그래프는 K8sgpt-operator 에서 분석을 진행 됩니다.
•
잘못 된 image Tag, 잘못 기입한 Node 지정 문제 등 문제가 되는 서비스를 순차적으로 생성해 보았습니다.
•
문제로 감지된 서비스에 대해 0 → 1 → 3 등 숫자로 실시간으로 표시 하는 것을 확인 할 수 있었습니다.
•
해당 문제가 정확히 어느 서비스 인지, 쉽게 파악하기는 어려웠습니다.
8. 마치며 
이슈 발생 시 AI가 장애 원인을 제시해준다는 점은 Kubernetes 사용에 익숙하지 않은 사용자에게 큰 도움이 될 수 있습니다.
하지만 K8sGPT와 연동된 AI의 학습 수준, 어떤 AI를 사용할지에 따라 활용성에는 차이가 있을 수 있습니다.
운영 환경에서 사용하기에는 아직 개선이 필요한 부분이 있으며, 특히 Prometheus 설치 시 옵션 설정 등 시행착오가 있었습니다.
향후 hpa 기능과의 연동 등 추가적인 발전이 기대됩니다.