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

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

시작하기 전에

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

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

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

  • Workload Protection ingest 엔드포인트를 가져오십시오. Satellite 위치에 액세스한 후 엔드포인트 링크시스템 엔드포인트를 선택하십시오. satellite-sysdig- 로 시작하는 system 엔드포인트( ingest.private.<region>.monitoring.cloud.ibm.com 을 가리키는)를 복사하세요. 이 엔드포인트는 나중에 INGESTION_SATELLITE_ENDPOINT 으로 사용할 수 있습니다.

  • 클러스터에서 Workload Protection 엔드포인트로의 아웃바운드 트래픽은 4436443 로 포팅해야 합니다.

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

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

    네임스페이스를 생성하려면 oc adm new-project --node-selector='' ibm-observe``을 실행하십시오.

  • Workload Protection ingest 엔드포인트를 가져오십시오. Satellite 위치에 액세스한 후 엔드포인트 링크시스템 엔드포인트를 선택하십시오. satellite-sysdig- 로 시작하는 system 엔드포인트를 복사하세요. 이 엔드포인트는 ingest.private.<region>.monitoring.cloud.ibm.com 을 가리킵니다. 이 엔드포인트는 나중에 INGESTION_SATELLITE_ENDPOINT 으로 사용할 수 있습니다.

  • 클러스터에서 Workload Protection 엔드포인트로 나가는 트래픽이 4436443 포트에서 허용되는지 확인하십시오.

에이전트 배포

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

클러스터 컨텍스트 설정

  1. 계정에 로그인하십시오. 연합 계정이 있는 경우, --sso 옵션을 포함하십시오.

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. 클러스터에 대한 kubeconfig 구성 파일을 다운로드하여 kubeconfig의 기존 ~/.kube/config 또는 KUBECONFIG 환경 변수의 마지막 파일에 추가하십시오.

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. 브라우저에서 클러스터 컨트롤러의 주소인 URL 로 이동한 후, /console 를 추가하세요. 예를 들어, https://c0.containers.cloud.ibm.com:23652/console입니다.

  4. Red Hat OpenShift 웹 콘솔의 메뉴 모음에서 프로필 IAM#user.name@email.com > 로그인 명령 복사 을 클릭합니다. CLI에서 인증을 수행하려면 ‘ oc login ’ 토큰 명령어를 확인하고 이를 명령줄에 복사하여 입력하십시오.

  5. 버전을 확인하여 클러스터에서 oc 명령이 올바르게 실행되는지 확인하십시오.

    oc version
    

    출력 예:

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.2
    

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 ’ 차트가 목록에 포함되어 있는지 확인하십시오.

Helm 값 파일 작성

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

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

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_SATELLITE_ENDPOINT
    collectorPort: INGESTION_SATELLITE_ENDPOINT_PORT
  slim:
    enabled: true
global:
  clusterConfig:
    name: CLUSTER_NAME
  kspm:
    deploy: true
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  secure:
    vulnerabilityManagement:
      newEngineOnly: true
  nodeAnalyzer:
    runtimeScanner:
      deploy: false
    benchmarkRunner:
      deploy: false
    hostScanner:
      deploy: false
    deploy: true
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
kspmCollector:
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
clusterScanner:
  enabled: true
  eveEnabled: true
  sslVerifyCertificate: false

여기서:

CLUSTER_NAME
에이전트를 배포할 클러스터의 이름입니다.
SERVICE_ACCESS_KEY
Workload Protection 인스턴스의 액세스 키.
INGESTION_SATELLITE_ENDPOINT
앞서 추출한 Satellite 엔드포인트는 인제스트 엔드포인트를 가리킵니다. 예를 들어, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud입니다.
INGESTION_SATELLITE_ENDPOINT_PORT
앞서 추출한 Satellite 엔드포인트의 포트로, 이 엔드포인트는 ingest 엔드포인트를 가리킵니다. 예: 30771.
API_ENDPOINT
앞서 추출한 Satellite 엔드포인트는 Workload Protection 비공개 API 엔드포인트를 가리킵니다. 예를 들어, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924입니다. 이 경우 호스트 이름과 포트가 모두 함께 정의됩니다.

Helm 차트를 설치하세요

에이전트, Workload Protection 구성 요소 또는 둘 다를 배포하려면 sysdig/sysdig-deploy 차트를 설치하고, 이전 단계에서 구성한 YAML 변수 파일을 사용하십시오.

helm 차트를 사용하여 다음 명령을 실행하여 에이전트를 설치하십시오.

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

Helm 값 파일을 사용하지 않고 Workload Protection 구성 요소를 직접 설치하려면 다음 명령을 실행하면 됩니다. --set 를 사용하여 모든 변수를 설정하십시오.

helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace \
    --set agent.ebpf.enabled=true \
    --set agent.ebpf.kind=universal_ebpf \
    --set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
    --set global.sysdig.apiHost=<API_ENDPOINT> \
    --set agent.collectorSettings.collectorHost=<INGESTION_SATELLITE_ENDPOINT> \
    --set agent.collectorSettings.collectorPort=<INGESTION_SATELLITE_ENDPOINT_PORT> \
    --set nodeAnalyzer.natsUrl=wss://<API_ENDPOINT> \
    --set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.hostScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.sslVerifyCertificate=false \
    --set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
    --set global.kspm.deploy=true \
    --set global.clusterConfig.name=<CLUSTER_NAME> \
    --set kspmCollector.natsUrl=wss://<API_ENDPOINT> \
    --set kspmCollector.sslVerifyCertificate=false \
    --set clusterScanner.enabled=true \
    --set clusterScanner.eveEnabled=true \
    --set clusterScanner.sslVerifyCertificate=true

여기서:

CLUSTER_NAME
에이전트를 배포할 클러스터의 이름입니다.
SERVICE_ACCESS_KEY
Workload Protection 인스턴스의 액세스 키.
INGESTION_SATELLITE_ENDPOINT
앞서 추출한 Satellite 엔드포인트는 ingest 엔드포인트를 가리킵니다. 예: c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud.
INGESTION_SATELLITE_ENDPOINT_PORT
앞서 추출한 Satellite 엔드포인트의 포트로, 이 엔드포인트는 ingest 엔드포인트를 가리킵니다. 예: 30771.
API_ENDPOINT
앞서 추출한 Satellite 엔드포인트는 Workload Protection 비공개 API 엔드포인트를 가리킵니다. 예를 들어, c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924입니다. 이 경우 호스트 이름과 포트가 모두 함께 정의됩니다.

에이전트 업데이트

Workload Protection 에이전트는 최소한 2개월에 한 번씩 업데이트하십시오.

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

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

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

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

에이전트 제거

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.37.10
    
  2. 차트를 설치 제거하십시오.

    helm delete sysdig-agent -n ibm-observe
    

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