Dockerfileによって作成された次の画像があります。
REPOSITORY TAG IMAGE ID CREATED SIZE
Ruby/lab latest f1903b1508cb 2 hours ago 729.6 MB
そして、次のYAMLファイルがあります:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: Ruby-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: Ruby
spec:
containers:
- name: Ruby-app
image: Ruby/lab
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4567
展開を作成すると、ポッドに次の情報が表示されます。
Ruby-deployment-3830038651-sa4ii 0/1 ImagePullBackOff 0 7m
Ruby-deployment-3830038651-u1tvc 0/1 ImagePullBackOff 0 7m
そして、下からのエラーFailed to pull image "Ruby/lab:latest": Error: image Ruby/lab not found
:
8m 2m 6 {kubelet minikube} spec.containers{Ruby} Normal Pulling pulling image "Ruby/lab:latest"
8m 2m 6 {kubelet minikube} spec.containers{Ruby} Warning Failed Failed to pull image "Ruby/lab:latest": Error: image Ruby/lab not found
8m 2m 6 {kubelet minikube} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "Ruby" with ErrImagePull: "Error: image Ruby/lab not found"
これには、Dockerにレジストリが必要ですか?ローカルでテストを行い、テストのためにコード/レポを友人に渡したいだけです
ありがとう
実行することにより、DockerクライアントをVMのdockerデーモンに向けることができます。
eval $(minikube docker-env)
その後、通常どおりイメージを構築し、kubectlを使用して通常kubernetesリソースを作成できます。あなたが持っていることを確認してください
imagePullPolicy: IfNotPresent
yAMLまたはJSON仕様で。
さらに、安全でないレジストリをminikube VMに渡すためのフラグがあります。ただし、これは、マシンを初めて作成するときに指定する必要があります。
minikube start --insecure-registry
また、プライベートレジストリを使用するときにこれを読むこともできます http://kubernetes.io/docs/user-guide/images/
AFAIR minikubeはVMで実行されるため、ホストマシンでローカルに構築した画像は表示されませんが、... https://github.com/kubernetes/ minikube/blob/master/docs/reusing_the_docker_daemon.mdeval $(minikube docker-env)
を使用して、実際にminikubeで実行されているDockerデーモンを利用できます。外部レジストリからプルしないk8sエンジン
docker pullは、すべてのノードですべての画像を手動でプルするか、DaemonSetを実行してすべての画像をプルします