kubernetes ne peut pas extraire de l'image
Je suis à l'aide de kubernetes sur une seule machine pour les tests, j'ai construit une image personnalisée à partir de la nginx docker image, mais lorsque j'essaie d'utiliser l'image de kubernetes, j'obtiens une image de tirer d'erreur?????
MON POD YAML
kind: Pod
apiVersion: v1
metadata:
name: yumserver
labels:
name: frontendhttp
spec:
containers:
- name: myfrontend
image: my/nginx:latest
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: mypd
imagePullSecrets:
- name: myregistrykey
volumes:
- name: mypd
persistentVolumeClaim:
claimName: myclaim-1
MON KUBERNETES COMMANDE
kubectl créez -f pod-yumserver.yaml
L'ERREUR
kubectl describe pod yumserver
Name: yumserver
Namespace: default
Image(s): my/nginx:latest
Node: 127.0.0.1/127.0.0.1
Start Time: Tue, 26 Apr 2016 16:31:42 +0100
Labels: name=frontendhttp
Status: Pending
Reason:
Message:
IP: 172.17.0.2
Controllers: <none>
Containers:
myfrontend:
Container ID:
Image: my/nginx:latest
Image ID:
QoS Tier:
memory: BestEffort
cpu: BestEffort
State: Waiting
Reason: ErrImagePull
Ready: False
Restart Count: 0
Environment Variables:
Conditions:
Type Status
Ready False
Volumes:
mypd:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: myclaim-1
ReadOnly: false
default-token-64w08:
Type: Secret (a secret that should populate this volume)
SecretName: default-token-64w08
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
13s 13s 1 {default-scheduler } Normal Scheduled Successfully assigned yumserver to 127.0.0.1
13s 13s 1 {kubelet 127.0.0.1} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
12s 12s 1 {kubelet 127.0.0.1} spec.containers{myfrontend} Normal Pulling pulling image "my/nginx:latest"
8s 8s 1 {kubelet 127.0.0.1} spec.containers{myfrontend} Warning Failed Failed to pull image "my/nginx:latest": Error: image my/nginx:latest not found
8s 8s 1 {kubelet 127.0.0.1} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "myfrontend" with ErrImagePull: "Error: image my/nginx:latest not found"
Vous devez vous connecter pour publier un commentaire.
Pour quelque raison Timo Reimann, qui n'a fait que ce post ci-dessus comme un commentaire, mais il devrait certainement être la réponse officielle à cette question, donc je vais l'afficher de nouveau.
Exécuter eval $(minikube docker-env) avant la construction de votre image.
Réponse complète ici: https://stackoverflow.com/a/40150867
La façon la plus simple de promouvoir l'analyse
ErrImagePull
des problèmes, c'est faire un ssh sur le nœud et essayer de tirer de l'image manuellement en faisantdocker pull my/nginx:latest
. Je n'ai jamais mis en place Kubernetes sur une seule machine, mais qui pouvait imaginer que le démon Docker n'est pas accessible à partir du nœud pour une raison quelconque. Un handish pull tentative devrait fournir plus d'informations.latest
balise définit l'imagePullPolicy
àAlways
implicitement. Vous pouvez essayez deIfNotPresent
explicitement ou modification d'une étiquette autre quelatest
.Êtes-vous à l'aide de minikube sur linux? Vous devez installer docker ( je pense), mais vous n'avez pas besoin de le faire démarrer. Minikube va le faire. Essayez d'utiliser le KVM pilote avec cette commande:
Puis exécutez le
eval $(minikube docker-env)
commande pour vous assurer que vous utilisez la minikube docker de l'environnement. construire votre récipient avec une balisebuild -t mycontainername:version .
si vous tapez
docker ps
vous devriez voir un tas de minikube conteneurs déjà en cours d'exécution.kvm utils sont probablement déjà sur votre machine, mais ils peuvent être installés comme sur centos/rhel: