9.16. 외부 소스에서 구성 값 로드
구성 공급자를 사용하여 외부 소스에서 구성 데이터를 로드합니다. 공급자는 AMQ Streams와 독립적으로 작동합니다. 생산자 및 소비자를 포함하여 모든 Kafka 구성 요소에 대한 구성 데이터를 로드하는 데 사용할 수 있습니다. 구성 요소 구성에서 외부 소스를 참조하고 액세스 권한을 제공합니다. 공급자는 새 외부 소스를 참조하는 경우에도 Kafka 구성 요소를 다시 시작하거나 파일을 추출하지 않고도 데이터를 로드합니다. 예를 들어 provider를 사용하여 Kafka Connect 커넥터 구성의 인증 정보를 제공합니다. 구성에는 외부 소스에 대한 모든 액세스 권한이 포함되어야 합니다.
9.16.1. 구성 공급자 활성화 링크 복사링크가 클립보드에 복사되었습니다!
구성 요소의 사양 구성에서 config.providers 속성을 사용하여 하나 이상의 구성 공급자를 활성화할 수 있습니다.
구성 공급자를 활성화하는 구성 예
- KubernetesSecretConfigProvider
- OpenShift 시크릿에서 구성 데이터를 로드합니다. 구성 데이터가 저장된 시크릿 내 키와 시크릿의 이름을 지정합니다. 이 공급자는 암호 또는 기타 사용자 자격 증명과 같은 중요한 구성 데이터를 저장하는 데 유용합니다.
- KubernetesConfigMapConfigProvider
- OpenShift 구성 맵에서 구성 데이터를 로드합니다. 구성 맵의 이름과 구성 데이터가 저장된 구성 맵 내의 키를 지정합니다. 이 공급자는 중요하지 않은 구성 데이터를 저장하는 데 유용합니다.
- EnvVarConfigProvider
- 환경 변수에서 구성 데이터를 로드합니다. 구성 데이터가 저장된 환경 변수의 이름을 지정합니다. 이 공급자는 예를 들어 시크릿에서 매핑된 환경 변수에서 인증서 또는 JAAS 구성을 로드하기 위해 컨테이너에서 실행 중인 애플리케이션을 구성하는 데 유용합니다.
- FileConfigProvider
- 파일에서 구성 데이터를 로드합니다. 구성 데이터가 저장되는 파일의 경로를 지정합니다. 이 공급자는 컨테이너에 마운트된 파일에서 구성 데이터를 로드하는 데 유용합니다.
- DirectoryConfigProvider
- 디렉터리 내의 파일에서 구성 데이터를 로드합니다. 구성 파일이 저장되는 디렉터리의 경로를 지정합니다. 이 공급자는 여러 구성 파일을 로드하고 구성 데이터를 별도의 파일로 구성하는 데 유용합니다.
OpenShift 구성 공급자 플러그인의 일부인 KubernetesSecretConfigProvider 및 KubernetesConfigMapConfigProvider 를 사용하려면 구성 파일이 포함된 네임스페이스에 대한 액세스 권한을 설정해야 합니다.
액세스 권한을 설정하지 않고 다른 공급자를 사용할 수 있습니다. 다음을 수행하여 Kafka Connect 또는 MirrorMaker 2에 대한 커넥터 구성을 이러한 방식으로 제공할 수 있습니다.
- Kafka Connect Pod에 환경 변수 또는 볼륨으로 구성 맵 또는 시크릿 마운트
-
Kafka Connect 또는 MirrorMaker 2 구성에서
EnvVarConfigProvider,FileConfigProvider또는DirectoryConfigProvider활성화 -
KafkaConnect또는KafkaMirrorMaker2리소스의사양에externalConfiguration속성을 사용하여 커넥터 구성 전달
공급자를 사용하면 Kafka Connect REST 인터페이스를 통해 제한된 정보가 전달되는 것을 방지할 수 있습니다. 다음 시나리오에서는 이 방법을 사용할 수 있습니다.
- 커넥터가 데이터 소스에 연결하고 통신하는 데 사용하는 값으로 환경 변수 마운트
- Kafka Connect 커넥터를 구성하는 데 사용되는 값으로 속성 파일 마운트
- 커넥터에서 사용하는 TLS 신뢰 저장소 및 키 저장소 값이 포함된 디렉터리에 파일 마운트
커넥터에 새 Secret 또는 ConfigMap 을 사용할 때 다시 시작해야 하므로 다른 커넥터가 중단될 수 있습니다.
9.16.2. 보안 또는 구성 맵에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
KubernetesSecretConfigProvider 를 사용하여 시크릿 또는 KubernetesConfigMapConfigProvider 에서 구성 속성을 제공하여 구성 맵에서 구성 속성을 제공합니다.
이 절차에서 구성 맵은 커넥터에 대한 구성 속성을 제공합니다. 속성은 구성 맵의 키 값으로 지정됩니다. 구성 맵은 Kafka Connect Pod에 볼륨으로 마운트됩니다.
사전 요구 사항
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
- 커넥터 구성이 포함된 구성 맵이 있습니다.
커넥터 속성이 있는 구성 맵의 예
프로세스
KafkaConnect리소스를 구성합니다.-
KubernetesConfigMapConfigProvider활성화
여기에 표시된 사양은 구성 맵 및 시크릿의 값 로드를 지원할 수 있습니다.
구성 맵과 시크릿을 사용하는 Kafka Connect 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 외부 구성 맵의 값에 대한 액세스를 허용하는 역할을 생성합니다.
구성 맵에서 값에 액세스하는 역할의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 규칙은
my-connector-configuration구성 맵에 액세스할 수 있는 역할 권한을 제공합니다.구성 맵이 포함된 네임스페이스에 대한 액세스를 허용하는 역할 바인딩을 생성합니다.
구성 맵이 포함된 네임스페이스에 액세스하기 위한 역할 바인딩의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역할 바인딩은
my-project네임스페이스에 액세스할 수 있는 역할 권한을 제공합니다.서비스 계정은 Kafka Connect 배포에서 사용하는 것과 동일해야 합니다. 서비스 계정 이름 형식은 <
cluster_name>-connect입니다. 여기서 <cluster_name>은KafkaConnect사용자 정의 리소스의 이름입니다.커넥터 구성의 구성 맵을 참조합니다.
구성 맵을 참조하는 커넥터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자리 표시자 구조는
configmaps:<path_and_file_name>:<property> 입니다.KubernetesConfigMapConfigProvider는 외부 구성 맵에서option1속성 값을 읽고 추출합니다.
9.16.3. 환경 변수에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
EnvVarConfigProvider 를 사용하여 구성 속성을 환경 변수로 제공합니다. 환경 변수는 구성 맵 또는 시크릿의 값을 포함할 수 있습니다.
이 절차에서 환경 변수는 커넥터가 Amazon AWS와 통신할 수 있도록 구성 속성을 제공합니다. 커넥터는 AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY 를 읽을 수 있어야 합니다. 환경 변수의 값은 Kafka Connect Pod에 마운트된 보안에서 파생됩니다.
사용자 정의 환경 변수의 이름은 KAFKA_ 또는 STRIMZI_ 로 시작할 수 없습니다.
사전 요구 사항
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
- 커넥터 구성이 포함된 시크릿이 있습니다.
환경 변수 값이 있는 시크릿의 예
프로세스
KafkaConnect리소스를 구성합니다.-
EnvVarConfigProvider활성화 -
externalConfiguration속성을 사용하여 환경 변수를 지정합니다.
외부 환경 변수를 사용하는 Kafka Connect 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고secretKeyRef속성은 시크릿의 키를 참조합니다. 보안 대신 구성 맵을 사용하는 경우configMapKeyRef속성을 사용합니다.-
공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 구성의 환경 변수를 참조합니다.
환경 변수를 참조하는 커넥터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자리 표시자 구조는
env:<environment_variable_name>입니다.EnvVarConfigProvider는 마운트된 보안에서 환경 변수 값을 읽고 추출합니다.
9.16.4. 디렉터리 내에서 파일에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
FileConfigProvider 를 사용하여 디렉터리 내의 파일에서 구성 속성을 제공합니다. 파일은 구성 맵 또는 시크릿일 수 있습니다.
이 절차에서 파일은 커넥터에 대한 구성 속성을 제공합니다. 데이터베이스 이름과 암호는 시크릿의 속성으로 지정됩니다. 시크릿은 Kafka Connect Pod에 볼륨으로 마운트됩니다. 볼륨은 경로 /opt/kafka/external-configuration/<volume-name> 에 마운트됩니다.
사전 요구 사항
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
- 커넥터 구성이 포함된 시크릿이 있습니다.
데이터베이스 속성이 있는 시크릿 예
프로세스
KafkaConnect리소스를 구성합니다.-
FileConfigProvider활성화 -
externalConfiguration속성을 사용하여 파일을 지정합니다.
외부 속성 파일을 사용하는 Kafka Connect 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 구성의 파일 속성을 자리 표시자로 참조합니다.
파일을 참조하는 커넥터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자리 표시자 구조는
file:<path_and_file_name>:<property> 입니다.FileConfigProvider는 마운트된 보안에서 데이터베이스 사용자 이름 및 암호 속성 값을 읽고 추출합니다.
9.16.5. 디렉터리 내에서 여러 파일에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
DirectoryConfigProvider 를 사용하여 디렉터리 내의 여러 파일에서 구성 속성을 제공합니다. 파일은 구성 맵 또는 시크릿일 수 있습니다.
이 절차에서 시크릿은 커넥터에 대한 TLS 키 저장소 및 신뢰 저장소 사용자 인증 정보를 제공합니다. 자격 증명은 별도의 파일에 있습니다. 시크릿은 Kafka Connect Pod에 볼륨으로 마운트됩니다. 볼륨은 경로 /opt/kafka/external-configuration/<volume-name> 에 마운트됩니다.
사전 요구 사항
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
- 사용자 인증 정보가 포함된 시크릿이 있습니다.
사용자 인증 정보가 있는 시크릿 예
my-user 시크릿은 커넥터에 대한 키 저장소 인증 정보(user.crt 및 user.key)를 제공합니다.
Kafka 클러스터를 배포할 때 생성된 < cluster_name>-cluster-ca-cert 시크릿은 클러스터 CA 인증서를 신뢰 저장소 인증 정보(ca.crt)로 제공합니다.
프로세스
KafkaConnect리소스를 구성합니다.-
DirectoryConfigProvider활성화 -
externalConfiguration속성을 사용하여 파일을 지정합니다.
외부 속성 파일을 사용하는 Kafka Connect 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
공급자를 활성화하도록 리소스를 생성하거나 업데이트합니다.
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 커넥터 구성의 파일 속성을 자리 표시자로 참조합니다.
파일을 참조하는 커넥터 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자리 표시자 구조는
directory:<path>:<file_name>입니다.DirectoryConfigProvider는 마운트된 보안에서 인증 정보를 읽고 추출합니다.