Kubernetes: kubectl не может извлечь изображение из частного репозитория

Созданный на 16 февр. 2017  ·  3Комментарии  ·  Источник: kubernetes/kubernetes

Это ОТЧЕТ ОБ ОШИБКЕ или ЗАПРОС ФУНКЦИЙ ?: ОШИБКА

Версия Kubernetes (используйте версию kubectl):

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"}

Окружающая обстановка:

Облачный провайдер или конфигурация оборудования: 2 ГБ ОЗУ / 50 ГБ HDD ВМ
ОС (например, из / etc / os-release):
ИМЯ = "Ubuntu"
ВЕРСИЯ = "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

Ядро (например, 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
Инструменты установки: kubeadm, kubectl, docker
Другое : нет данных
Что произошло: ImagePullBackOff при извлечении из частного репозитория

Что вы ожидали: он извлек изображение из частного репозитория.

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

  • Создал файл для частного репозитория и перезапустил докер на обоих узлах (ведущем и ведомом)
    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
    docker login 123.456.789.0:9595
  • информация о докере
    Контейнеров: 87
    Бег: 18
    Приостановлено: 0
    Остановлено: 69
    Фото: 175
    Версия сервера: 1.12.3
    Драйвер хранилища: aufs
    Корневой каталог: / var / lib / docker / aufs
    Резервная файловая система: extfs
    Директ: 384
    Dirperm1 Поддерживается: true
    Драйвер логирования: json-файл
    Драйвер Cgroup: cgroupfs
    Плагины:
    Объем: местный
    Сеть: нулевое наложение моста хоста
    Рой: неактивен
    Время выполнения: runc
    Время выполнения по умолчанию: runc
    Параметры безопасности: apparmor seccomp
    Версия ядра: 4.4.0-21-generic
    Операционная система: Ubuntu 16.04 LTS
    OSType: linux
    Архитектура: x86_64
    Процессоры: 1
    Общий объем памяти: 1,937 ГиБ
    Имя: ubuntu
    ID: FXD7: JQJZ: HO3R : D2NK: RWYL: 7DCY : PC2M: 43PM: MA7C: QSPN: 4RGS : 5W6H
    Корневой каталог Docker: / var / lib / docker
    Режим отладки (клиент): false
    Режим отладки (сервер): false
    Реестр: https://index.docker.io/v1/
    ВНИМАНИЕ: нет поддержки ограничения свопинга
    Небезопасные реестры:
    123.456.789.0:9595
    127.0.0.0/8

  • докер -v
    Докер версии 1.12.3, сборка 6b644ec

  • Запустить kubeadm в мастере
    kubeadm init --token 123456.1234567890123456 --api-Advertise-addresses 192.168.91.133

  • Создать секрет кубернатов
    kubectl создать секретный реестр докеров my-secret --docker-server = 123.456.789.0 --docker-username = admin --docker-password = XXXX [email protected]
  • Создал сеть weive

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

  • Из ведомого подключитесь к основной сети
    kubeadm join --token = 123456.1234567890123456 192.168.91.133
  • Определение стручка
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
  • Затем попытался создать контейнер. Настроенный образ модуля находится в репозитории докеров nexus. Я получаю следующую трассировку при описании модуля.
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\""

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

Проблема возникла из-за номера порта. После ввода номера порта он заработал как положено.

kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]

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

От ведомого и ведущего я мог вытащить частный репозиторий. Но проблема существует, когда kubectl пытается извлечь изображение из частного репозитория, хотя я добавил свой секрет в определение модуля.

Проблема возникла из-за номера порта. После ввода номера порта он заработал как положено.

kubectl create secret docker-registry my-secret --docker-server=123.456.789.0:9595 --docker-username=admin --docker-password=XXXX [email protected]

Не было фактической ошибкой, но для решения см. Http://stackoverflow.com/questions/42267164/kubectl-not-able-to-pull-the-image-from-private-repository

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