1.2.2. Pod での SharedConfigMap カスタムリソースの使用


Pod から SharedConfigMap カスタムリソース (CR) にアクセスするには、その SharedConfigMap CR を使用するために必要なロールベースアクセス制御 (RBAC) 権限を、関連するサービスアカウントに付与する必要があります。

前提条件

  • あなたは以下のいずれかのユーザーとして OpenShift Container Platform クラスターにログインしています。

    • ConfigMap オブジェクト用の SharedConfigMap CR インスタンスを作成したクラスター管理者。
    • 対象となる名前空間にアクセスし、共有する ConfigMapSharedConfigMap CR を作成または管理する権限を持つユーザー。
  • 次の操作を実行するための権限がある。

    • oc get sharedconfigmaps コマンドを実行して、SharedConfigMap CR インスタンスのリストを取得します。
    • oc adm policy who-can use <sharedsecret_identifier> コマンドを実行して、サービスアカウントが SharedSecret CR を使用できるかどうか、およびサービスアカウントが namespace にリストされるかどうかを確認する。
    • oc describe clusterrole <roleName> コマンドを実行して、Pod のサービスアカウントが csi ボリュームを使用できることを確認する。ユーザーとして Pod を作成した場合は、ユーザーが csi ボリュームを使用できることを確認する。
注記

最後の 2 つの前提条件を満たせない場合は、クラスター管理者に RBAC 権限を付与してもらうことで、サービスアカウントが SharedConfigMap CR を使用できるようになります。

手順

  1. ロールに関連付けられた RoleBinding オブジェクトを作成し、共有リソースを使用する権限をサービスアカウントに付与します。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: use-shared-config
      namespace: <app_namespace>
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: use-shared-config
    subjects:
      - kind: ServiceAccount
        name: <service_account_name>

    各項目の説明:

    <app_namespace>
    アプリケーションの名前空間の名前を指定します。
    < サービスアカウント名 >
    アプリケーションのサービスアカウント名を指定します。
  2. Shared Resource Container Storage Interface (CSI) Driver を、Pod または CSI ボリュームを受け入れるその他のリソースにマウントします。

    apiVersion: v1
    kind: Pod
    metadata:
      name: example-shared-config
      namespace: <app_namespace>
    spec:
      ...
      serviceAccountName: default
      volumes:
        - name: shared-config
          csi:
            readOnly: true
            driver: csi.sharedresource.openshift.io
            volumeAttributes:
              sharedConfigMap: share-test-config

    各項目の説明:

    <app_namespace>
    アプリケーションの名前空間の名前を指定します。
    volumes.volumeAttributes.sharedConfigMap
    sharedConfigMap オブジェクトの名前を指定します。
    重要

    Pod が起動に失敗するケースは以下のとおりです。

    • SharedConfigMap 属性の値が、SharedConfigMap インスタンスの名前と一致しません。
    • ボリュームは定義されているがマウントされていないため、Pod は ContainerCreating 状態のままになり、最終的に失敗します。

検証

  1. 以下のコマンドを実行して、サービスアカウントに付与されている権限を確認してください。

    $ oc describe rolebinding share-etc-pki-entitlement -n openshift-config-managed

    出力例:

    Name:         share-etc-pki-entitlement
    Labels:       <none>
    Annotations:  <none>
    Role:
      Kind:  Role
      Name:  share-etc-pki-entitlement
    Subjects:
      Kind            Name                        Namespace
      ----            ----                        ---------
      ServiceAccount  csi-driver-shared-resource  openshift-builds
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る