GCR に登録されたプライベートイメージを minikube で利用しようとしましたが、イメージの Pull に失敗します。
minikube にプライベートレジストリを使うためのアドオンが用意されていましたがうまくいきませんでした。
エラー原因の調査方法がわからなかったので諦めています。
https://minikube.sigs.k8s.io/docs/handbook/registry/
そこで、k8s の ImagePullSecrets を利用します。
https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
- docker login コマンドで GCR にログインできることを確認する
- 確認できた認証情報を k8s に設定する
1. docker login コマンドで GCR にログインできることを確認する
以下のコマンドでアクセストークンを確認します。
1 | |
以下のコマンドでGCRにログインします。パスワードには上記のアクセストークンを使います。
1 | |
Login Succeeded と表示されることを確認します。
2. 確認できた認証情報を k8s に設定する
以下のコマンドで secret リソースを作成します。
その際、 pod が実行されるネームスペースを指定します。メールアドレスも指定する必要があるみたいです。
ドキュメント:
https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
1 | |
続いて、作成したシークレットを default サービスアカウントに設定します。
先程指定したネームスペースをここでも指定します。
1 | |
以上で完了です。