9.5. Cluster Operator 구성


환경 변수를 사용하여 Cluster Operator를 구성합니다. 배포 구성 파일에서 Cluster Operator의 컨테이너 이미지에 대한 환경 변수를 지정합니다. 다음 환경 변수를 사용하여 Cluster Operator를 구성할 수 있습니다. 대기 모드에서 Cluster Operator 복제본을 실행하는 경우 리더 선택을 활성화하는 추가 환경 변수가 있습니다.

Kafka, Kafka Connect 및 Kafka MirrorMaker는 여러 버전을 지원합니다. STRIMZI_<COMPONENT_NAME>_IMAGES 환경 변수를 사용하여 각 버전에 사용되는 기본 컨테이너 이미지를 구성합니다. 구성은 버전과 이미지 간의 매핑을 제공합니다. 필수 구문은 공백 또는 쉼표로 구분된 < version> = <image > 쌍으로 되어 지정된 버전에 사용할 이미지를 결정합니다. 예: 3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0. 구성 요소의 구성에 image 속성 값이 지정된 경우 기본 이미지가 재정의됩니다. 구성 요소의 이미지 구성에 대한 자세한 내용은 AMQ Streams 사용자 정의 리소스 API 참조를 참조하십시오.

참고

AMQ Streams 릴리스 아티팩트와 함께 제공되는 배포 구성 파일은 install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 입니다.

STRIMZI_NAMESPACE

Operator가 작동하는 쉼표로 구분된 네임스페이스 목록입니다. 설정되지 않거나 빈 문자열로 설정하거나 * 로 설정하면 Cluster Operator가 모든 네임스페이스에서 작동합니다.

Cluster Operator 배포에서는 Downward API를 사용하여 Cluster Operator가 배포된 네임스페이스로 자동으로 설정할 수 있습니다.

Cluster Operator 네임스페이스 구성 예

env:
  - name: STRIMZI_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap

STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
선택 사항이며 기본값은 120000 ms입니다. 주기적 조정 간격(밀리초)입니다.
STRIMZI_OPERATION_TIMEOUT_MS
선택 사항인 기본 300000 ms. 내부 작업에 대한 제한 시간(밀리초)입니다. 일반 OpenShift 작업이 일반 OpenShift 작업보다 오래 걸리는 클러스터에서 AMQ Streams를 사용할 때 (예: 컨테이너 이미지의 긴 다운로드 시간과 같은 요인) 이 값을 늘립니다.
STRIMZI_ZOOKEEPER_ADMIN_SESSION_TIMEOUT_MS
선택 사항인 기본 10000 ms. Cluster Operator의 Zoo Cryostat 관리자 클라이언트의 세션 제한 시간(밀리초)입니다. 시간 초과 문제로 인해 Cluster Operator의 Zoo Cryostat 요청이 정기적으로 실패하는 경우 값을 늘립니다. maxSessionTimeout 구성을 통해 Zoo Cryostat 서버 측에 허용되는 최대 세션 시간이 설정됩니다. 기본적으로 최대 세션 시간 제한 값은 40000ms의 기본 tickTime (기본값은 2000초)의 20배입니다. 시간 초과가 더 필요한 경우 maxSessionTimeout Zoo Cryostat 서버 구성 값을 변경합니다.
STRIMZI_OPERATIONS_THREAD_POOL_SIZE
선택 사항, 기본 10. 작업자 스레드 풀 크기: Cluster Operator에서 실행하는 다양한 비동기 및 차단 작업에 사용됩니다.
STRIMZI_OPERATOR_NAME
선택 사항이며 기본값은 Pod의 호스트 이름입니다. Operator 이름은 OpenShift 이벤트를 발송 할 때 AMQ Streams 인스턴스를 식별합니다.
STRIMZI_OPERATOR_NAMESPACE

Cluster Operator가 실행 중인 네임스페이스의 이름입니다. 이 변수를 수동으로 구성하지 마십시오. Downward API를 사용합니다.

env:
  - name: STRIMZI_OPERATOR_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap
STRIMZI_OPERATOR_NAMESPACE_LABELS

선택 사항: AMQ Streams Cluster Operator가 실행 중인 네임스페이스의 레이블입니다. 네임스페이스 레이블을 사용하여 네트워크 정책에서 네임스페이스 선택기를 구성합니다. 네트워크 정책을 사용하면 AMQ Streams Cluster Operator가 이러한 레이블이 있는 네임스페이스에서 피연산자에만 액세스할 수 있습니다. 설정되지 않은 경우 OpenShift 클러스터의 네임스페이스에서 Cluster Operator에 액세스할 수 있도록 네트워크 정책의 네임스페이스 선택기가 구성됩니다.

env:
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
Copy to Clipboard Toggle word wrap
STRIMZI_LABELS_EXCLUSION_PATTERN

선택 사항인 기본 regex 패턴은 ^app.kubernetes.io/(?!part-of).* 입니다. 기본 사용자 정의 리소스의 레이블 전파를 해당 하위 리소스로 필터링하는 데 사용되는 regex 제외 패턴입니다. 레이블 제외 필터는 spec.kafka.template.pod.metadata.labels 와 같은 템플릿 섹션의 레이블에는 적용되지 않습니다.

env:
  - name: STRIMZI_LABELS_EXCLUSION_PATTERN
    value: "^key1.*"
Copy to Clipboard Toggle word wrap
STRIMZI_CUSTOM_<COMPONENT_NAME>_LABELS

선택 사항: 구성 요소의 사용자 정의 리소스에서 생성한 모든 Pod에 적용할 하나 이상의 사용자 지정 레이블입니다. 사용자 정의 리소스가 생성되거나 다음에 조정될 때 Cluster Operator에서 Pod에 레이블을 지정합니다.

라벨은 다음 구성 요소에 적용할 수 있습니다.

  • KAFKA
  • KAFKA_CONNECT
  • KAFKA_CONNECT_BUILD
  • ZOOKEEPER
  • ENTITY_OPERATOR
  • KAFKA_MIRROR_MAKER2
  • KAFKA_MIRROR_MAKER
  • CRUISE_CONTROL
  • KAFKA_BRIDGE
  • KAFKA_EXPORTER
STRIMZI_CUSTOM_RESOURCE_SELECTOR

선택 사항: Cluster Operator에서 처리하는 사용자 정의 리소스를 필터링하는 라벨 선택기입니다. Operator는 지정된 라벨이 설정된 사용자 정의 리소스에서만 작동합니다. 이러한 레이블이 없는 리소스는 Operator에서 볼 수 없습니다. 라벨 선택기는 Kafka , Kafka Connect,KafkaBridge,KafkaMirrorMakerKafkaMirrorMaker2 리소스에 적용됩니다. KafkaRebalanceKafkaConnector 리소스는 해당 Kafka 및 Kafka Connect 클러스터에 일치하는 라벨이 있는 경우에만 작동합니다.

env:
  - name: STRIMZI_CUSTOM_RESOURCE_SELECTOR
    value: label1=value1,label2=value2
Copy to Clipboard Toggle word wrap
STRIMZI_KAFKA_IMAGES
필수 항목입니다. Kafka 버전에서 해당 버전의 Kafka 브로커가 포함된 해당 이미지로 매핑됩니다. 예: 3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel8:2.7.0, 3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0.
STRIMZI_KAFKA_CONNECT_IMAGES
필수 항목입니다. Kafka 버전에서 해당 버전의 Kafka Connect 이미지로의 매핑입니다. 예: 3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel8:2.7.0, 3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0.
STRIMZI_KAFKA_MIRROR_MAKER2_IMAGES
필수 항목입니다. Kafka 버전에서 해당 버전의 MirrorMaker 2 이미지로의 매핑입니다. 예: 3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel8:2.7.0, 3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0.
(더 이상 사용되지 않음) STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
필수 항목입니다. Kafka 버전에서 해당 버전의 MirrorMaker 이미지로의 매핑입니다. 예: 3.6.0=registry.redhat.io/amq-streams/kafka-36-rhel8:2.7.0, 3.7.0=registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0.
STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.7.0 입니다. Kafka 리소스에서 이미지가 Kafka.spec.entityOperator.topicOperator.image 로 지정되지 않은 경우 Topic Operator를 배포할 때 기본값으로 사용할 이미지 이름입니다.
STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.7.0 입니다. 이미지가 Kafka 리소스에 Kafka.spec.entityOperator.userOperator.image 로 지정되지 않은 경우 User Operator를 배포할 때 사용할 이미지 이름입니다.
STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0 입니다. 이미지가 Kafka 리소스에서 Kafka.spec.kafkaExporter.image 로 지정되지 않은 경우 Kafka Exporter를 배포할 때 사용할 이미지 이름입니다.
STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/kafka-37-rhel8:2.7.0 입니다. Kafka 리소스에서 이미지가 Kafka.spec.cruiseControl.image 로 지정되지 않은 경우 Cruise Control을 배포할 때 기본값으로 사용할 이미지 이름입니다.
STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/bridge-rhel8:2.7.0 입니다. Kafka 리소스에서 이미지가 Kafka.spec.kafkaBridge.image 로 지정되지 않은 경우 Kafka 브리지를 배포할 때 사용할 이미지 이름입니다.
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
선택 사항: 기본값은 registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.7.0 입니다. Kafka 리소스의 brokerRackInitImage 또는 Kafka Connect 리소스의 clientRackInitImage 에 이미지가 지정되지 않은 경우 Kafka 이니셜라이저 컨테이너의 기본값으로 사용할 이미지 이름입니다. init 컨테이너는 랙 지원과 같은 초기 구성 작업을 위해 Kafka 클러스터보다 먼저 시작됩니다.
STRIMZI_IMAGE_PULL_POLICY
선택 사항: Cluster Operator가 관리하는 모든 Pod의 컨테이너에 적용되는 ImagePullPolicy 입니다. 유효한 값은 Always,IfNotPresentNever 입니다. 지정하지 않으면 OpenShift 기본값이 사용됩니다. 정책을 변경하면 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터가 롤링 업데이트됩니다.
STRIMZI_IMAGE_PULL_SECRETS
선택 사항: 쉼표로 구분된 시크릿 이름 목록입니다. 여기에서 참조하는 시크릿에는 컨테이너 이미지를 가져오는 컨테이너 레지스트리에 대한 인증 정보가 포함되어 있습니다. 보안은 Cluster Operator가 생성한 모든 Pod의 imagePullSecrets 속성에 지정됩니다. 이 목록을 변경하면 모든 Kafka, Kafka Connect 및 Kafka MirrorMaker 클러스터의 롤링 업데이트가 생성됩니다.
STRIMZI_KUBERNETES_VERSION

선택 사항: API 서버에서 감지된 OpenShift 버전 정보를 재정의합니다.

OpenShift 버전 덮어쓰기의 구성 예

env:
  - name: STRIMZI_KUBERNETES_VERSION
    value: |
           major=1
           minor=16
           gitVersion=v1.16.2
           gitCommit=c97fe5036ef3df2967d086711e6c0c405941e14b
           gitTreeState=clean
           buildDate=2019-10-15T19:09:08Z
           goVersion=go1.12.10
           compiler=gc
           platform=linux/amd64
Copy to Clipboard Toggle word wrap

KUBERNETES_SERVICE_DNS_DOMAIN

선택 사항: 기본 OpenShift DNS 도메인 이름 접미사를 덮어씁니다.

기본적으로 OpenShift 클러스터에 할당된 서비스에는 기본 접미사 cluster.local 을 사용하는 DNS 도메인 이름이 있습니다.

예를 들어 브로커 kafka-0 의 경우 다음과 같습니다.

<cluster-name>-kafka-0.<cluster-name>-kafka-brokers.<namespace>.svc.cluster.local
Copy to Clipboard Toggle word wrap

DNS 도메인 이름은 호스트 이름 확인에 사용되는 Kafka 브로커 인증서에 추가됩니다.

클러스터에서 다른 DNS 도메인 이름 접미사를 사용하는 경우 Kafka 브로커와의 연결을 구축하기 위해 KUBERNETES_SERVICE_DNS_DOMAIN 환경 변수를 기본값에서 사용 중인 환경으로 변경합니다.

STRIMZI_CONNECT_BUILD_TIMEOUT_MS
선택 사항인 기본 300000 ms. 추가 커넥터를 사용하여 새 Kafka Connect 이미지를 빌드하는 시간 제한 시간(밀리초)입니다. AMQ Streams를 사용하여 많은 커넥터가 포함된 컨테이너 이미지를 빌드하거나 느린 컨테이너 레지스트리를 사용할 때 이 값을 늘리는 것이 좋습니다.
STRIMZI_NETWORK_POLICY_GENERATION

선택 사항, 기본 true. 리소스에 대한 네트워크 정책입니다. 네트워크 정책은 Kafka 구성 요소 간 연결을 허용합니다.

네트워크 정책 생성을 비활성화하려면 이 환경 변수를 false 로 설정합니다. 예를 들어 사용자 지정 네트워크 정책을 사용하려는 경우 이 작업을 수행할 수 있습니다. 사용자 지정 네트워크 정책을 사용하면 구성 요소 간 연결 유지 관리를 더 많이 제어할 수 있습니다.

STRIMZI_DNS_CACHE_TTL
선택 사항인 기본 30 입니다. 로컬 DNS 확인기에서 성공적인 이름 조회를 캐시하는 시간(초)입니다. 모든 음수 값은 캐시를 영구적으로 의미합니다. 0은 캐시가 없으므로 긴 캐싱 정책이 적용되어 연결 오류를 방지하는 데 유용할 수 있습니다.
STRIMZI_POD_SET_RECONCILIATION_ONLY
선택 사항, 기본 false. true 로 설정하면 Cluster Operator가 StrimziPodSet 리소스 및 기타 사용자 정의 리소스(Kafka,KafkaConnect 등)에 대한 변경 사항만 무시됩니다. 이 모드는 필요한 경우 Pod가 다시 생성되지만 클러스터에 다른 변경 사항은 발생하지 않도록 하는 데 유용합니다.
STRIMZI_FEATURE_GATES
선택 사항: 기능 게이트 에 의해 제어되는 기능 및 기능을 활성화하거나 비활성화합니다.
STRIMZI_POD_SECURITY_PROVIDER_CLASS
선택 사항: Pod 및 컨테이너에 대한 보안 컨텍스트 구성을 제공하는 데 사용할 수 있는 플러그형 PodSecurityProvider 클래스에 대한 구성입니다.

9.5.1. 네트워크 정책을 사용하여 Cluster Operator에 대한 액세스 제한

STRIMZI_OPERATOR_NAMESPACE_LABELS 환경 변수를 사용하여 네임스페이스 레이블을 사용하여 Cluster Operator의 네트워크 정책을 설정합니다.

Cluster Operator는 관리하는 리소스 또는 별도의 네임스페이스에서 동일한 네임스페이스에서 실행할 수 있습니다. 기본적으로 STRIMZI_OPERATOR_NAMESPACE 환경 변수는 Downward API를 사용하여 Cluster Operator가 실행 중인 네임스페이스를 찾도록 구성됩니다. Cluster Operator가 리소스와 동일한 네임스페이스에서 실행 중인 경우 로컬 액세스만 필요하며 AMQ Streams에서 허용합니다.

Cluster Operator가 관리하는 리소스에 대해 별도의 네임스페이스에서 실행 중인 경우 네트워크 정책이 구성되지 않은 경우 OpenShift 클러스터의 모든 네임스페이스가 Cluster Operator에 액세스할 수 있습니다. 네임스페이스 레이블을 추가하면 Cluster Operator에 대한 액세스 권한이 지정된 네임스페이스로 제한됩니다.

Cluster Operator 배포에 대해 구성된 네트워크 정책

#...
env:
  # ...
  - name: STRIMZI_OPERATOR_NAMESPACE_LABELS
    value: label1=value1,label2=value2
  #...
Copy to Clipboard Toggle word wrap

9.5.2. 사용자 정의 리소스의 정기적인 조정 설정

STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 변수를 사용하여 Cluster Operator의 정기적인 조정을 위한 시간 간격을 설정합니다. 해당 값을 필요한 간격(밀리초)으로 바꿉니다.

Cluster Operator 배포에 구성된 조정 기간

#...
env:
  # ...
  - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
    value: "120000"
  #...
Copy to Clipboard Toggle word wrap

Cluster Operator는 OpenShift 클러스터에서 수신한 적용 가능한 클러스터 리소스에 대한 모든 알림에 응답합니다. Operator가 실행 중이 아니거나 어떤 이유로든 알림이 수신되지 않으면 리소스가 실행 중인 OpenShift 클러스터 상태와 동기화되지 않습니다. 페일오버를 올바르게 처리하기 위해 Cluster Operator가 정기적으로 조정 프로세스를 실행하여 리소스 상태를 현재 클러스터 배포와 비교하여 모든 노드에서 일관된 상태를 유지할 수 있습니다.

9.5.3. 주석을 사용하여 사용자 정의 리소스 조정 일시 중지

수정 또는 업데이트를 수행할 수 있도록 AMQ Streams Operator에서 관리하는 사용자 정의 리소스의 조정을 일시 중지하는 것이 유용한 경우도 있습니다. 조정이 일시 중지되면 일시 중지가 종료될 때까지 Operator가 사용자 정의 리소스에 대한 변경 사항을 무시합니다.

사용자 정의 리소스의 조정을 일시 중지하려면 구성에서 strimzi.io/pause-reconciliation 주석을 true 로 설정합니다. 이렇게 하면 적절한 Operator가 사용자 정의 리소스의 조정을 일시 중지하도록 지시합니다. 예를 들어 Cluster Operator의 조정이 일시 중지되도록 KafkaConnect 리소스에 주석을 적용할 수 있습니다.

pause 주석이 활성화된 사용자 정의 리소스를 생성할 수도 있습니다. 사용자 정의 리소스가 생성되지만 무시됩니다.

사전 요구 사항

  • 사용자 정의 리소스를 관리하는 AMQ Streams Operator가 실행 중입니다.

프로세스

  1. OpenShift에서 사용자 정의 리소스에 주석을 달고 pause-reconciliationtrue 로 설정합니다.

    oc annotate <kind_of_custom_resource> <name_of_custom_resource> strimzi.io/pause-reconciliation="true"
    Copy to Clipboard Toggle word wrap

    예를 들어 KafkaConnect 사용자 정의 리소스의 경우 다음을 수행합니다.

    oc annotate KafkaConnect my-connect strimzi.io/pause-reconciliation="true"
    Copy to Clipboard Toggle word wrap
  2. 사용자 정의 리소스의 상태 조건에 ReconciliationPaused: 변경 사항이 표시되는지 확인합니다.

    oc describe <kind_of_custom_resource> <name_of_custom_resource>
    Copy to Clipboard Toggle word wrap

    유형 조건은 lastTransitionTime 에서 ReconciliationPaused 로 변경됩니다.

    일시 중지된 조정 조건 유형이 있는 사용자 정의 리소스의 예

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnect
    metadata:
      annotations:
        strimzi.io/pause-reconciliation: "true"
        strimzi.io/use-connector-resources: "true"
      creationTimestamp: 2021-03-12T10:47:11Z
      #...
    spec:
      # ...
    status:
      conditions:
      - lastTransitionTime: 2021-03-12T10:47:41.689249Z
        status: "True"
        type: ReconciliationPaused
    Copy to Clipboard Toggle word wrap

일시 중지에서 재시작

  • 조정을 다시 시작하려면 주석을 false 로 설정하거나 주석을 제거할 수 있습니다.

9.5.4. 리더 선택으로 여러 Cluster Operator 복제본 실행

기본 Cluster Operator 구성을 사용하면 리더 선택을 통해 Cluster Operator의 여러 병렬 복제본을 실행할 수 있습니다. 하나의 복제본이 활성 리더로 선택되고 배포된 리소스를 작동합니다. 다른 복제본은 standby 모드에서 실행됩니다. 리더가 중지되거나 실패하면 대기 복제본 중 하나가 새 리더로 선택되고 배포된 리소스 운영을 시작합니다.

기본적으로 AMQ Streams는 항상 리더 복제본인 단일 Cluster Operator 복제본으로 실행됩니다. 단일 Cluster Operator 복제본이 중지되거나 실패하면 OpenShift에서 새 복제본을 시작합니다.

여러 복제본으로 Cluster Operator를 실행하는 것은 필수 사항은 아닙니다. 그러나 주요 오류로 인한 대규모 중단의 경우 복제본이 대기 상태에 있는 것이 좋습니다. 예를 들어 여러 작업자 노드 또는 전체 가용성 영역이 실패한다고 가정합니다. 이러한 오류로 인해 Cluster Operator Pod 및 여러 Kafka Pod가 동시에 중단될 수 있습니다. 후속 Pod 예약으로 인해 리소스 부족으로 인해 혼잡이 발생하는 경우 단일 Cluster Operator를 실행할 때 작업이 지연될 수 있습니다.

9.5.4.1. Cluster Operator 복제본의 리더 선택 활성화

추가 Cluster Operator 복제본을 실행할 때 리더 선택 환경 변수를 구성합니다. 지원되는 환경 변수는 다음과 같습니다.

STRIMZI_LEADER_ELECTION_ENABLED
선택 사항, disabled(false)는 기본적으로 비활성화되어 있습니다. 리더 선택을 활성화하거나 비활성화하여 추가 Cluster Operator 복제본을 대기 상태로 실행할 수 있습니다.
참고

리더 선택이 기본적으로 비활성화되어 있습니다. 이 환경 변수를 설치에 적용하는 경우에만 활성화됩니다.

STRIMZI_LEADER_ELECTION_LEASE_NAME
리더 선택을 활성화할 때 필요합니다. 리더 선택에 사용되는 OpenShift Lease 리소스의 이름입니다.
STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE

리더 선택을 활성화할 때 필요합니다. 리더 선택에 사용되는 OpenShift Lease 리소스가 생성되는 네임스페이스입니다. Downward API를 사용하여 Cluster Operator가 배포된 네임스페이스로 구성할 수 있습니다.

env:
  - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
Copy to Clipboard Toggle word wrap
STRIMZI_LEADER_ELECTION_IDENTITY

리더 선택을 활성화할 때 필요합니다. 리더 선택 중에 사용되는 지정된 Cluster Operator 인스턴스의 ID를 구성합니다. ID는 각 Operator 인스턴스에 대해 고유해야 합니다. Downward API를 사용하여 Cluster Operator가 배포된 Pod의 이름으로 구성할 수 있습니다.

env:
  - name: STRIMZI_LEADER_ELECTION_IDENTITY
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
Copy to Clipboard Toggle word wrap
STRIMZI_LEADER_ELECTION_LEASE_DURATION_MS
선택 사항인 기본 15000 ms. 리스가 유효한 기간을 지정합니다.
STRIMZI_LEADER_ELECTION_RENEW_DEADLINE_MS
선택 사항인 기본 10000 ms. 리더가 리더십을 유지하려고 시도하는 기간을 지정합니다.
STRIMZI_LEADER_ELECTION_RETRY_PERIOD_MS
선택 사항인 기본 2000 ms입니다. 리더의 리스 잠금에 대한 업데이트 빈도를 지정합니다.

9.5.4.2. Cluster Operator 복제본 구성

대기 모드에서 추가 Cluster Operator 복제본을 실행하려면 복제본 수를 늘리고 리더 선택을 활성화해야 합니다. 리더 선택을 구성하려면 리더 선택 환경 변수를 사용합니다.

필요한 변경을 수행하려면 install/cluster-operator/:에 있는 다음 Cluster Operator 설치 파일을 구성합니다.

  • 060-Deployment-strimzi-cluster-operator.yaml
  • 022-ClusterRole-strimzi-cluster-operator-role.yaml
  • 022-RoleBinding-strimzi-cluster-operator.yaml

리더 선택에는 조사 중인 네임스페이스가 아니라 Cluster Operator가 실행 중인 네임스페이스를 대상으로 하는 자체 ClusterRoleRoleBinding RBAC 리소스가 있습니다.

기본 배포 구성은 Cluster Operator와 동일한 네임스페이스에 strimzi-cluster-operator 라는 Lease 리소스를 생성합니다. Cluster Operator는 리스를 사용하여 리더 선택을 관리합니다. RBAC 리소스는 Lease 리소스를 사용할 수 있는 권한을 제공합니다. 다른 Lease 이름 또는 네임스페이스를 사용하는 경우 그에 따라 ClusterRoleRoleBinding 파일을 업데이트합니다.

사전 요구 사항

  • CustomResourceDefinition 및 RBAC(ClusterRole, RoleBinding) 리소스를 만들고 관리할 수 있는 권한이 있는 계정이 필요합니다.

프로세스

060- Deployment -strimzi-cluster-operator.yaml 파일에 정의된 Cluster Operator를 배포하는 데 사용되는 Deployment 리소스를 편집합니다.

  1. replicas 속성을 기본 (1)에서 필요한 복제본 수와 일치하는 값으로 변경합니다.

    Cluster Operator 복제본 수 증가

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-cluster-operator
      labels:
        app: strimzi
    spec:
      replicas: 3
    Copy to Clipboard Toggle word wrap

  2. 리더 선택 env 속성이 설정되어 있는지 확인합니다.

    설정되지 않은 경우 구성합니다.

    리더 선택을 활성화하려면 STRIMZI_LEADER_ELECTION_ENABLEDtrue (기본값)로 설정해야 합니다.

    이 예에서 리스는 my-strimzi-cluster-operator 로 변경됩니다.

    Cluster Operator의 리더 선택 환경 변수 구성

    # ...
    spec
      containers:
        - name: strimzi-cluster-operator
          # ...
          env:
            - name: STRIMZI_LEADER_ELECTION_ENABLED
              value: "true"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAME
              value: "my-strimzi-cluster-operator"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.namespace
            - name: STRIMZI_LEADER_ELECTION_IDENTITY
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.name
    Copy to Clipboard Toggle word wrap

    사용 가능한 환경 변수에 대한 설명은 9.5.4.1절. “Cluster Operator 복제본의 리더 선택 활성화” 을 참조하십시오.

    리더 선택에 사용된 Lease 리소스의 다른 이름 또는 네임스페이스를 지정한 경우 RBAC 리소스를 업데이트합니다.

  3. (선택 사항) 022-ClusterRole-strimzi-cluster-operator-role.yaml 파일에서 ClusterRole 리소스를 편집합니다.

    Lease 리소스의 이름으로 resourceNames 를 업데이트합니다.

    리스에 대한 ClusterRole 참조 업데이트

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    rules:
      - apiGroups:
          - coordination.k8s.io
        resourceNames:
          - my-strimzi-cluster-operator
    # ...
    Copy to Clipboard Toggle word wrap

  4. (선택 사항) 022-RoleBinding-strimzi-cluster-operator.yaml 파일에서 RoleBinding 리소스를 편집합니다.

    subject.name 및 subject.namespaceLease 리소스의 이름과 생성된 네임스페이스로 업데이트합니다.

    lease에 대한 RoleBinding 참조 업데이트

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: strimzi-cluster-operator-leader-election
      labels:
        app: strimzi
    subjects:
      - kind: ServiceAccount
        name: my-strimzi-cluster-operator
        namespace: myproject
    # ...
    Copy to Clipboard Toggle word wrap

  5. Cluster Operator를 배포합니다.

    oc create -f install/cluster-operator -n myproject
    Copy to Clipboard Toggle word wrap
  6. 배포 상태를 확인합니다.

    oc get deployments -n myproject
    Copy to Clipboard Toggle word wrap

    출력에 배포 이름 및 준비 상태 표시

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  3/3    3           3
    Copy to Clipboard Toggle word wrap

    READY 는 ready/expected 복제본 수를 표시합니다. AVAILABLE 출력에 올바른 복제본 수가 표시되면 배포가 성공적으로 수행됩니다.

9.5.5. Cluster Operator HTTP 프록시 설정 구성

HTTP 프록시 뒤에서 Kafka 클러스터를 실행 중인 경우에도 클러스터에서 데이터를 계속 전달할 수 있습니다. 예를 들어 프록시 외부에서 데이터를 푸시하고 가져오는 커넥터와 함께 Kafka Connect를 실행할 수 있습니다. 또는 프록시를 사용하여 권한 부여 서버와 연결할 수 있습니다.

프록시 환경 변수를 지정하도록 Cluster Operator 배포를 구성합니다. Cluster Operator는 표준 프록시 구성(HTTP_PROXY,HTTPS_PROXYNO_PROXY)을 환경 변수로 허용합니다. 프록시 설정은 모든 AMQ Streams 컨테이너에 적용됩니다.

프록시 주소 형식은 http://<ip_address>:<port_number>입니다. 이름과 암호를 사용하여 프록시를 설정하려면 형식은 http://<username>:<password>@<ip-address>:<port_number>입니다.

사전 요구 사항

  • CustomResourceDefinition 및 RBAC(ClusterRole, RoleBinding) 리소스를 만들고 관리할 수 있는 권한이 있는 계정이 필요합니다.

프로세스

  1. Cluster Operator에 프록시 환경 변수를 추가하려면 배포 구성을 업데이트합니다(install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml).

    Cluster Operator의 프록시 설정 예

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "HTTP_PROXY"
              value: "http://proxy.com" 
    1
    
            - name: "HTTPS_PROXY"
              value: "https://proxy.com" 
    2
    
            - name: "NO_PROXY"
              value: "internal.com, other.domain.com" 
    3
    
      # ...
    Copy to Clipboard Toggle word wrap

    1
    프록시 서버의 주소입니다.
    2
    프록시 서버의 보안 주소입니다.
    3
    프록시 서버에 대한 예외로 직접 액세스하는 서버의 주소입니다. URL은 쉼표로 구분됩니다.

    또는 배포를 직접 편집합니다.

    oc edit deployment strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  2. 배포를 직접 편집하는 대신 YAML 파일을 업데이트한 경우 변경 사항을 적용합니다.

    oc create -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
    Copy to Clipboard Toggle word wrap

9.5.6. Cluster Operator 구성을 사용하여 FIPS 모드 비활성화

AMQ Streams는 FIPS 지원 OpenShift 클러스터에서 실행할 때 FIPS 모드로 자동 전환합니다. Cluster Operator의 배포 구성에서 FIPS_MODE 환경 변수를 비활성화 하여 FIPS 모드를 비활성화합니다. FIPS 모드가 비활성화되면 AMQ Streams는 모든 구성 요소에 대해 OpenJDK에서 FIPS를 자동으로 비활성화합니다. FIPS 모드가 비활성화된 상태에서 AMQ Streams는 FIPS와 호환되지 않습니다. AMQ Streams Operator 및 모든 피연산자는 FIPS를 활성화하지 않고 OpenShift 클러스터에서 실행 중인 것과 동일한 방식으로 실행됩니다.

프로세스

  1. Cluster Operator에서 FIPS 모드를 비활성화하려면 배포 구성(install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml)을 업데이트하고 FIPS_MODE 환경 변수를 추가합니다.

    Cluster Operator의 FIPS 구성 예

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
            # ...
            env:
            # ...
            - name: "FIPS_MODE"
              value: "disabled" 
    1
    
      # ...
    Copy to Clipboard Toggle word wrap

    1
    FIPS 모드를 비활성화합니다.

    또는 배포를 직접 편집합니다.

    oc edit deployment strimzi-cluster-operator
    Copy to Clipboard Toggle word wrap
  2. 배포를 직접 편집하는 대신 YAML 파일을 업데이트한 경우 변경 사항을 적용합니다.

    oc apply -f install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat