私は、あるアプリケーションをkubernetes-clusteringインフラにデプロイしようと計画しています。 dockerhub リポジトリにイメージをプッシュしました。dockerhubからイメージを引き出すにはどうしたらいいですか?
Dockerレジストリシークレットを作成するための1行コマンド
kubectl create secret docker-registry regcred --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email> -n <your-namespace>
そして、デプロイメントファイルの spec で使用することができます。
spec:
containers:
- name: private-reg-container-name
image: <your-private-image>
imagePullSecrets:
- name: regcred
Kubernetesはボンネットの中でdocker pull pseudo/your-image:latest
を実行しています。Kubernetesのリソースにある image
フィールドは、単純に実行するDockerイメージです。
spec:
containers:
- name: app
image: pseudo/your-image:latest
[...]
dockerイメージ名には特定のdockerレジストリurlが含まれないため、デフォルトはdocker.ioとなります。あなたのイメージは実際には docker.io/pseudo/your-image:latest
です。
あなたのイメージが private docker hub repo でホストされている場合、spec フィールドにイメージの pull secret を指定する必要があります。
spec:
containers:
- name: app
image: pseudo/your-image:latest
imagePullSecrets:
- name: dockerhub-credential
docker hubのログインを含むシークレットを作成するためのドキュメントはこちらです。https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/