1.4. 네임스페이스에서 구성 맵 공유
클러스터의 네임스페이스 간에 구성 맵을 공유하려면 SharedConfigMap
CR(사용자 정의 리소스) 인스턴스를 생성합니다.
사전 요구 사항
다음 작업을 수행할 수 있는 권한이 있어야 합니다.
-
클러스터 범위 수준에서
sharedconfigmaps.sharedresource.openshift.io
CRD(사용자 정의 리소스 정의)를 생성합니다. -
SharedConfigMap
CR에 대한ClusterRole
오브젝트를 생성합니다. - CSI(Share Resource Container Storage Interface) 드라이버에 대한 역할 및 역할 바인딩을 생성합니다.
- 클러스터의 네임스페이스에서 역할 및 역할 바인딩을 관리하여 해당 인스턴스를 가져오고, 나열하고, 조사할 수 있는 사용자를 제어합니다.
- 클러스터의 네임스페이스에서 역할 및 역할 바인딩을 관리하여 CSI 볼륨을 마운트하는 Pod에서 해당 인스턴스를 사용할 수 있는 서비스 계정을 제어합니다.
- 공유할 시크릿이 포함된 네임스페이스에 액세스합니다.
프로세스
클러스터의 네임스페이스에서 공유할 구성 맵에 대한
SharedConfigMap
CR 인스턴스를 생성합니다. 다음 예제 구성을 참조하십시오.apiVersion: sharedresource.openshift.io/v1alpha1 kind: SharedConfigMap metadata: name: share-test-config 1 spec: configMapRef: name: shared-config namespace: <name_of_the_source_namespace> 2
다음 예제 구성을 사용하여 참조된 공유 리소스를 사용할 수 있는 RBAC(역할 기반 액세스 제어) 권한을 부여하는
ClusterRole
CR 인스턴스를 생성합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <cluster_role_name> 1 rules: - apiGroups: - sharedresource.openshift.io resources: - sharedconfigmaps resourceNames: - share-test-config 2 verbs: - use
Role
및RoleBinding
오브젝트를 생성하여 CSI 드라이버 권한을 구성 맵에 액세스할 수 있는 권한을 부여합니다.Role
오브젝트의 예apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: shared-test-config namespace: test-share-source 1 rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["shared-config"] verbs: ["get", "list", "watch"]
- 1
- 소스 네임스페이스의 이름을 정의합니다.
RoleBinding
오브젝트의 예apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: shared-test-config namespace: test-share-source 1 roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: shared-test-config subjects: 2 - kind: ServiceAccount name: csi-driver-shared-resource namespace: openshift-builds