“Kubernetes 장애, AI가 대신 진단해준다면?”
Kubernetes 운영 중 갑작스러운 장애, 어디서부터 원인을 찾아야 할지 막막했던 경험 있으신가요?
이제 복잡한 로그 분석과 원인 추적, AI 오픈소스 도구 K8sGPT로 한 번에 해결할 수 있습니다! 
K8sGPT란?
K8sGPT는 AI와 자연어 처리(NLP) 기술을 활용해 Kubernetes 클러스터에서 발생하는 다양한 문제를 자동으로 분석하고, 사람이 이해할 수 있는 설명과 해결 방안을 제시해주는 오픈소스 도구입니다.
•
출시 시기: 2023년
•
라이선스: Apache 2.0 (복제, 수정, 배포 자유)
•
AI 연동: OpenAI, Google, 자체 AI 등 다양한 LLM 지원 (일부 AI는 사용 시 비용 발생 가능)
•
Kubernetes 운영의 복잡함을 줄이고, 장애 대응을 더 빠르고 효율적으로 만들어주는 최신 오픈소스 프로젝트입니다.
K8sGPT 제공 기능
•
"k8sgpt analyze" 명령어를 통한 Kubernetes Resource 문제 원인 분석 및 LLM API 호출, 현 상황에 관련 내용 제공 합니다.
•
문제 원인 및 해결 방안을 사람이 이해 할 수 있는 언어 "영어"로 설명을 지원합니다.
•
공식 Github 에서는 다양한 언어 지원 여부에 대한 설명은 현재 없습니다.
•
명령어 옵션 중 "--language"을 활용하여 AI가 번역한 내용 제공은 가능 합니다.
•
기본적으로 분석은 Kubernetes에서 제공되는 서비스들은 대부분(Pod, Deployment, cronJob 등) 지원되며, 로그와 이벤트를 수집, 문제에 대한 식별하는 기능을 제공합니다.
•
Optional 부분은 사용자가 필요에 따라 활성화하여 해당 기능 관련 내용을 분석 합니다. (HPA와 같은 기능을 위해서 추가적으로 관련 서비스 설치가 진행 되어야 합니다.)
•
LLM AI는 K8sGPT에서 지원 가능한 목록으로 Default AI는 openai로 되어 있습니다. 환경에 맞게 변경은 가능합니다.
Analyze | Optional | 지원되는 LLM AI |
podAnalyzer
pvcAnalyzer
rsAnalyzer
serviceAnalyzer
eventAnalyzer
ingressAnalyzer
statefulSetAnalyzer
deploymentAnalyzer
cronJobAnalyzer
nodeAnalyzer
mutatingWebhookAnalyzer
validatingWebhookAnalyzer | hpaAnalyzer
pdbAnalyzer
networkPolicyAnalyzer
gatewayClass
gateway
httproute
logAnalyzer | Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai |
K8sGPT Operator란?
K8sGPT Operator는 Kubernetes 내의 모든 서비스들에 대한 문제를 감지 할 수 있습니다.
이를 통하여 별도 모니터링 도구와 연동하여 시각화 가능한 부분을 고려 해볼 수 있습니다.
기능 | 설명 |
K8sGPT Operator | Kubernetes 환경에서 AI 를 활용하여 자동 진단 제공
- AI 를 통한 문제에 대한 해결 방안 제공
- Kubernetes 에 대한 모니터링
- Prometheus, Grafana 와 연동 시 정보 제공. |
K8sgpt Deployment | K8sGPT Operator 에서 K8S Cluster 상태를 분석 / 장애 감지를 위한 Application |
Prometheus Scrape | K8sGPT 에서 수집한 Metrics 데이터를 Prometheus 에 전달 기능 |
K8sGPT CRD | 사용자가 특정 조건, 규칙을 설정하면, K8sGPT 에서 해당 조건에 맞게 기능 동작 |
API Server | K8sGPT Operator 와 외부 통신 기능 제공 |
Results | - K8sGPT Operator 가 분석한 결과 저장 및 관리
- 데이터는 yaml 또는 json 형식으로 관리 및 저장 |
Operator를 활용하면 Kubernetes 운영 환경에서 장애 진단과 모니터링, 결과 관리까지 한 번에 자동화할 수 있습니다.