24장. AMQ Streams DrainCleaner를 사용하여 Pod 제거
Kafka 및 Zoo Cryostat Pod는 OpenShift 업그레이드, 유지 관리 또는 Pod 일정 변경 중에 제거될 수 있습니다. AMQ Streams에 의해 Kafka 및 Zoo Cryostat Pod를 배포한 경우 AMQ Streams DrainCleaner 툴을 사용하여 Pod 제거를 처리할 수 있습니다. AMQ Streams Draincleaner는 OpenShift 대신 제거를 처리합니다.
AMQ Streams Drain cleaner를 배포하면 Cluster Operator를 사용하여 OpenShift 대신 Kafka Pod를 이동할 수 있습니다. Cluster Operator는 복제되지 않으며 제거 프로세스 중에 Kafka가 계속 작동할 수 있습니다. OpenShift 작업자 노드가 연속으로 드레이닝되므로 Cluster Operator는 주제가 동기화될 때까지 기다립니다.
승인 Webhook는 AMQ Streams에 Pod 제거 요청을 Kubernetes API에 알립니다. then AMQ Streams DrainCleaner는 드레인할 Pod에 롤링 업데이트 주석을 추가합니다. 이렇게 하면 Cluster Operator에 제거된 Pod의 롤링 업데이트를 수행합니다.
AMQ Streams DrainCleaner를 사용하지 않는 경우 Pod 주석을 추가하여 롤링 업데이트를 수동으로 수행할 수 있습니다.
Webhook 구성
AMQ Streams Drain cleaner 배포 파일에는 ValidatingWebhookConfiguration
리소스 파일이 포함되어 있습니다. 리소스는 Kubernetes API에 Webhook를 등록하기 위한 구성을 제공합니다.
구성은 Pod 제거 요청 시 수행할 Kubernetes API에 대한 규칙을
정의합니다. 규칙은 pods/eviction
하위 리소스와 관련된 CREATE
작업만 인터셉트되도록 지정합니다. 이러한 규칙이 충족되면 API에서 알림을 전달합니다.
clientConfig
는 AMQ Streams DrainCleaner 서비스 및 Webhook를 노출하는 /drainer
엔드포인트를 가리킵니다. Webhook는 인증이 필요한 보안 TLS 연결을 사용합니다. caBundle
속성은 HTTPS 통신의 유효성을 검사하는 인증서 체인을 지정합니다. 인증서는 Base64로 인코딩됩니다.
Pod 제거 알림에 대한 Webhook 구성
apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration # ... webhooks: - name: strimzi-drain-cleaner.strimzi.io rules: - apiGroups: [""] apiVersions: ["v1"] operations: ["CREATE"] resources: ["pods/eviction"] scope: "Namespaced" clientConfig: service: namespace: "strimzi-drain-cleaner" name: "strimzi-drain-cleaner" path: /drainer port: 443 caBundle: Cg== # ...
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
# ...
webhooks:
- name: strimzi-drain-cleaner.strimzi.io
rules:
- apiGroups: [""]
apiVersions: ["v1"]
operations: ["CREATE"]
resources: ["pods/eviction"]
scope: "Namespaced"
clientConfig:
service:
namespace: "strimzi-drain-cleaner"
name: "strimzi-drain-cleaner"
path: /drainer
port: 443
caBundle: Cg==
# ...
24.1. AMQ Streams Drain cleaner 배포 파일 다운로드
AMQ Streams DrainCleaner를 배포하고 사용하려면 배포 파일을 다운로드해야 합니다.
AMQ Streams DrainCleaner 배포 파일은 AMQ Streams 소프트웨어 다운로드 페이지에서 사용할 수 있습니다.