요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

쿠버네티스는 계속 고도화되고 있어서 이를 분석하고 조치하는 것은 다양한 기반 지식을 필요로 합니다. 작년에 이어 올해도 인기 있는 인공지능(AI, Artificial Intelligence)을 이용해서 쿠버네티스를 분석하고 이에 맞는 조치를  할 수 있습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

로컬 LLM에서 K8sGPT로 쿠버네티스 AIOps 실행하기 (1)

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

쿠버네티스는 계속 고도화되고 있어서 이를 분석하고 조치하는 것은 다양한 기반 지식을 필요로 합니다. 작년에 이어 올해도 인기 있는 인공지능(AI, Artificial Intelligence)을 이용해서 쿠버네티스를 분석하고 이에 맞는 조치를  할 수 있습니다.

 

해당 프로젝트의 이름은 K8sGPT로, 이미 1차례 요즘IT에서 대략 1년 전 “ChatGPT로 쿠버네티스 관리하는 방법”이라는 글을 통해 소개된 적이 있습니다. 간단한 사용성에 대해서 소개하는 글이었는데, 이 글에서 그에 더해 추가적으로 설명하고자 하는 것은 다음과 같습니다. 

 

  1. 1년간의 변화
  2. 공개된 AI 제공자를 사용하는게 아닌 나만의 AI 제공자를 사용하는 법
  3. K8sGPT의 미래 전망

 

이번 글인 1부에서는 1년간의 변화를 설명하고, 다음에 발행될 2부에서는 나만의 AI 제공자를 사용하는 법과 K8sGPT의 미래 전망을 설명하도록 하겠습니다. 

<그림>  K8sGPT 로고(출처:  K8sGPT )
 

1년간의 변화 

K8sGPT의 v0.0.1은 2023년 3월에 시작되었습니다. 그리고 이 글이 작성되는 2024년 3월 (그러고 보니 딱 1년이 지났네요?)의 버전은 v0.3.28이 되었습니다.

 

다양한 서비스 제공자 

1년간의 주요한 변화 중 하나는 K8sGPT가 질의 구문을 요청할 수 있는 제공자(Provider)가 매우 많아졌다는 것입니다.

 

 K8sGPT의 인증을 통해서 서비스를 제공할 수 있는 API 리스트 

 

v0.3.28에는 googlevertexai가 추가되었고, v0.3.27에는 huggingface가 추가되었습니다. 이러한 빠른 AI 서비스 제공자와의 통합을 통해서 성장 속도는 더더욱 가속화 되고 있습니다. 우선 간단하게 현재 상태를 점검해 보겠습니다. 점검을 위해서 구글클라우드플랫폼에서 제공하는 마이크로 서비스 아키텍처 앱인 “Online Boutine”를 배포하겠습니다.

 

<그림> 구글클라우드플랫폼에서 제공하는 “Online Boutine” 애플리케이션(출처 :Online Boutine)

 

실행 결과는 다음과 같습니다. 

 

 

배포가 끝났다면 이제 k8sgpt analyze를 실행해서 나오는 결과를 통해서 현재 문제가 없는 상태인지 확인합니다. 

노트: 설치는 brew, rpm, deb 등 다양한 방법을 제공합니다. 다음링크에서 확인하세요)

 

 

현재는 문제가 없는 상태입니다. 따라서 AI가 문제를 분석할 수 있도록 문제를 만들어 봅시다. 예제로 괜찮은 문제는 서비스는 존재하지만 파드가 없는 상태입니다. 이 상태로 만들기 위해 frontend 애플리케이션을 0으로 바꿔서 서비스를 받아줄 파드가 없는 상태로 만듭니다.

 

 

그리고 문제가 발생한 상태에서 다시 k8sgpt analyze를 실행합니다.

 

 

사실 아직까지는 AI의 도움을 받아서 분석한 상태는 아닙니다. 따라서 AI의 도움을 받기 위해서 --explain 옵션과 --backend openai를 추가 입력하고 결과를 확인합니다.

 

노트: 기본 값이 --backend openai 입니다. 그리고 인증 절차는 이미 처리되었습니다. 인증은 다음의 링크를 참고하세요

 

 

아마 저 뿐만 아니라 openai를 사용하는 많은 무료 사용자는 위와 같은 메시지를 자주 만나게 될 것입니다. 따라서 기본 제공자인 opanai가 아니라 다른 AI 제공자를 선택해야 하는데 가장 무난한 선택지는 google(제미나이)와 cohere입니다. 각 제공자는 무료 사용자도 간단한 테스트를 할 수 있는 수준으로는 서비스를 제공합니다.  각 제공자에 대한 인증 설정은 계속 변화하기 때문에 위에서도 언급한 다음의 링크를 참고하는 것이 좋습니다.

 

구글 AI 스튜디오와 Cohere에서 제공하는 API 키 (출처: 구글AI스튜디오, cohere)

 

해당 설정을 완료했다면 이제 백엔드(Backend) 제공자를 google과 cohere로 변경하여 결괏값을 비교해 보도록 하겠습니다. 각 제공자마다 알려주는 방법과 내용은 유사하지만 문맥과 흐름은 다소 차이가 있는 것을 확인할 수 있습니다.

 

백엔드를 google로 한 결괏값 

 

백엔드를 cohere로 한 결괏값

 

이렇게 영어로 나오는 결과는 아무래도 한국어보다는 불편합니다. 따라서 한국어로 어떻게 설명해 주는지 확인해 보기 위해 옵션--language를 사용합니다. 한국어 뿐만 아니라 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 네덜란드어, 러시아어, 중국어, 일본어를 제공합니다.

 

google 백엔드 상태에서 언어를 한국어로 선택한 결괏값

 

cohere 백엔드 상태에서 언어를 한국어로 선택한 결괏값

 

위의 결괏값을 미루어보아 한국어와 같은 다른 언어를 사용하여 질의하는 경우 영어의 결과를 단순히 번역하는 것이 아니라 새로운 결과를 만들어 내려고 하며, 아무래도 한국어를 기반으로 좀 더 많은 데이터를 학습한 것으로 알려져 있는 google이 더 자연스러운 응답을 보여주는 것으로 확인되었습니다. 이와 같은 분석 외에도 인공지능이 현재처럼 유명해진 계기가 된 대화(Chat)를 기반으로 진행할 수도 있습니다.

 

 

상호 작용 (Interactive) 모드

상호 작용 모드는 v0.3.26(출시일: 2024년 1월)부터 지원하기 시작했습니다. 이는 ChatGPT와 같이 대화를 기반으로 좀 더 상세한 내용을 질의하거나 연관된 내용을 물어보기 위해서 사용될 수 있습니다.

 

현재 사용 가능한 google과 cohere에 --interative 옵션을 써서 관련 내용을 물어보도록 하겠습니다. 가장 처음으로 google 백엔드에 상호 작용 모드로 진입한 이후에 좀 더 자세한 내용 설명을 요청(Please let me know more detail about it)하고 나오는 결괏값을 확인합니다.

 

--interactive 옵션을 이용해서 상호 작용 모드로 진입하고 원하는 내용을 입력 

 

처음 내용보다 훨씬 더 상세한 내용이 입력된 것을 확인할 수 있습니다.

이번에는 현재 내용을 한국어로 설명해 달라고 입력합니다.

 

 

일부 오류가 있긴 하지만 읽고 이해할 수 있는 수준의 한국어가 출력되는 것을 확인할 수 있습니다.

마지막으로 현재 분석된 내용이 아닌 현재 클러스터의 버전을 확인해 달라는 문구(Could I get the current kubernetes version in this cluster?)를 입력합니다.

 

 

현재 발생한 문제와 연관이 없는 내용은 답변하지 않는 것을 확인할 수 있습니다. 확인하고자 하는 내용을 완료했으니 exit를 입력해서 상호 작용 모드를 나옵니다.

 

 

google 말고 다른 AI는 어떻게 상호 작용되는지 확인하기 위해 cohere로 바꿔서 다시 테스트해 보겠습니다. AI만 바뀔 뿐 입력되는 구문 및 상황은 동일합니다.

 

 

google과 다르게 대화하는 느낌으로 여러 가지 가능성에 대해서 설명해 주고 있습니다.

그렇다면 한국어로는 설명해 달라고 하면 어떻게 다를까요?

 

 

한국어로 설명이 나오지도 않고 한국어와 출력 코드가 안 맞는지 알 수 없는 내용만 출력됩니다.

마지막으로 현재 장애와 직접적인 연관이 없는 현재 쿠버네티스 버전을 알려달라는 요청을 합니다.

 

 

google 때와 다르게 이번에는 버전을 확인할 수 있는 명령어와 예시를 들어서 설명해 줍니다. 

다음 진행을 위해서 exit를 치고 상호 작용 모드를 종료합니다.

 

 

이번 결과를 통해서 모델에 따라 답변이 변하는 것을 확인할 수 있고, 이에 따라 적합한 모델을 선택해야 하는 것이 더 원하는 답에 가까운 것을 얻을 수 있을 것이라는 부분을 예상할 수 있습니다. 이러한 변화 이외에 쿠버네티스 클러스터 분석 이외에 기능이 확장된 부분에 대해서 알아보겠습니다. 

 

 

기능 확장 

v.0.3.28을 기준으로 다음과 같이 총 3개의 기능을 통합해서 확장할 수 있습니다.

 

 

각 기능은 다음과 같습니다.

 

  • trivy: 쿠버네티스 클러스터의 보안 취약점 등을 알려줌
  • prometheus: 프로메테우스가 설치되어 있는 환경에서 설정 등을 점검해줌
  • aws: EKS와 같은 AWS의 리소스를 직접 분석해줌

 

이 중에서 가장 간편하게 기능을 확인할 수 있는 trivy를 통해서 기능을 어떻게 확장하고 어떤 이점을 얻을 수 있는지 확인해 보겠습니다. integrations 옵션을 통해 trivy를 우선 활성화시키겠습니다.

 

 

기능이 활성화 되었는지 확인하기 위해서 filters list 명령을 입력하고 integration된 VulnerabilityReport와 ConfigAuditReport를 확인합니다.

 

 

활성화된 필터인 VulnerabilityReport를 통해서 현재 클러스터의 취약점을 분석해 봅니다. 이를 위해서 --filter VulnerabilityReport 을 추가합니다.

 

 

AI 제공자가 설정되어 있지 않아 해당 하는 취약점에 해당하는 CVE(Common Vulnerabilities and Exposures)만 출력되는 것을 확인할 수 있습니다. 따라서 제공자를 google 그리고 cohere로 입력하여 어떤 결괏값이 나오는지 확인합니다.

 

 

이번에는 cohere를 통해서 어떤 결괏값이 나오는지 확인합니다. AI 서비스 제공자의 차이로 분석하는 형태가 완전히 다른 것을 알 수 있습니다. 

 

 

취약점 점검 이외에 trivy를 통해서 현재 구성 상태를 감사(Audit)하도록 하겠습니다. 이때 사용되는 필터는 ConfigAuditReport 입니다. 일반적으로 취약점보다는 많은 내용이 출력됩니다.

 

 

분석된 내용을 기반으로 AI 제공자에게 설명을 요청했을 때 어떤 결과가 나오는지 확인해 보겠습니다.

 

우선 google로 진행하겠습니다. 현재 배포된 ReplicaSet이 사용하는 default 네임스페이스에 SECCOMP 이 특정되어 있지 않다는 부분 외에 이게 어떤 의미를 가지는지, 어떻게 조치해야 하는지 등 많은 내용을 설명해 주고 있습니다.

 

 

cohere는 어떤 답변을 주는지 진행해 보겠습니다.

cohere의 경우에는 trial 사용자가 1분에 5번 요청까지 처리하도록 허용하는데, 현재 44개의 요청이 진행되어야 하므로 진행 자체가 어려운 것을 확인할 수 있습니다.

 

 

이와 같이 겨우 1년 밖에 지나지 않았지만 매우 많은 발전과 개선이 있었음을 알 수 있습니다. 지금까지는 외부 AI 서비스 제공자에게 데이터를 보내고 설명을 요청하는 방식으로 이루어졌습니다. 이와 같은 방식은 꽤 많은 기업에서 많이 우려하고 있는 방식일 수 있습니다.

 

따라서 2부에서는 기업 내부 사설망(Private)에서 AI 질의를 할 수 있는 방법에 대해서 알아보겠습니다. 그리고 간략한 개인적인 생각이 담긴 미래 전망도 함께 진행하겠습니다.


작가

조훈(CNCF 앰버서더)

시스템/네트워크 IT 벤더의 경험 이후, 메가존 GCP 클라우드 팀에서 쿠버네티스와 연관된 모든 프로젝트에 대한 Tech Advisor 및 Container Architecture Design을 제공하고 있다. 페이스북 ‘IT 인프라 엔지니어 그룹’의 운영진을 맡고 있으며, 오픈 소스 컨트리뷰터로도 활동한다. 지식 공유를 위해 인프런/유데미에서 앤서블 및 쿠버네티스에 관한 강의를 하기도 한다. 책 <컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커> 등 3권을 썼다. CNCF(Cloud Native Computing Foundation) 앰버서더로서 쿠버네티스 생태계가 더 활발하게 퍼질 수 있도록 기여하고 있다. 

 

심근우

LG유플러스 CTO부문에서 대고객 비즈니스 시스템의 DevOps를 담당하는 UcubeDAX팀의 팀장으로 일하고 있다. 퍼블릭 클라우드와 프라이빗 클라우드에 걸친 쿠버네티스 클러스터를 안정적으로 운영하기 위해 노력하고 있으며, 특히 주니어 DevOps 엔지니어들의 육성에 큰 관심을 가지고 있다.

 

문성주 

체커(CHEQUER) 사의 DevOps Engineer로서 쿠버네티스의 멀티 클러스터 관리 방법론과 쿠버네티스 구현체(CAPI, OCI)에 대한 명세와 컨테이너 리소스 격리 방법에 대한 연구를 병행하고 있다. 이런 연구 활동을 기반으로 쿠버네티스 볼륨 테스트 파트에 컨트리뷰션했다. 본업은 쿠버네티스 오퍼레이터와 같은 CRD(커스텀 리소스)를 개발해 현업에서 쿠버네티스를 좀 더 편리하게 사용할 수 있도록 돕는 일이다. 또한, 페이스북 그룹 ‘코딩이랑 무관합니다만'과 ‘IT 인프라 엔지니어 그룹'의 운영진을 맡고 있다.

 

이성민

미국 넷플릭스(Netflix) 사의 Data Platform Infrastructure 팀에서 사내 플랫폼 팀들과 데이터 사용자들을 어우르기 위한 가상화 및 도구들을 개발하는 일들을 하고 있다. 과거 컨테이너와 쿠버네티스에 큰 관심을 두고 ingress-nginx를 비롯한 오픈 소스에 참여했으며, 현재는 데이터 분야에 일하게 되면서 stateful 한 서비스들이 컨테이너화에서 겪는 어려움을 보다 근본적으로 해결하기 위한 많은 노력을 하고 있다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 0
CNCF 앰버서더|클라우드엔지니어
106
명 알림 받는 중

작가 홈

CNCF 앰버서더|클라우드엔지니어
106
명 알림 받는 중
시스템/네트워크 IT 벤더의 경험 이후, 메가존 GCP 클라우드 팀에서 쿠버네티스와 연관된 모든 프로젝트에 대한 Tech Advisor 및 Container Architecture Design을 제공하고 있다. 페이스북 ‘IT 인프라 엔지니어 그룹’의 운영진을 맡고 있으며, 오픈 소스 컨트리뷰터로도 활동한다. 지식 공유를 위해 인프런/유데미에서 앤서블 및 쿠버네티스에 관한 강의를 하기도 한다. 책 <컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커> 등 3권을 썼다. CNCF(Cloud Native Computing Foundation) 앰버서더로서 쿠버네티스 생태계가 더 활발하게 퍼질 수 있도록 기여하고 있다.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기