8장. 설치 파일을 사용하여 Apache Kafka용 스트림 배포


Apache Kafka 배포 파일 의 Streams를 다운로드하여 사용하여 Apache Kafka 구성 요소의 Streams를 OpenShift 클러스터에 배포합니다.

Apache Kafka의 스트림은 Strimzi 0.46.x를 기반으로 합니다. OpenShift 4.16에서 4.20에 Apache Kafka 3.0용 Streams를 배포할 수 있습니다.

설치 파일을 사용하여 Apache Kafka용 Streams를 배포하는 단계는 다음과 같습니다.

  1. Cluster Operator 배포
  2. Cluster Operator를 사용하여 다음을 배포합니다.

  3. 필요한 경우 요구 사항에 따라 다음 Kafka 구성 요소를 배포합니다.

참고

이 가이드에서 명령을 실행하려면 OpenShift 사용자에게 RBAC(역할 기반 액세스 제어) 및 CRD를 관리할 수 있는 권한이 있어야 합니다.

8.1. Cluster Operator 배포

Apache Kafka용 Streams를 배포하는 첫 번째 단계는 OpenShift 클러스터 내에서 Kafka 클러스터를 배포하고 관리하는 Cluster Operator를 설치하는 것입니다. 단일 명령은 install/cluster-operator 폴더의 모든 설치 파일을 적용합니다. oc apply -f ./install/cluster-operator.

이 명령은 다음 리소스를 포함하여 Kafka 배포를 생성하고 관리하는 데 필요한 모든 것을 설정합니다.

  • Cluster Operator(배포,ConfigMap)
  • Apache Kafka CRD용 스트림 (CustomResourceDefinition)
  • RBAC 리소스(ClusterRole,ClusterRoleBinding,RoleBinding)
  • 서비스 계정(ServiceAccount)

CustomResourceDefinition, ClusterRole , ClusterRole Binding 과 같은 클러스터 범위 리소스에는 설치에 대한 관리자 권한이 필요합니다. 설치하기 전에 ClusterRole 사양을 검토하여 불필요한 권한을 부여하지 않는 것이 좋습니다.

설치 후 Cluster Operator는 일반 Deployment 로 실행되어 Kafka 리소스의 업데이트를 확인합니다. 배포에 액세스할 수 있는 권한이 있는 표준(비관리자) OpenShift 사용자는 해당 사용자를 구성할 수 있습니다. 클러스터 관리자는 표준 사용자에게 Apache Kafka 사용자 정의 리소스에 대한 Streams를 관리하는 데 필요한 권한을 부여할 수도 있습니다.

기본적으로 Cluster Operator의 단일 복제본이 배포됩니다. 리더 선택 항목이 있는 복제본을 추가하여 중단 시 추가 Cluster Operator가 대기 상태가 되도록 할 수 있습니다. 자세한 내용은 10.6.4절. “리더 선택으로 여러 Cluster Operator 복제본 실행”의 내용을 참조하십시오.

8.1.1. Cluster Operator에서 감시하는 네임스페이스 지정

Cluster Operator는 Kafka 리소스가 배포된 네임스페이스의 업데이트를 감시합니다. Cluster Operator를 배포할 때 OpenShift 클러스터에서 조사할 네임스페이스를 지정합니다. 다음 네임스페이스를 지정할 수 있습니다.

여러 선택한 네임스페이스를 조사하면 처리 오버헤드가 증가하여 성능에 가장 큰 영향을 미칩니다. 네임스페이스 모니터링에 대한 성능을 최적화하려면 일반적으로 단일 네임스페이스를 조사하거나 전체 클러스터를 모니터링하는 것이 좋습니다. 단일 네임스페이스를 모니터링하면 네임스페이스별 리소스를 집중적으로 모니터링할 수 있지만 모든 네임스페이스를 모니터링하면 모든 네임스페이스에서 클러스터의 리소스를 포괄적으로 볼 수 있습니다.

Cluster Operator는 다음 리소스의 변경 사항을 감시합니다.

  • Kafka 클러스터용 Kafka입니다.
  • Kafka Connect 클러스터용 KafkaConnect입니다.
  • Kafka Connect 클러스터에서 커넥터를 생성하고 관리하기 위한 KafkaConnector 입니다.
  • Kafka MirrorMaker 2 인스턴스의 KafkaMirrorMaker2입니다.
  • Kafka 브리지 인스턴스용 KafkaBridge.
  • Cruise Control 최적화 요청에 대한 KafkaRebalance.

OpenShift 클러스터에서 이러한 리소스 중 하나가 생성되면 Operator가 리소스에서 클러스터 설명을 가져오고 Deployments, Pods, Services 및 ConfigMaps와 같은 필요한 OpenShift 리소스를 생성하여 리소스에 대한 새 클러스터 생성을 시작합니다.

Kafka 리소스가 업데이트될 때마다 Operator는 리소스의 클러스터를 구성하는 OpenShift 리소스에서 해당 업데이트를 수행합니다.

리소스가 패치 또는 삭제된 다음 다시 생성되어 리소스의 클러스터를 클러스터의 원하는 상태를 반영하도록 합니다. 이 작업으로 인해 롤링 업데이트가 발생하여 서비스가 중단될 수 있습니다.

리소스가 삭제되면 Operator는 클러스터 배포를 취소하고 관련 OpenShift 리소스를 모두 삭제합니다.

참고

Cluster Operator는 OpenShift 클러스터에서 하나, 여러 또는 모든 네임스페이스를 조사할 수 있지만 Topic Operator 및 User Operator는 단일 네임스페이스에서 KafkaTopicKafkaUser 리소스를 조사합니다. 자세한 내용은 1.2.1절. “OpenShift 네임스페이스에서 Apache Kafka 리소스에 대한 스트림 감시”의 내용을 참조하십시오.

8.1.2. 단일 네임스페이스를 조사하기 위해 Cluster Operator 배포

다음 절차에서는 OpenShift 클러스터의 단일 네임스페이스에서 Streams for Apache Kafka 리소스를 조사하기 위해 Cluster Operator를 배포하는 방법을 보여줍니다.

사전 요구 사항

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

프로세스

  1. Cluster Operator를 설치할 네임스페이스를 사용하도록 Apache Kafka 설치 파일의 Streams를 편집합니다.

    예를 들어 이 절차에서는 Cluster Operator가 네임스페이스 my-cluster-operator-namespace 에 설치됩니다.

    Linux에서 다음을 사용하십시오.

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS에서 다음을 사용하십시오.

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. Cluster Operator를 배포합니다.

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  3. 배포 상태를 확인합니다.

    oc get deployments -n my-cluster-operator-namespace

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

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

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

8.1.3. 여러 네임스페이스를 조사하기 위해 Cluster Operator 배포

다음 절차에서는 OpenShift 클러스터의 여러 네임스페이스에서 Apache Kafka 리소스의 스트림을 조사하기 위해 Cluster Operator를 배포하는 방법을 보여줍니다.

사전 요구 사항

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

프로세스

  1. Cluster Operator를 설치할 네임스페이스를 사용하도록 Apache Kafka 설치 파일의 Streams를 편집합니다.

    예를 들어 이 절차에서는 Cluster Operator가 네임스페이스 my-cluster-operator-namespace 에 설치됩니다.

    Linux에서 다음을 사용하십시오.

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS에서 다음을 사용하십시오.

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 파일을 편집하여 Cluster Operator가 STRIMZI_NAMESPACE 환경 변수에 감시하는 모든 네임스페이스 목록을 추가합니다.

    예를 들어 이 절차에서 Cluster Operator는 네임스페이스 watched-namespace-1,watched-namespace-2,watched-namespace-3 을 확인합니다.

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq-streams/strimzi-rhel9-operator:3.0.1
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: watched-namespace-1,watched-namespace-2,watched-namespace-3
  3. 나열된 각 네임스페이스에 대해 RoleBinding을 설치합니다.

    이 예제에서는 이러한 명령에서 watched-namespace -namespace를 이전 단계에 나열된 네임스페이스로 교체하여 watched-namespace-1, watched-namespace -2,watched-namespace-3:을 반복합니다.

    oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/023-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml -n <watched_namespace>
  4. Cluster Operator를 배포합니다.

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  5. 배포 상태를 확인합니다.

    oc get deployments -n my-cluster-operator-namespace

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

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

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

8.1.4. 모든 네임스페이스를 조사하기 위해 Cluster Operator 배포

다음 절차에서는 OpenShift 클러스터의 모든 네임스페이스에서 Apache Kafka 리소스에 대한 Streams를 조사하기 위해 Cluster Operator를 배포하는 방법을 보여줍니다.

이 모드에서 실행하면 Cluster Operator가 생성된 새 네임스페이스의 클러스터를 자동으로 관리합니다.

사전 요구 사항

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

프로세스

  1. Cluster Operator를 설치할 네임스페이스를 사용하도록 Apache Kafka 설치 파일의 Streams를 편집합니다.

    예를 들어 이 절차에서는 Cluster Operator가 네임스페이스 my-cluster-operator-namespace 에 설치됩니다.

    Linux에서 다음을 사용하십시오.

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS에서 다음을 사용하십시오.

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 파일을 편집하여 STRIMZI_NAMESPACE 환경 변수의 값을 * 로 설정합니다.

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          # ...
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq-streams/strimzi-rhel9-operator:3.0.1
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: "*"
            # ...
  3. Cluster Operator에 모든 네임스페이스에 대한 클러스터 전체 액세스 권한을 부여하는 ClusterRoleBindings 를 생성합니다.

    oc create clusterrolebinding strimzi-cluster-operator-namespaced --clusterrole=strimzi-cluster-operator-namespaced --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-watched --clusterrole=strimzi-cluster-operator-watched --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
  4. OpenShift 클러스터에 Cluster Operator를 배포합니다.

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  5. 배포 상태를 확인합니다.

    oc get deployments -n my-cluster-operator-namespace

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

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

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

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동