1.2.2. 在 pod 中使用 SharedConfigMap 自定义资源
要从 pod 访问 SharedConfigMap 自定义资源(CR),您必须为关联的服务帐户授予所需的基于角色的访问控制(RBAC)权限,以使用该 SharedConfigMap CR。
先决条件
-
为您要在集群中的命名空间之间共享的配置映射创建
SharedConfigMapCR 实例。 您必须具有执行以下操作的权限:
-
运行
oc get sharedconfigmaps命令,以获取SharedConfigMapCR 实例的列表。 -
运行
oc adm policy who-can use <sharedsecret_identifier> 命令检查服务帐户是否可以使用SharedSecretCR,并且服务帐户列在命名空间中。 -
运行
oc describe clusterrole <roleName> 命令,以确认 pod 的服务帐户可以使用csi卷。如果以用户身份创建 pod,请确认您可以使用csi卷。
-
运行
注意
如果您无法完成最后两个先决条件,集群管理员可以授予 RBAC 权限,使服务帐户能够使用 SharedConfigMap CR。
流程
创建与角色关联的
RoleBinding对象,并为服务帐户授予使用共享资源的权限。apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: use-shared-config namespace: <app_namespace>1 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: use-shared-config subjects: - kind: ServiceAccount name: <service_account_name>2 将 Shared Resource Container Storage Interface (CSI)驱动程序挂载到 pod 或接受
csi卷的任何其他资源中。apiVersion: v1 kind: Pod metadata: name: example-shared-config namespace: <app_namespace>1 spec: ... serviceAccountName: default volumes: - name: shared-config csi: readOnly: true driver: csi.sharedresource.openshift.io volumeAttributes: sharedConfigMap: share-test-config2 重要如果
sharedConfigMap属性的值与sharedConfigMap实例的名称不匹配,则 pod 无法启动。