콘텐츠로 이동

Kodo-X 분할

주의

이 문서를 주의 깊게 읽고, 구현 과정에서 백업 조치를 철저히 수행하며 롤백 계획을 수립하여 시스템의 안전과 안정성을 보장하시기 바랍니다.

개요

대량의 쓰기 요청을 처리할 때 kodo-x의 리소스 소비가 특정 유형의 처리 작업, 특히 metric 데이터 처리에 집중되어 다른 데이터를 적시에 소비하지 못해 데이터 적체 문제가 발생할 수 있습니다.

해결 방안:

  1. metric 데이터 전용 처리를 위한 별도의 kodo-x 인스턴스를 생성하여 기존 인스턴스의 리소스 점유를 줄입니다.
  2. 기존 kodo-x 인스턴스를 수정하여 더 이상 metric 데이터를 처리하지 않고 다른 작업에 집중하도록 합니다.

아키텍처 다이어그램

분할 전:

분할 후:

전제 조건

  • Guance 클러스터 운영 권한 보유
  • kodo-x 및 분할할 kodo-x-metric의 스케줄링 리소스 사전 계획

구현 계획

1. 서비스 백업

kubectl get deploy -n forethought-kodo  kodo-x -o yaml > kodo-x-deploy.yaml

2. kodo-x-metric 서비스 생성

2.1 kodo-x-metric ConfigMap 생성

kubectl get cm -n forethought-kodo kodo-x -o yaml > kodo-x-metric-cm.yaml

다음 정보를 수정합니다:

  • name을 kodo-x-metric으로 변경
  • resourceVersionuid 필드 삭제
kubectl apply -f kodo-x-metric-cm.yaml

2.2 kodo-x-metric Deployment 생성

kubectl get deploy -n forethought-kodo  kodo-x -o yaml  > kodo-x-deploy.yaml

다음 정보를 수정합니다:

  • 「metadata」-「name」을 kodo-x-metric으로 변경
  • 「metadata」의 resourceVersionuid 필드 삭제
  • 「volumeMounts」 및 「volumes」의 name을 kodo-x-metric으로 변경
...
metadata:
  name: kodo-x-metric    ##### kodo-x-metric으로 변경
  namespace: forethought-kodo 
  resourceVersion: "129925433"   ##### 삭제
  uid: e4f0c541-4d91-47d4-82c8-91eec2757cb2   ##### 삭제
...
        volumeMounts:
        - mountPath: /kodo/config/config.yaml
          name: kodo-x-metric  ##### kodo-x-metric으로 변경
          subPath: config.yaml

      volumes:
      - configMap:
          defaultMode: 420
          name: kodo-x-metric ##### kodo-x-metric으로 변경
          optional: false
        name: kodo-x-metric ##### kodo-x-metric으로 변경
kubectl apply -f kodo-x-deploy.yaml

3. kodo-x-metric 서비스 생성

3.1 kodo-x-metric 매개변수 수정

설정 파일: kodo-x-metric.yaml (기타 설정은 기존 kodo-x.yaml과 동일)

global:
    metric_workers: 32  # metric 데이터 처리 능력 향상
    object_workers: 8
    keyevent_workers: 8
    workers: 0  # 기본 worker 비활성화
    log_workers: 0  # 로그 처리 비활성화
    backup_log_workers: 0  # 백업 로그 처리 비활성화

자세한 내용은 애플리케이션 서비스 설정 항목 설명서를 참조하세요.

서비스 재시작:

kubectl rollout restart -n forethought-kodo deploy kodo-x-metric

3.2 kodo-x 매개변수 수정

기존 kodo-x 인스턴스는 metric 유형이 아닌 다른 작업만 처리하여 리소스 할당을 더욱 최적화합니다.

설정 파일: kodo-x.yaml

global:
    metric_workers: -1  # metric 데이터 처리 비활성화
    object_workers: -1  # 객체 처리 비활성화
    keyevent_workers: -1  # 주요 이벤트 처리 비활성화

서비스 재시작:

kubectl rollout restart -n forethought-kodo deploy kodo-x

4. 확인

다음 명령어를 실행하여 설정이 적용되었는지 확인합니다:

kubectl exec -ti -n forethought-kodo  deploy/kodo-x -- cat config/config.yaml | grep -15 global
kubectl exec -ti -n forethought-kodo  deploy/kodo-x-metric -- cat config/config.yaml | grep -15 global

문서 평가

이 페이지가 도움이 되었나요?