Kubeadm: Невозможно обновить kube-apiserver из частного реестра.

Созданный на 2 окт. 2017  ·  4Комментарии  ·  Источник: kubernetes/kubeadm

Я проверил эту проблему, # 71, кажется, я не могу добавить учетные данные, если kube-apiserver не запущен, но после того, как вручную вытащить частный образ и перезапустить kubelet, я все равно получаю сообщение об ошибке.

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

Версии

версия kubeadm (используйте kubeadm version ):

Окружающая среда :

  • Версия Kubernetes (используйте 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"}
  • Облачный провайдер или конфигурация оборудования :
    aws
  • ОС (например, из / 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
  • Ядро (например, 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
  • Другие :

Что случилось?

Я вручную заменяю изображение конфигурации /etc/kubernetes/manifests/kube-apiserver.yaml , и kubelet получил ошибку 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 и run service kubelet restart , по-прежнему возникает эта ошибка.

Чего вы ожидали?

Поддержка kubelet вручную настраивает учетные данные или может распознавать локальные извлеченные изображения.

Как это воспроизвести (максимально минимально и точно)?

Замените изображение /etc/kubernetes/manifests/kube-apiserver.yaml личным образом реестра.

kinsupport

Самый полезный комментарий

@ggaaooppeenngg, вы должны попробовать это:

  1. Предварительное извлечение образов с помощью docker pull
  2. Используйте kubeadm init --config yourconfigfile , установив параметр imageRepository в файле конфигурации.

Обратите внимание:

  • вы должны предварительно вытащить изображения, потому что нет возможности создать imagePullSecrets до того, как кластер существует 😄
  • описанная выше процедура работает в kubeadm v1.8; Я не помню, поддерживалось ли это в предыдущих выпусках: confused:
  • эта процедура устанавливает ваше репо в файлах yaml, не требуя внесения изменений вручную 👍; однако ожидается, что все локальные образы следуют стандартному соглашению об именах (например, имя-компонента-архитектура: версия)

Для получения дополнительной информации вы можете посмотреть https://kubernetes.io/docs/admin/kubeadm/

Все 4 Комментарий

Мое решение: докер вытащить изображение и установить для imagePullPolicy значение Never, затем перезапустить kubelet.

Как вы ожидаете, что kubeadm будет действовать в этой ситуации? Мы используем официальные образы и не поддерживаем кастомные репозитории. Каков ваш вариант использования настраиваемого изображения?

@ggaaooppeenngg, вы должны попробовать это:

  1. Предварительное извлечение образов с помощью docker pull
  2. Используйте kubeadm init --config yourconfigfile , установив параметр imageRepository в файле конфигурации.

Обратите внимание:

  • вы должны предварительно вытащить изображения, потому что нет возможности создать imagePullSecrets до того, как кластер существует 😄
  • описанная выше процедура работает в kubeadm v1.8; Я не помню, поддерживалось ли это в предыдущих выпусках: confused:
  • эта процедура устанавливает ваше репо в файлах yaml, не требуя внесения изменений вручную 👍; однако ожидается, что все локальные образы следуют стандартному соглашению об именах (например, имя-компонента-архитектура: версия)

Для получения дополнительной информации вы можете посмотреть https://kubernetes.io/docs/admin/kubeadm/

@jamiehannaford Я хочу покопаться в некоторых проблемах с производительностью и добавить журналы трассировки, чтобы проверить.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги