Kubernetes: kubectl kann das Image nicht aus dem privaten Repository ziehen

Erstellt am 16. Feb. 2017  ·  3Kommentare  ·  Quelle: kubernetes/kubernetes

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):

  • Erstellt eine Datei für ein privates Repository und startet den Docker sowohl im Knoten (Master und Slave) neu
    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
  • Dann Docker-Login
    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

  • Kubernates-Geheimnis erstellen
    kubectl create secret docker-registry my-secret --docker-server=123.456.789.0 --docker-username=admin --docker-password=XXXX [email protected]
  • Erstellt das weive-Netzwerk

    kubectl apply -f https://git.io/weave-kube

  • Treten Sie vom Slave dem Master-Netzwerk bei
    kubeadm Join --token=123456.1234567890123456 192.168.91.133
  • Pod-Definition
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
  • Dann versucht, einen Pod zu erstellen. Das konfigurierte Pod-Image befindet sich im Nexus-Docker-Repository. Ich erhalte die folgende Spur, während ich den Pod beschreibe
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\""

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]

Alle 3 Kommentare

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 diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

mml picture mml  ·  3Kommentare

arun-gupta picture arun-gupta  ·  3Kommentare

chowyu08 picture chowyu08  ·  3Kommentare

errordeveloper picture errordeveloper  ·  3Kommentare

sjenning picture sjenning  ·  3Kommentare