Kubeadm: Impossible de mettre à niveau kube-apiserver à partir du registre privé.

Créé le 2 oct. 2017  ·  4Commentaires  ·  Source: kubernetes/kubeadm

J'ai vérifié ce problème, #71 , il semble que je ne puisse pas ajouter d'informations d'identification si kube-apiserver n'est pas en cours d'exécution, mais après avoir extrait manuellement l'image privée et redémarré kubelet, l'erreur persiste.

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

Versions

version de kubeadm (utilisez kubeadm version ):

Environnement :

  • Version Kubernetes (utilisez 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"}
  • Fournisseur cloud ou configuration matérielle :
    aws
  • OS (par exemple depuis /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
  • Noyau (par exemple 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
  • Autres :

Que s'est-il passé?

Je remplace manuellement l'image de la configuration de /etc/kubernetes/manifests/kube-apiserver.yaml , et kubelet a l'erreur 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 , il semble qu'aucune information d'identification n'est configurée, donc je docker manuellement l'image
docker pull my.private.image.registry/kube-apiserver:latest et run service kubelet restart , toujours cette erreur.

A quoi vous attendiez-vous ?

La prise en charge de kubelet configure manuellement les informations d'identification ou peut reconnaître les images extraites locales.

Comment le reproduire (le plus minimalement et le plus précisément possible) ?

Remplacez l'image /etc/kubernetes/manifests/kube-apiserver.yaml par une image de registre privé.

kinsupport

Commentaire le plus utile

@ggaaooppeenngg vous devriez essayer ceci :

  1. Images pré-tirées avec docker pull
  2. Utilisez kubeadm init --config yourconfigfile , en prenant soin de définir l'option imageRepository dans le fichier de configuration

Veuillez noter que :

  • vous devez pré-tirer les images, car il n'y a aucun moyen de créer une imagePullSecrets avant que le cluster n'existe 😄
  • la procédure ci-dessus fonctionne dans kubeadm v1.8 ; Je ne me souviens pas si cela était également pris en charge dans les versions précédentes :confused:
  • cette procédure définit votre référentiel dans des fichiers yaml sans nécessiter de modifications manuelles 👍; cependant, il est prévu que toutes les images locales suivent une convention de nommage standard (par exemple, componentname-architecture:version)

Pour plus d'informations, vous pouvez consulter https://kubernetes.io/docs/admin/kubeadm/

Tous les 4 commentaires

Ma solution: docker extrayez l'image et définissez imagePullPolicy sur Jamais, puis redémarrez kubelet.

Comment voulez-vous que kubeadm agisse dans cette situation ? Nous utilisons des images officielles et ne prenons pas en charge les dépôts personnalisés. Quel est votre cas d'utilisation pour l'utilisation d'une image personnalisée ?

@ggaaooppeenngg vous devriez essayer ceci :

  1. Images pré-tirées avec docker pull
  2. Utilisez kubeadm init --config yourconfigfile , en prenant soin de définir l'option imageRepository dans le fichier de configuration

Veuillez noter que :

  • vous devez pré-tirer les images, car il n'y a aucun moyen de créer une imagePullSecrets avant que le cluster n'existe 😄
  • la procédure ci-dessus fonctionne dans kubeadm v1.8 ; Je ne me souviens pas si cela était également pris en charge dans les versions précédentes :confused:
  • cette procédure définit votre référentiel dans des fichiers yaml sans nécessiter de modifications manuelles 👍; cependant, il est prévu que toutes les images locales suivent une convention de nommage standard (par exemple, componentname-architecture:version)

Pour plus d'informations, vous pouvez consulter https://kubernetes.io/docs/admin/kubeadm/

@jamiehannaford Je veux creuser quelques problèmes de performances et ajouter des journaux de suivi, afin que je puisse avoir un contrôle.

Cette page vous a été utile?
0 / 5 - 0 notes