3장. 외부 소스에서 구성 값 로드


구성 공급자 플러그인을 사용하여 외부 소스에서 구성 데이터를 로드합니다. 공급자는 AMQ Streams와 독립적으로 작동합니다. 생산자 및 소비자를 포함하여 모든 Kafka 구성 요소에 대한 구성 데이터를 로드하는 데 사용할 수 있습니다. 예를 들어 Kafka Connect 커넥터 구성에 대한 인증 정보를 제공하려면 해당 정보를 사용합니다.

OpenShift 구성 공급자

OpenShift 구성 공급자 플러그인은 OpenShift 시크릿 또는 구성 맵에서 구성 데이터를 로드합니다.

Kafka 네임스페이스 외부에서 관리되거나 Kafka 클러스터 외부에서 관리되는 Secret 오브젝트가 있다고 가정합니다. OpenShift 구성 공급자를 사용하면 파일을 추출하지 않고 구성의 시크릿 값을 참조할 수 있습니다. 공급자에게 액세스 권한을 사용하고 제공할 시크릿을 알려주기만 하면 됩니다. 공급자는 새 Secret 또는 ConfigMap 오브젝트를 사용하는 경우에도 Kafka 구성 요소를 다시 시작할 필요 없이 데이터를 로드합니다. 이 기능을 사용하면 Kafka Connect 인스턴스가 여러 커넥터를 호스팅할 때 중단을 방지할 수 있습니다.

환경 변수 구성 공급자

환경 변수 구성 공급자 플러그인은 환경 변수에서 구성 데이터를 로드합니다.

환경 변수의 값은 시크릿 또는 구성 맵에서 매핑할 수 있습니다. 예를 들어 환경 변수 구성 공급자를 사용하여 OpenShift 시크릿에서 매핑된 환경 변수에서 인증서 또는 JAAS 구성을 로드할 수 있습니다.

참고

OpenShift 구성 공급자는 마운트된 파일을 사용할 수 없습니다. 예를 들어 신뢰 저장소 또는 키 저장소의 위치가 필요한 값을 로드할 수 없습니다. 대신 Kafka Connect Pod에 구성 맵 또는 보안을 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 환경 변수 구성 공급자를 사용하여 환경 변수에 대한 값을 로드할 수 있습니다. KafkaConnect.specexternalConfiguration 속성을 사용하여 구성을 추가합니다. 이 방법으로 액세스 권한을 설정할 필요가 없습니다. 그러나 커넥터에 새 Secret 또는 ConfigMap 을 사용할 때 Kafka Connect를 다시 시작해야 합니다. 이로 인해 모든 Kafka Connect 인스턴스의 커넥터가 중단됩니다.

3.1. 구성 맵에서 구성 값 로드

다음 절차에서는 OpenShift 구성 공급자 플러그인을 사용하는 방법을 보여줍니다.

절차에서 외부 ConfigMap 오브젝트는 커넥터에 대한 구성 속성을 제공합니다.

사전 요구 사항

  • OpenShift 클러스터를 사용할 수 있습니다.
  • Kafka 클러스터가 실행 중입니다.
  • Cluster Operator가 실행 중입니다.

절차

  1. 구성 속성이 포함된 ConfigMap 또는 Secret 을 생성합니다.

    이 예에서 my-connector-configuration 이라는 ConfigMap 오브젝트에는 커넥터 속성이 포함되어 있습니다.

    커넥터 속성이 있는 ConfigMap 의 예

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-connector-configuration
    data:
      option1: value1
      option2: value2
    Copy to Clipboard Toggle word wrap

  2. Kafka Connect 구성에서 OpenShift 구성 공급자를 지정합니다.

    여기에 표시된 사양은 시크릿 및 구성 맵의 값 로드를 지원할 수 있습니다.

    OpenShift 구성 공급자를 활성화하는 Kafka Connect 구성의 예

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnect
    metadata:
      name: my-connect
      annotations:
        strimzi.io/use-connector-resources: "true"
    spec:
      # ...
      config:
        # ...
        config.providers: secrets,configmaps 
    1
    
        config.providers.secrets.class: io.strimzi.kafka.KubernetesSecretConfigProvider 
    2
    
        config.providers.configmaps.class: io.strimzi.kafka.KubernetesConfigMapConfigProvider 
    3
    
      # ...
    Copy to Clipboard Toggle word wrap

    1
    구성 공급자의 별칭은 다른 구성 매개 변수를 정의하는 데 사용됩니다. 공급자 매개변수는 config.providers. ${alias}.class 형식의 별칭 을 사용합니다.
    2
    KubernetesSecretConfigProvider 는 보안의 값을 제공합니다.
    3
    KubernetesConfigMapConfigProvider 는 구성 맵의 값을 제공합니다.
  3. 공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.

    oc apply -f <kafka_connect_configuration_file>
    Copy to Clipboard Toggle word wrap
  4. 외부 구성 맵의 값에 대한 액세스를 허용하는 역할을 생성합니다.

    구성 맵에서 값에 액세스하는 역할의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: connector-configuration-role
    rules:
    - apiGroups: [""]
      resources: ["configmaps"]
      resourceNames: ["my-connector-configuration"]
      verbs: ["get"]
    # ...
    Copy to Clipboard Toggle word wrap

    규칙은 my-connector-configuration 구성 맵에 액세스할 수 있는 역할 권한을 제공합니다.

  5. 구성 맵이 포함된 네임스페이스에 대한 액세스를 허용하는 역할 바인딩을 생성합니다.

    구성 맵이 포함된 네임스페이스에 액세스하기 위한 역할 바인딩의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: connector-configuration-role-binding
    subjects:
    - kind: ServiceAccount
      name: my-connect-connect
      namespace: my-project
    roleRef:
      kind: Role
      name: connector-configuration-role
      apiGroup: rbac.authorization.k8s.io
    # ...
    Copy to Clipboard Toggle word wrap

    역할 바인딩은 my-project 네임스페이스에 액세스할 수 있는 역할 권한을 제공합니다.

    서비스 계정은 Kafka Connect 배포에서 사용하는 것과 동일해야 합니다. 서비스 계정 이름 형식은 < cluster_name> -connect입니다. 여기서 < cluster_name >은 KafkaConnect 사용자 정의 리소스의 이름입니다.

  6. 커넥터 구성의 구성 맵을 참조합니다.

    구성 맵을 참조하는 커넥터 구성의 예

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnector
    metadata:
      name: my-connector
      labels:
        strimzi.io/cluster: my-connect
    spec:
      # ...
      config:
        option: ${configmaps:my-project/my-connector-configuration:option1}
        # ...
    # ...
    Copy to Clipboard Toggle word wrap

    구성 맵의 속성 값에 대한 자리 표시자는 커넥터 구성에서 참조됩니다. 자리 표시자 구조는 configmaps: <path_and_file_name > : <property> 입니다. KubernetesConfigMapConfigProvider 는 외부 구성 맵에서 option1 속성 값을 읽고 추출합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동