Helm 차트를 사용하여 Kubernetes 클러스터에서 Workload Protection 에이전트 관리하기

Helm 차트를 사용하여 Kubernetes 클러스터에서 Workload Protection 에이전트를 설치, 업그레이드 및 삭제할 수 있습니다.

또한 콘솔을 사용하여 기존 Red Hat OpenShift 또는 Kubernetes 클러스터를 Workload Protection 인스턴스에 연결할 수도 있습니다. IBM Cloud 콘솔에서 컨테이너 > 클러스터 로 이동하여 기존 클러스터에 액세스하십시오. 그런 다음, ‘ Workload Protection ’ 위젯에서 ‘연결’을 클릭하여 클러스터를 Workload Protection 에 연결하세요.

시작하기 전에

  • IBM Cloud CLI, Kubernetes Service 플러그인 및 IBM Cloud Container Registry 플러그인을 설치하십시오. 자세한 내용은 ‘CLI 설치 ’를 참조하십시오.

  • 로컬 컴퓨터에 Helm CLI의 최신 버전을 설치하십시오. Helm 3.6 이상 버전이 필요합니다.

    HelmKubernetes 용 패키지 관리자로, Helm 차트를 사용하여 클러스터 내의 복잡한 Kubernetes 애플리케이션을 정의, 설치 및 업그레이드합니다. Helm 차트는 앱을 빌드하는 Kubernetes 리소스의 YAML 파일을 생성하기 위한 스펙을 패키징합니다. 이러한 Kubernetes 리소스는 클러스터에 자동으로 적용되며, Helm 에 의해 특정 버전에 할당됩니다. 또한 Helm을 사용하여 고유한 앱을 지정하고 패키할 수 있으며 Helm을 통해 Kubernetes 리소스에 대한 YAML 파일을 생성할 수 있습니다.

  • 클러스터에 Workload Protection 에이전트를 배포하는 데 필요한 액세스 권한과 권한이 있는지 확인하십시오.

  • 클러스터에서 ibm-observe 네임스페이스를 사용할 수 있는지 확인하십시오. 이 에이전트는 이 네임스페이스에 배포되어 있습니다.

    네임스페이스를 생성하려면 kubectl create namespace ibm-observe``을 실행하십시오.

  • 클러스터에서 Workload Protection 엔드포인트로 나가는 트래픽이 4436443 포트에서 허용되는지 확인하십시오. 에이전트를 가상 사설 엔드포인트(VPE)를 통해 연결하는 경우, 클러스터에서 나가는 트래픽에 대해 두 포트 모두 허용되어야 합니다.

에이전트 배포

Helm 를 사용하여 에이전트를 배포하려면 다음 단계를 따르십시오.

Sysdig Helm 저장소 설정

Workload Protection Helm 저장소를 Helm 인스턴스에 추가하십시오.

  1. 클러스터 컨텍스트를 설정합니다.

    ibmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. Helm 저장소를 추가하세요.

    helm repo add sysdig https://charts.sysdig.com
    
  3. 리포지토리를 업데이트하여 모든 Helm 차트의 최신 버전을 가져옵니다.

    helm repo update
    
  4. 현재 Sysdig 저장소에서 사용할 수 있는 ‘ Helm ’ 차트를 나열해 주세요.

    helm search repo sysdig
    
  5. sysdig/sysdig-deploy 의 ‘ Helm ’ 차트가 목록에 포함되어 있는지 확인하십시오.

YAML 값 파일을 생성합니다

YAML 파일을 정의하고, Workload Protection 에이전트와 배포할 예정인 보안 구성 요소의 값을 포함시키십시오. 예를 들어, 파일 이름을 ‘ agent-values-monitor-secure.yaml ’로 지정하세요.

다음의 ‘ YAML ’은 ‘ Workload Protection ’ 에이전트 및 ‘Secure’ 구성 요소를 구성하는 데 사용할 수 있는 템플릿입니다. 에이전트에 필요하지 않은 섹션을 삭제하거나 # 로 주석 처리하여 파일을 사용자 정의할 수 있습니다.

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: API_ENDPOINT
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: ingest.private.us-east.security-compliance-secure.cloud.ibm.com:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

여기서:

CLUSTER_NAME
에이전트를 배포할 클러스터의 이름입니다.
SERVICE_ACCESS_KEY
Workload Protection 인스턴스의 액세스 키.
INGESTION_ENDPOINT
인스턴스의 수집 엔드포인트. 예를 들어, ingest.us-east.security-compliance-secure.cloud.ibm.com입니다.
API_ENDPOINT
인스턴스의 API 엔드포인트. 예를 들어, us-east.security-compliance-secure.cloud.ibm.com입니다.

Helm 차트를 설치하세요

에이전트, 보안 구성 요소 또는 둘 다를 배포하려면 ‘ sysdig/sysdig-deploy ’ 차트를 설치하십시오. 이전 단계에서 구성한 것과 같은 변수 YAML 파일을 사용하여 차트를 설치하거나, 변수를 직접 구성할 수도 있습니다.

Helm 차트와 변수 YAML 파일을 사용하여 에이전트를 설치하려면 다음 명령을 실행하십시오:

helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml

다음 예제는 ‘ us-east ’ 지역에 대한 Helm 값 파일의 예시를 보여줍니다:

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: ingest.private.us-east.security-compliance-secure.cloud.ibm.com
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: private.us-east.security-compliance-secure.cloud.ibm.com
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: my-cluster
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
    apiHost: private.us-east.security-compliance-secure.cloud.ibm.com
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      api_url: https://private.us-east.security-compliance-secure.cloud.ibm.com
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

에이전트 업데이트

Helm을 사용하여 에이전트 버전을 업데이트하려면 다음 단계를 완료하십시오.

  1. Helm 저장소를 업데이트하세요.

    helm repo update
    
  2. 에이전트를 업그레이드하십시오.

    helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
    

다음 단계를 따르면 에이전트를 사용 가능한 최신 버전으로 업그레이드할 수 있습니다.

에이전트 제거

콘솔을 사용하여 클러스터에서 에이전트를 제거할 수도 있습니다. IBM Cloud 콘솔에서 컨테이너 > 클러스터 로 이동하여 기존 클러스터에 액세스하십시오. 그런 다음, ‘ Workload Protection ’ 위젯에서 ‘옵션’ 메뉴를 열고 ‘연결 해제’를 선택하세요.

Helm 를 사용하여 에이전트를 삭제하려면 차트를 제거하십시오.

  1. 설치된 차트를 나열해 주세요.

    helm list -n ibm-observe
    

    출력 결과에는 설치된 차트 목록이 표시됩니다:

    NAME        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART              	APP VERSION
    sysdig-agent	ibm-observe	1       	2023-03-24 15:02:58.408108 +0100 CET	deployed	sysdig-deploy-1.6.3
    
  2. 차트를 설치 제거하십시오.

    helm delete sysdig-agent -n ibm-observe
    

    Helm 에서 sysdig-agent 는 릴리스 이름입니다.