レジストリ認証情報シークレットを作成し、ポッドとデプロイ仕様からエラーなしでコンテナ イメージをプルできるように参照します。
Docker Hub には、イメージをプルする元になるアカウントが必要です。Docker Hub 認証情報を使用して Kubernetes シークレットを作成し、ポッドとデプロイ仕様からこのシークレットを参照できます。
この方法は、他のプライベート レジストリにも使用できます。
手順
-
docker version
を実行し、Docker がインストールされていることを確認します。
-
docker login -u USERNAME
を実行します。
- Docker Hub のパスワードを入力します。
-
cat ~/.docker/config.json
を実行します。
- 次のコマンドを実行して、Docker Hub アクセス認証情報を含む
regcred
という名前の汎用シークレットを作成します。
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
secret/regcred created
が表示されます。
- シークレットを確認します。
kubectl get secrets
NAME TYPE DATA AGE
default-token-w7wqk kubernetes.io/service-account-token 3 6h28m
regcred kubernetes.io/dockerconfigjson 1 3h22m
YAML で regcred シークレットを参照します。
- コンテナ イメージのポッドまたはデプロイ仕様の
imagePullSecrets
セクションで、regcred
シークレットを参照します。
例:
apiVersion: v1
kind: Pod
metadata:
name: ping-pod
namespace: default
spec:
containers:
- image: busybox:1.34
name: busybox
command: ["ping", "-c"]
args: ["1", "8.8.8.8"]
imagePullSecrets:
- name: regcred
restartPolicy: Never