Kubeadm: kube-apiserver kann nicht von der privaten Registrierung aktualisiert werden.

Erstellt am 2. Okt. 2017  ·  4Kommentare  ·  Quelle: kubernetes/kubeadm

Ich habe dieses Problem #71 überprüft. Es scheint, dass ich keine Anmeldeinformationen hinzufügen kann, wenn kube-apiserver nicht ausgeführt wird, aber nachdem ich das private Image manuell abgerufen und kubelet neu gestartet habe, erhalte ich immer noch den Fehler.

PullImage "docker.kesci.com:5000/kube-apiserver:latest" from image service failed: rpc error: code = Unknown desc = Error response from daemon: Get https://**my.private.image.registry**/v2/kube-apiserver/manifests/latest: no basic auth credentials

Versionen

kubeadm-Version (verwenden Sie kubeadm version ):

Umgebung :

  • Kubernetes-Version (verwenden Sie kubectl version ):
    Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.5", GitCommit:"17d7182a7ccbb167074be7a87f0a68bd00d58d97", GitTreeState:"clean", BuildDate:"2017-08-31T09:14:02Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
  • Cloud-Anbieter oder Hardware-Konfiguration :
    aws
  • Betriebssystem (zB aus /etc/os-release):
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 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/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
  • Kernel (zB uname -a ):
    Linux ip-172-31-28-254 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • Andere :

Was ist passiert?

Ich ersetze das Image der /etc/kubernetes/manifests/kube-apiserver.yaml Konfiguration manuell und Kubelet hat den Fehler container start failed: ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: Get https://my.private.image.registry/v2/kube-apiserver/manifests/latest: no basic auth credentials
docker pull my.private.image.registry/kube-apiserver:latest und run service kubelet restart , erhalten immer noch diesen Fehler.

Was haben Sie erwartet?

Die kubelet-Unterstützung kann Anmeldeinformationen manuell konfigurieren oder lokale gezogene Images erkennen.

Wie kann man es reproduzieren (so minimal und genau wie möglich)?

Ersetzen Sie das Image /etc/kubernetes/manifests/kube-apiserver.yaml durch ein privates Registry-Image.

kinsupport

Hilfreichster Kommentar

@ggaaooppeenngg du solltest das versuchen:

  1. Pre-Pull-Images mit Docker-Pull
  2. Verwenden Sie kubeadm init --config yourconfigfile und achten Sie darauf, die Option imageRepository in der Konfigurationsdatei festzulegen

Bitte beachte, dass:

  • Sie müssen Bilder vorab ziehen, da es keine Möglichkeit gibt, ein imagePullSecrets zu erstellen, bevor der Cluster existiert 😄
  • das obige Verfahren funktioniert in kubeadm v1.8; Ich erinnere mich nicht, ob dies auch in früheren Versionen unterstützt wurde :confused:
  • Dieses Verfahren legt Ihr Repository in yaml-Dateien fest, ohne dass manuelle Änderungen erforderlich sind 👍; Es wird jedoch erwartet, dass alle lokalen Images einer Standardnamenskonvention folgen (zB Komponentenname-Architektur:Version)

Weitere Informationen finden Sie unter https://kubernetes.io/docs/admin/kubeadm/

Alle 4 Kommentare

Meine Lösung: Docker zieht das Image und setzt imagePullPolicy auf Never, dann starte kubelet neu.

Wie soll sich kubeadm in dieser Situation verhalten? Wir verwenden offizielle Bilder und unterstützen keine benutzerdefinierten Repos. Was ist Ihr Anwendungsfall für die Verwendung eines benutzerdefinierten Images?

@ggaaooppeenngg du solltest das versuchen:

  1. Pre-Pull-Images mit Docker-Pull
  2. Verwenden Sie kubeadm init --config yourconfigfile und achten Sie darauf, die Option imageRepository in der Konfigurationsdatei festzulegen

Bitte beachte, dass:

  • Sie müssen Bilder vorab ziehen, da es keine Möglichkeit gibt, ein imagePullSecrets zu erstellen, bevor der Cluster existiert 😄
  • das obige Verfahren funktioniert in kubeadm v1.8; Ich erinnere mich nicht, ob dies auch in früheren Versionen unterstützt wurde :confused:
  • Dieses Verfahren legt Ihr Repository in yaml-Dateien fest, ohne dass manuelle Änderungen erforderlich sind 👍; Es wird jedoch erwartet, dass alle lokalen Images einer Standardnamenskonvention folgen (zB Komponentenname-Architektur:Version)

Weitere Informationen finden Sie unter https://kubernetes.io/docs/admin/kubeadm/

@jamiehannaford Ich möchte einige Leistungsprobleme

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen