5.4.2.2. ワークロードでのプルシークレットの使用
OpenShift Container Platform のプライベートレジストリーからワークロードがイメージをプルできるようにするには、`oc secrets link` コマンドを入力するか、ワークロード設定の YAML ファイルで直接定義することにより、プルシークレットをサービスアカウントにリンクできます。
手順
以下のコマンドを入力して、プルシークレットをサービスアカウントにリンクします。サービスアカウントの名前は、Pod が使用するサービスアカウントの名前と一致する必要があることに注意してください。デフォルトのサービスアカウントは
defaultです。$ oc secrets link default <pull_secret_name> --for=pull以下のコマンドを入力して変更内容を確認してください。
$ oc get serviceaccount default -o yaml出力例
apiVersion: v1 imagePullSecrets: - name: default-dockercfg-123456 - name: <pull_secret_name> kind: ServiceAccount metadata: annotations: openshift.io/internal-registry-pull-secret-ref: <internal_registry_pull_secret> creationTimestamp: "2025-03-03T20:07:52Z" name: default namespace: default resourceVersion: "13914" uid: 9f62dd88-110d-4879-9e27-1ffe269poe3 secrets: - name: <pull_secret_name>オプション: シークレットをサービスアカウントにリンクする代わりに、Pod またはワークロード定義内で直接参照することもできます。これは ArgoCD などの GitOps ワークフローに役立ちます。以下に例を示します。
Pod 仕様の例
apiVersion: v1 kind: Pod metadata: name: <secure_pod_name> spec: containers: - name: <container_name> image: quay.io/my-private-image imagePullSecrets: - name: <pull_secret_name>ArgoCD ワークフローの例
apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: <example_workflow> spec: entrypoint: <main_task> imagePullSecrets: - name: <pull_secret_name>