S'agit-il d'un RAPPORT DE BOGUE
Version Kubernetes (utilisez la version Kubectl) :
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57:25Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:34:56Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Environnement:
Fournisseur de cloud ou configuration matérielle : 2 Go de RAM/50 Go de disque dur VM
OS (par exemple depuis /etc/os-release) :
NOM="Ubuntu"
VERSION="16.04 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04 LTS"
VERSION_ID="16.04"
HOME_URL=" http://www.ubuntu.com/ "
SUPPORT_URL=" http://help.ubuntu.com/ "
BUG_REPORT_URL=" http://bugs.launchpad.net/ubuntu/ "
UBUNTU_CODENAME=xenial
Noyau (par exemple uname -a) :
Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Lun 18 avril 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Outils d'installation : kubeadm, kubectl, docker
Autres :NA
Que s'est-il passé : ImagePullBackOff lors de l'extraction d'un référentiel privé
Ce à quoi vous vous attendiez
Comment le reproduire (le plus minimement et le plus précisément possible) :
root<strong i="5">@ubuntu</strong>:~# vi /etc/systemd/system/docker.service.d/private-registry.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --insecure-registry 123.456.789.0:9595
docker login 123.456.789.0:9595
informations sur les dockers
Conteneurs : 87
Course à pied : 18
En pause : 0
Arrêté : 69
Images : 175
Version du serveur : 1.12.3
Pilote de stockage : aufs
Répertoire racine : /var/lib/docker/aufs
Système de fichiers de sauvegarde : extfs
Répertoire : 384
Dirperm1 pris en charge : vrai
Pilote de journalisation : fichier json
Pilote de groupe de contrôle : cgroupfs
Plugins :
Volume : local
Réseau : superposition nulle du pont hôte
Essaim : inactif
Temps d'exécution : runc
Temps d'exécution par défaut : runc
Options de sécurité : apparmor seccomp
Version du noyau : 4.4.0-21-generic
Système d'exploitation : Ubuntu 16.04 LTS
Type de système d'exploitation : Linux
Architecture : x86_64
Processeurs : 1
Mémoire totale : 1,937 Gio
Nom : ubuntu
ID : FXD7 : JQJZ:HO3R :D2NK : RWYL:7DCY :PC2M:43PM:MA7C: QSPN:4RGS :5W6H
Répertoire racine Docker : /var/lib/docker
Mode de débogage (client) : faux
Mode de débogage (serveur) : faux
Registre : https://index.docker.io/v1/
AVERTISSEMENT : aucune prise en charge de la limite d'échange
Registres non sécurisés :
123.456.789.0:9595
127.0.0.0/8
docker -v
Docker version 1.12.3, build 6b644ec
Lancer kubeadm dans le maître
kubeadm init --token 123456.1234567890123456 --api-advertise-addresses 192.168.91.133
Création du réseau weive
kubectl applique -f https://git.io/weave-kube
apiVersion: v1
kind: Pod
metadata:
name: test-pod
labels:
name: test
spec:
containers:
- image: 123.456.789.0:9595/test
name: test
ports:
- containerPort: 8443
imagePullSecrets:
- name: my-secret
Name: test-pod
Namespace: default
Node: ubuntu-child/192.168.91.134
Start Time: Thu, 16 Feb 2017 12:26:56 +0530
Labels: name=test
Status: Pending
IP: 10.44.0.2
Controllers: <none>
Containers:
test:
Container ID:
Image: 123.456.789.0:9595/test
Image ID:
Port: 8443/TCP
State: Waiting
Reason: ErrImagePull
Ready: False
Restart Count: 0
Volume Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-vkj94 (ro)
Environment Variables: <none>
Conditions:
Type Status
Initialized True
Ready False
PodScheduled True
Volumes:
default-token-vkj94:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-vkj94
QoS Class: BestEffort
Tolerations: <none>
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
9s 9s 1 {default-scheduler } Normal Scheduled Successfully assigned test-pod to ubuntu-child
7s 7s 1 {kubelet ubuntu-child} spec.containers{test} Normal Pulling pulling image "123.456.789.0:9595/test"
7s 7s 1 {kubelet ubuntu-child} spec.containers{test} Warning Failed Failed to pull image "123.456.789.0:9595/test": Error: image test:latest not found
7s 7s 1 {kubelet ubuntu-child} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "test" with ErrImagePull: "Error: image test:latest not found"
7s 7s 1 {kubelet ubuntu-child} spec.containers{test} Normal BackOff Back-off pulling image "123.456.789.0:9595/test"
7s 7s 1 {kubelet ubuntu-child} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "test" with ImagePullBackOff: "Back-off pulling image \"123.456.789.0:9595/test\""
De l'esclave et du maître, je pourrais extraire le référentiel privé. Mais, le problème existe lorsque kubectl essaie d'extraire l'image du référentiel privé bien que j'aie ajouté mon secret dans la définition du pod.
Le problème existe en raison du numéro de port. Après avoir mis le numéro de port, il a commencé à fonctionner comme prévu.
kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]
Ce n'était pas un bogue réel, mais pour la solution, voir http://stackoverflow.com/questions/42267164/kubectl-not-able-to-pull-the-image-from-private-repository
Commentaire le plus utile
Le problème existe en raison du numéro de port. Après avoir mis le numéro de port, il a commencé à fonctionner comme prévu.
kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]