macOS 10.12でminikubeを使用していて、Dockerハブでホストされているプライベートイメージを使用しようとしています。minikubeは、私の知る限り、ローカルkubernetesクラスターの一意のノードであり、すべてのポッドをホストするVMを起動することを知っています。
を実行することでVMのdockerランタイムを使用できることを読みましたeval $(minikube docker-env)
。そこで、これらの変数を使用して、ローカルのDockerランタイムから別のランタイムに変更しました。実行するdocker images
と、変更が効果的に行われたことがわかりました。
次のステップはdocker login
、イメージを使用して手動でプルすることでDockerハブにログインすることでしたが、エラーなしで終了しました。その後、イメージはクラスター内の任意のポッドで使用できるようになると思いましたが、常に取得していImagePullBackOff
ます。また、経由minikube ssh
でVMにSSHで接続しようとしましたが、結果は同じで、イメージは使用されますが、何らかの理由で使用を拒否していることがわかりません。
それが役立つ場合、これは私のデプロイメント記述ファイルです:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: web-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: godraude/nginx
imagePullPolicy: Always
ports:
- containerPort: 80
- containerPort: 443
そしてこれはの出力ですkubectl describe pod <podname>
:
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1m 1m 1 {default-scheduler } Normal Scheduled Successfully assigned web-deployment-2451628605-vtbl8 to minikube
1m 23s 4 {kubelet minikube} spec.containers{nginx} Normal Pulling pulling image "godraude/nginx"
1m 20s 4 {kubelet minikube} spec.containers{nginx} Warning Failed Failed to pull image "godraude/nginx": Error: image godraude/nginx not found
1m 20s 4 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ErrImagePull: "Error: image godraude/nginx not found"
1m 4s 5 {kubelet minikube} spec.containers{nginx} Normal BackOff Back-off pulling image "godraude/nginx"
1m 4s 5 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ImagePullBackOff: "Back-off pulling image \"godraude/nginx\""
問題は、イメージプルポリシーでした。Always
dockerがイメージをプルしようとしていたので、イメージが存在する場合でも、に設定されました。設定imagePullPolicy: Never
により問題は解決しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加