1.2.2. RBAC 리소스 관리
Cluster Operator는 OpenShift 리소스에 액세스해야 하는 Apache Kafka 구성 요소용 Streams에 대한 RBAC(역할 기반 액세스 제어) 리소스를 생성하고 관리합니다.
Cluster Operator가 작동하려면 Kafka 및 KafkaConnect 와 같은 Kafka 리소스와 상호 작용하기 위해 ConfigMap,Pod,Deployment, Service 와 같은 관리형 리소스와 상호 작용하려면 OpenShift 클러스터 내에서 권한이 필요합니다.
권한은 다음 OpenShift RBAC 리소스를 통해 지정됩니다.
-
ServiceAccount -
Role및ClusterRole -
RoleBinding및ClusterRoleBinding
1.2.2.1. Apache Kafka 구성 요소에 대한 Streams에 권한 위임 링크 복사링크가 클립보드에 복사되었습니다!
Cluster Operator는 strimzi-cluster-operator 라는 서비스 계정에서 실행됩니다. 이 경우 Apache Kafka 구성 요소에 필요한 RBAC 리소스를 생성할 수 있는 권한을 부여하는 클러스터 역할이 할당됩니다. 역할 바인딩은 클러스터 역할을 서비스 계정과 연결합니다.
OpenShift는 권한 에스컬레이션을 강제 적용합니다. 즉 Cluster Operator는 보유하지 않은 권한을 부여할 수 없으며 액세스할 수 없는 네임스페이스에 이러한 권한을 부여할 수 없습니다. 결과적으로 Cluster Operator에는 오케스트레이션하는 모든 구성 요소에 필요한 권한이 있어야 합니다.
Cluster Operator는 다음을 수행할 수 있어야 합니다.
-
Topic Operator에서 관련 네임스페이스에서
Role및RoleBinding리소스를 생성하여KafkaTopic리소스를 관리할 수 있습니다. -
관련 네임스페이스에서
Role및RoleBinding리소스를 생성하여 User Operator에서KafkaUser리소스를 관리할 수 있습니다. -
Apache Kafka의 스트림이
ClusterRoleBinding을 생성하여노드의 실패 도메인을 검색할 수 있습니다.
랙 인식 파티션 할당을 사용하는 경우 브로커 Pod는 Amazon AWS의 가용성 영역과 같이 실행 중인 노드에 대한 정보에 액세스해야 합니다. 마찬가지로 NodePort 유형 리스너를 사용할 때 브로커 Pod는 실행 중인 노드 의 주소를 알려야 합니다. Node 는 클러스터 범위 리소스이므로 네임스페이스 범위 RoleBinding 이 아닌 ClusterRoleBinding 을 통해 이 액세스 권한을 부여해야 합니다.
다음 섹션에서는 Cluster Operator에 필요한 RBAC 리소스에 대해 설명합니다.