Ist dies ein FEHLERBERICHT oder eine FEATURE-ANFRAGE?: BUG
Kubernetes-Version (verwenden Sie die kubectl-Version):
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"}
Umfeld:
Cloud-Anbieter oder Hardwarekonfiguration: 2GB RAM/50GB HDD VM
Betriebssystem (zB aus /etc/os-release):
NAME="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
Kernel (zB uname -a):
Linux Ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Tools installieren: kubeadm, kubectl, docker
Andere : NEIN
Was ist passiert: ImagePullBackOff beim Ziehen aus einem privaten Repository
Was Sie erwartet hatten: Es wurde das Image aus dem privaten Repository gezogen
So reproduzieren Sie es (so minimal und genau wie möglich):
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
Docker-Infos
Behälter: 87
Laufen: 18
Angehalten: 0
Gestoppt: 69
Bilder: 175
Serverversion: 1.12.3
Speichertreiber: aufs
Root-Verzeichnis: /var/lib/docker/aufs
Backup-Dateisystem: extfs
Dirs: 384
Dirperm1 unterstützt: true
Protokollierungstreiber: json-Datei
Cgroup-Treiber: cgroupfs
Plugins:
Lautstärke: lokal
Netzwerk: Host-Bridge-Null-Overlay
Schwarm: inaktiv
Laufzeiten: runc
Standardlaufzeit: runc
Sicherheitsoptionen: apparmor seccomp
Kernel-Version: 4.4.0-21-generic
Betriebssystem: Ubuntu 16.04 LTS
Betriebssystemtyp: Linux
Architektur: x86_64
CPUs: 1
Gesamtspeicher: 1,937 GiB
Name: ubuntu
ID: FXD7: JQJZ:HO3R :D2NK: RWYL:7DCY :PC2M:43PM:MA7C: QSPN:4RGS :5W6H
Docker-Stammverzeichnis: /var/lib/docker
Debug-Modus (Client): false
Debug-Modus (Server): false
Registrierung: https://index.docker.io/v1/
WARNUNG: Keine Swap-Limit-Unterstützung
Unsichere Register:
123.456.789.0:9595
127.0.0.0/8
Docker -v
Docker-Version 1.12.3, Build 6b644ec
kubeadm in master starten
kubeadm init --token 123456.1234567890123456 --api-advertise-addresses 192.168.91.133
Erstellt das weive-Netzwerk
kubectl apply -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\""
Aus dem Slave und Master könnte ich das private Repository ziehen. Das Problem besteht jedoch, wenn kubectl versucht, das Image aus dem privaten Repository zu ziehen, obwohl ich mein Geheimnis in der Pod-Definition hinzugefügt habe.
Das Problem lag aufgrund der Portnummer vor. Nachdem Sie die Portnummer eingegeben haben, funktioniert es wie erwartet.
kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]
War kein echter Fehler, aber die Lösung finden Sie unter http://stackoverflow.com/questions/42267164/kubectl-not-able-to-pull-the-image-from-private-repository
Hilfreichster Kommentar
Das Problem lag aufgrund der Portnummer vor. Nachdem Sie die Portnummer eingegeben haben, funktioniert es wie erwartet.
kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]