K8S 리소스 수집 설정 (인벤토리)

K8S 리소스 수집 설정 (인벤토리)

컨테이너 리소스 수집 설정 가이드

DCX 오픈 (23년10월)에 맞춰 추가되는 쿠버네티스 기반 인벤토리 수집 설정 가이드입니다.
Fargate 등 CSP별 자체 컨테이너에 대한 수집 개발도 진행중이며, 확인되는데로 지속적으로 내용 보완 예정입니다.

1. yaml 파일 다운로드

K8S 리소스 수집 설정용 yaml 파일

23년10월 버전 yaml파일입니다. (마우스 우클릭하여 다른이름으로 저장)

agent_prd.yaml

 

2. K8S 리소스 수집 요청

  1. cmpadmin.cloudxper@lgcns.com 로 agent id, password 를 요청

  2. cmpadmin.cloudxper@lgcns.com 로 사용하는 K8S의 IP 전달 - Agent → Cloudxper 방화벽 해제 필요

3. 발급받은 agent id, password 를 yaml 파일 변경

  1. 발급받은 id, pawword 를 base64로 인코딩하여 yarm 파일을 변경한다.

ex)

COLLECTOR_USER_NAME: YWtyZW9ybDg1
COLLECTOR_PASSWORD: cXdlcjEyMzQhQCMk


4. 변경한 yaml 파일을 적용

  1. $ kubectl apply -f agent_prd.yaml

5. 생성되는 리소스

  1.  Namespace

    • Agent가 존재하는 Namespace 생성 "cloudxper-agent"

  2.  ClusterRole

    • Namespace가 리소스들에 대해 수집 권한을 가지도록 Cluster Role 생성

  3.  ClusterRoleBinding

    • Service Account 와 Cluster Role을 바인딩

  4. ConfigMap

    • COLLECTOR_HOST(Required) : 수집된 데이터를 cloudxper로 전송할 도메인 정보

    • FIXED_RATE(Optional) : 수집 주기

      • Default : 1시간 (변경하지 않음을 권장)

      • 값을 주석 처리할 경우 수집 가능한 모든 리소스 수집(권장)

      • 최소 10분 주기로 변경 가능

    • COLLECT_RESOURCES(Optional) : 수집 대상 리소스

      • Default - 모든 리소스 수집

      • 값을 주석 처리할 경우 수집 가능한 모든 리소스 수집
        ex) COLLECT_RESOURCES: "Pod,Node" - 공백 없음

      • 수집 필요한 리소스만 수집 가능

      • 해당 값은 kubectl api-resources 시 나오는 kind값으로 함

      • 공백 문자열을 넣을 경우 전체 수집되지 않음 ex) COLLECT_RESOURCES: ""

      • 잘못된 kind 문자열을 넣을 경우 수집되지 않음(agent log 확인)

      • 에이전트 첫 실행 시 수집대상이 되는 리소스가 나열됨(agent log 확인)

  5.  Secret

    • COLLECTOR_USER_NAME : (필수 변경 필요) 수집서버에 인증할 ID - cloudxper 담당자에게 발급 받은 ID를 base64 인코딩 통해 저장

    • COLLECTOR_PASSWORD : (필수 변경 필요) 수집서버에 인증할 PASSWORD - cloudxper 담당자에게 발급 받은 PASSWORD를 base64 인코딩 통해 저장

  6.  Deployment

    • 수집 컨테이너에 대한 Deployment

    • name : k8s-resource-agent

    • replicas : 1

    • cpu : 128m, mem : 256Mi

  • (중요) app log의 경우 container의 /var/log 테이블에 최대 350Mb까지 10일에 대한 데이터만 저장됨

  • agent_prd.yaml 파일을 수정하여, pv에 해당 볼륨을 마운트하길 권장함 (Agent 오류 발생 시 조치를 위해 해당 로그를 cloudxper 담당자에게 전달 필요)