Не удается установить тиллер в локальной настройке миникуба - PullRequest
0 голосов
/ 07 июля 2019

У меня есть локальная настройка мини-куба с использованием Hyperkit VM. Я установил helm в своей системе, и клиент был успешно установлен, но tiller не устанавливается в кластере. Статус для модуля: ImagePullBackOff

Я попытался установить разные версии образа с флагом --tiller-image, но он все равно не работает. Если я выполняю обычное подключение к докеру того же образа в моей системе, это работает.

Команда helm version дает такой результат:

Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Error: could not find a ready tiller pod

Команда kubectl -n kube-system get pods дает следующие результаты:

NAME                               READY   STATUS             RESTARTS   AGE
coredns-fb8b8dccf-bh6w7            1/1     Running            0          146m
coredns-fb8b8dccf-gskc8            1/1     Running            1          146m
etcd-minikube                      1/1     Running            0          145m
kube-addon-manager-minikube        1/1     Running            0          145m
kube-apiserver-minikube            1/1     Running            0          145m
kube-controller-manager-minikube   1/1     Running            0          145m
kube-proxy-jqb9b                   1/1     Running            0          146m
kube-scheduler-minikube            1/1     Running            0          145m
storage-provisioner                1/1     Running            0          146m
tiller-deploy-548df79d66-xsngk     0/1     ImagePullBackOff   0          27m

Команда kubectl -n kube-system describe pod tiller-deploy-548df79d66-xsngk умножает на пять приведенный ниже результат:

Name:               tiller-deploy-548df79d66-xsngk
Namespace:          kube-system
Priority:           0
PriorityClassName:  <none>
Node:               minikube/192.168.64.56
Start Time:         Sat, 06 Jul 2019 22:41:54 +0530
Labels:             app=helm
                    name=tiller
                    pod-template-hash=548df79d66
Annotations:        <none>
Status:             Pending
IP:                 172.17.0.5
Controlled By:      ReplicaSet/tiller-deploy-548df79d66
Containers:
  tiller:
    Container ID:   
    Image:          gcr.io/kubernetes-helm/tiller:v2.12.1
    Image ID:       
    Ports:          44134/TCP, 44135/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:44135/liveness delay=1s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get http://:44135/readiness delay=1s timeout=1s period=10s #success=1 #failure=3
    Environment:
      TILLER_NAMESPACE:    kube-system
      TILLER_HISTORY_MAX:  0
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-6w54d (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  default-token-6w54d:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-6w54d
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  21h                  default-scheduler  Successfully assigned kube-system/tiller-deploy-548df79d66-xsngk to minikube
  Warning  Failed     21h                  kubelet, minikube  Failed to pull image "gcr.io/kubernetes-helm/tiller:v2.12.1": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 192.168.64.1:53: read udp 192.168.64.56:46818->192.168.64.1:53: read: connection refused
  Warning  Failed     21h                  kubelet, minikube  Failed to pull image "gcr.io/kubernetes-helm/tiller:v2.12.1": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 192.168.64.1:53: read udp 192.168.64.56:32929->192.168.64.1:53: read: connection refused
  Warning  Failed     21h                  kubelet, minikube  Failed to pull image "gcr.io/kubernetes-helm/tiller:v2.12.1": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 192.168.64.1:53: read udp 192.168.64.56:59446->192.168.64.1:53: read: connection refused
  Warning  Failed     21h (x4 over 21h)    kubelet, minikube  Error: ErrImagePull
  Normal   Pulling    21h (x4 over 21h)    kubelet, minikube  Pulling image "gcr.io/kubernetes-helm/tiller:v2.12.1"
  Warning  Failed     21h                  kubelet, minikube  Failed to pull image "gcr.io/kubernetes-helm/tiller:v2.12.1": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 192.168.64.1:53: read udp 192.168.64.56:58643->192.168.64.1:53: read: connection refused
  Warning  Failed     21h (x7 over 21h)    kubelet, minikube  Error: ImagePullBackOff
  Normal   BackOff    21h (x110 over 21h)  kubelet, minikube  Back-off pulling image "gcr.io/kubernetes-helm/tiller:v2.12.1"

Я не поддерживаю никаких прокси, если это поможет.

Обновление 1:

Я зашёл в миникуб и попытался вручную вытащить образ докера, но получил ошибку:

Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 192.168.64.1:53: read udp 192.168.64.56:46912->192.168.64.1:53: read: connection refused

Обновление 2:

Эта проблема не только для руля, но и для любого изображения. Я использую Quay.io для изображений, и кластер также не может этого достичь, я пробовал kafka, и это тоже не получается. Если я вставлю ssh в мини-куб, обновлю resolv, а затем вручную выполню извлечение докера внутри мини-куба, модуль раскручивается.

1 Ответ

0 голосов
/ 07 июля 2019

Повторно используйте демон докера для мини-куба с помощью команды

eval $(minikube docker-env)

, а затем потяните изображение румпеля, как это,

docker pull gcr.io/kubernetes-helm/tiller:v2.12.1

Теперь мини-куб будет иметьизображение загружено.Удалите существующий модуль румпеля с помощью этой команды,

kubectl delete pod tiller-deploy-548df79d66-xsngk -n kube-system

Объяснение таково.Поскольку похоже, что ImagePullPolicy не упоминается в развертывании румпеля, а также, поскольку по умолчанию ImagePullPolicy - IfNotPresent, minikube может не загрузить изображение и попытаться использовать уже загруженное изображение.

Обновление : причина, по которой helm не смог установить tiller, заключалась в том, что файл resolv.conf контейнера minikube имел nameserver 192.168.64.1 из предыдущей сети, к которой он подключился при созданиикластер.Так что миникубу не удалось вытащить изображение докера румпеля.Возможно, это связано с тем, что Docker настраивает сервер имен на основе сети, к которой вы подключены.

Эта ссылка может помочь.

...