6.4. User Operator 사용
KafkaUser 리소스를 사용하여 사용자를 생성, 수정 또는 삭제할 때 User Operator는 이러한 변경 사항이 Kafka 클러스터에 반영되었는지 확인합니다.
KafkaUser 리소스에 대한 자세한 내용은 KafkaUser 스키마 참조를 참조하십시오.
User Operator 배포
Cluster Operator를 사용하거나 독립 실행형 Operator로 User Operator를 배포할 수 있습니다. Cluster Operator에서 관리하지 않는 Kafka 클러스터에서 독립 실행형 User Operator를 사용합니다.
배포 지침은 다음을 참조하십시오.
독립 실행형 User Operator를 배포하려면 Kafka 클러스터에 연결할 환경 변수를 설정해야 합니다. Cluster Operator에 의해 설정되므로 User Operator를 배포하는 경우 이러한 환경 변수를 설정할 필요가 없습니다.
6.4.1. Kafka 사용자 구성 링크 복사링크가 클립보드에 복사되었습니다!
KafkaUser 리소스의 속성을 사용하여 Kafka 사용자를 구성합니다.
oc apply 를 사용하여 사용자를 만들거나 수정하고 oc delete 를 사용하여 기존 사용자를 삭제할 수 있습니다.
예를 들면 다음과 같습니다.
-
oc apply -f <user_config_file> -
oc delete KafkaUser <user_name>
사용자는 Kafka 클라이언트를 나타냅니다. Kafka 사용자를 구성할 때 클라이언트가 Kafka에 액세스하는 데 필요한 사용자 인증 및 권한 부여 메커니즘을 활성화합니다. 사용되는 메커니즘은 동등한 Kafka 구성과 일치해야 합니다. Kafka 브로커에 대한 액세스를 보호하기 위해 Kafka 및 KafkaUser 리소스를 사용하는 방법에 대한 자세한 내용은 Kafka 브로커에 대한 액세스 보안 을 참조하십시오.
사전 요구 사항
- TLS 인증 및 암호화를 사용하여 Kafka 브로커 리스너로 구성된 실행 중인 Kafka 클러스터입니다.
- 실행 중인 User Operator(일반적으로 Entity Operator와 함께 배포됨).
절차
KafkaUser리소스를 구성합니다.이 예제에서는 ACL을 사용하여 TLS 인증 및 간단한 권한 부여를 지정합니다.
Kafka 사용자 구성 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaUser metadata: name: my-user labels: strimzi.io/cluster: my-cluster spec: authentication: type: tls authorization: type: simple acls: # Example consumer Acls for topic my-topic using consumer group my-group - resource: type: topic name: my-topic patternType: literal operation: Read host: "*" - resource: type: topic name: my-topic patternType: literal operation: Describe host: "*" - resource: type: group name: my-group patternType: literal operation: Read host: "*" # Example Producer Acls for topic my-topic - resource: type: topic name: my-topic patternType: literal operation: Write host: "*" - resource: type: topic name: my-topic patternType: literal operation: Create host: "*" - resource: type: topic name: my-topic patternType: literal operation: Describe host: "*"OpenShift에서
KafkaUser리소스를 생성합니다.oc apply -f <user_config_file>사용자의 준비 상태가
True로 변경될 때까지 기다립니다.oc get kafkausers -o wide -w -n <namespace>Kafka 사용자 상태
NAME CLUSTER AUTHENTICATION AUTHORIZATION READY my-user-1 my-cluster tls simple True my-user-2 my-cluster tls simple my-user-3 my-cluster tls simple TrueREADY출력에True가 표시되면 사용자 생성이 성공합니다.READY열이 비어 있으면 리소스 YAML 또는 User Operator 로그에서 상태에 대한 자세한 정보를 가져옵니다.메시지는 현재 상태의 이유에 대한 세부 정보를 제공합니다.
oc get kafkausers my-user-2 -o yamlNotReady상태의 사용자 세부 정보# ... status: conditions: - lastTransitionTime: "2022-06-10T10:07:37.238065Z" message: Simple authorization ACL rules are configured but not supported in the Kafka cluster configuration. reason: InvalidResourceException status: "True" type: NotReady이 예에서 사용자가 준비되지 않은 이유는
Kafka구성에서 간단한 권한이 활성화되지 않기 때문입니다.간단한 인증에 대한 Kafka 구성
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... authorization: type: simpleKafka 구성을 업데이트하면 상태가 사용자가 준비되었음을 표시합니다.
oc get kafkausers my-user-2 -o wide -w -n <namespace>사용자의 상태 업데이트
NAME CLUSTER AUTHENTICATION AUTHORIZATION READY my-user-2 my-cluster tls simple True세부 정보를 가져오면 메시지가 표시되지 않습니다.
oc get kafkausers my-user-2 -o yamlREADY상태의 사용자 세부 정보# ... status: conditions: - lastTransitionTime: "2022-06-10T10:33:40.166846Z" status: "True" type: Ready
6.4.2. 리소스 요청 및 제한을 사용하여 User Operator 구성 링크 복사링크가 클립보드에 복사되었습니다!
CPU 및 메모리와 같은 리소스를 User Operator에 할당하고 사용할 수 있는 리소스 양에 제한을 설정할 수 있습니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
절차
필요에 따라 편집기에서 Kafka 클러스터 구성을 업데이트합니다.
oc edit kafka MY-CLUSTERKafka리소스의spec.entityOperator.userOperator.resources속성에서 User Operator에 대한 리소스 요청 및 제한을 설정합니다.apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka spec: # Kafka and ZooKeeper sections... entityOperator: userOperator: resources: requests: cpu: "1" memory: 500Mi limits: cpu: "1" memory: 500Mi파일을 저장하고 편집기를 종료합니다. Cluster Operator는 변경 사항을 자동으로 적용합니다.