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.spec 의 externalConfiguration 속성을 사용하여 구성을 추가합니다. 이 방법으로 액세스 권한을 설정할 필요가 없습니다. 그러나 커넥터에 새 Secret 또는 ConfigMap 을 사용할 때 Kafka Connect를 다시 시작해야 합니다. 이로 인해 모든 Kafka Connect 인스턴스의 커넥터가 중단됩니다.
3.1. 구성 맵에서 구성 값 로드 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 OpenShift 구성 공급자 플러그인을 사용하는 방법을 보여줍니다.
절차에서 외부 ConfigMap 오브젝트는 커넥터에 대한 구성 속성을 제공합니다.
사전 요구 사항
- OpenShift 클러스터를 사용할 수 있습니다.
- Kafka 클러스터가 실행 중입니다.
- Cluster Operator가 실행 중입니다.
절차
구성 속성이 포함된
ConfigMap또는Secret을 생성합니다.이 예에서
my-connector-configuration이라는ConfigMap오브젝트에는 커넥터 속성이 포함되어 있습니다.커넥터 속성이 있는
ConfigMap의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka Connect 구성에서 OpenShift 구성 공급자를 지정합니다.
여기에 표시된 사양은 시크릿 및 구성 맵의 값 로드를 지원할 수 있습니다.
OpenShift 구성 공급자를 활성화하는 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 속성 값을 읽고 추출합니다.