10.17.5. 디렉터리 내에서 여러 파일에서 구성 값 로드


DirectoryConfigProvider 를 사용하여 디렉터리 내의 여러 파일에서 구성 속성을 제공합니다. 파일은 구성 맵 또는 시크릿일 수 있습니다.

이 절차에서 시크릿은 커넥터에 대한 TLS 키 저장소 및 신뢰 저장소 사용자 인증 정보를 제공합니다. 자격 증명은 별도의 파일에 있습니다. 시크릿은 Kafka Connect Pod에 볼륨으로 마운트됩니다. 볼륨은 경로 /mnt/<volume-name> 에 마운트됩니다.

사전 요구 사항

  • Kafka 클러스터가 실행 중입니다.
  • Cluster Operator가 실행 중입니다.
  • 사용자 인증 정보가 포함된 시크릿이 있습니다.

사용자 인증 정보가 있는 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: my-user
  labels:
    strimzi.io/kind: KafkaUser
    strimzi.io/cluster: my-cluster
type: Opaque
data:
  ca.crt: <public_key> # Public key of the clients CA used to sign this user certificate
  user.crt: <user_certificate> # Public key of the user
  user.key: <user_private_key> # Private key of the user
  user.p12: <store> # PKCS #12 store for user certificates and keys
  user.password: <password_for_store> # Protects the PKCS #12 store

my-user 시크릿은 커넥터에 대한 키 저장소 인증 정보(user.crtuser.key)를 제공합니다.

Kafka 클러스터를 배포할 때 생성된 < cluster_name>-cluster-ca-cert 시크릿은 클러스터 CA 인증서를 신뢰 저장소 인증 정보(ca.crt)로 제공합니다.

프로세스

  1. KafkaConnect 리소스를 구성합니다.

    • DirectoryConfigProvider활성화
    • template 속성을 사용하여 추가 볼륨을 지정합니다.

    외부 속성 파일을 사용하는 Kafka Connect 구성의 예

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnect
    metadata:
      name: my-connect
    spec:
      # ...
      config:
        config.providers: directory 
    1
    
        config.providers.directory.class: org.apache.kafka.common.config.provider.DirectoryConfigProvider 
    2
    
      #...
      template:
        pod:
          volumes:
            - name: my-user-volume 
    3
    
              secret:
                secretName: my-user 
    4
    
            - name: cluster-ca-volume
              secret:
                secretName: my-cluster-cluster-ca-cert
        connectContainer:
          volumeMounts:
            - name: my-user-volume 
    5
    
              mountPath: /mnt/my-user 
    6
    
            - name: cluster-ca-volume
              mountPath: /mnt/cluster-ca

    1
    구성 공급자의 별칭은 다른 구성 매개 변수를 정의하는 데 사용됩니다.
    2
    DirectoryConfigProvider 는 디렉터리의 파일에서 값을 제공합니다. 매개 변수는 config.providers. ${alias}.class 형식의 별칭 을 사용합니다.
    3
    보안이 포함된 볼륨의 이름입니다.
    4
    시크릿의 이름입니다.
    5
    볼륨 목록의 볼륨 이름과 일치해야 하는 마운트된 볼륨의 이름입니다.
    6
    보안이 마운트된 경로입니다. 이 경로는 /mnt/ 로 시작해야 합니다.
  2. 공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.

    oc apply -f <kafka_connect_configuration_file>
  3. 커넥터 구성의 파일 속성을 자리 표시자로 참조합니다.

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

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaConnector
    metadata:
      name: my-source-connector
      labels:
        strimzi.io/cluster: my-connect-cluster
    spec:
      class: io.debezium.connector.mysql.MySqlConnector
      tasksMax: 2
      config:
        # ...
        database.history.producer.security.protocol: SSL
        database.history.producer.ssl.truststore.type: PEM
        database.history.producer.ssl.truststore.certificates: "${directory:/mtn/cluster-ca:ca.crt}"
        database.history.producer.ssl.keystore.type: PEM
        database.history.producer.ssl.keystore.certificate.chain: "${directory:/mnt/my-user:user.crt}"
        database.history.producer.ssl.keystore.key: "${directory:/mnt/my-user:user.key}"
        #...

    자리 표시자 구조는 directory:<path>:<file_name> 입니다. DirectoryConfigProvider 는 마운트된 보안에서 인증 정보를 읽고 추출합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동