Не удалось установить или обновить релиз Helm в кластере Kubernetes: серверу не удалось найти запрошенный ресурс, или UPGRADE FAILED: не развернуты выпуски - PullRequest
0 голосов
/ 26 февраля 2019

Использование helm для развертывания диаграммы в моем кластере Kubernetes, поскольку однажды я не могу развернуть новую или обновить ее.

Действительно, каждый раз, когда я использую helm, у меня появляется сообщение об ошибке, сообщающеемне, что невозможно установить или обновить ресурсы.

Если я запускаю helm install --name foo . -f values.yaml --namespace foo-namespace У меня есть такой вывод:

Ошибка: сбой выпуска foo: серверу не удалось найтизапрашиваемый ресурс

Если я запускаю helm upgrade --install foo . -f values.yaml --namespace foo-namespace или helm upgrade foo . -f values.yaml --namespace foo-namespace У меня есть эта ошибка:

Ошибка: СБОЙ ОБНОВЛЕНО: "foo" не имеет развернутых выпусков

Я не совсем понимаю, почему.

Это моя версия руля:

Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}

В моем кластере kubernetes у меня развернут румпель с той же версией, когда яrun kubectl describe pods tiller-deploy-84b... -n kube-system:

Name:               tiller-deploy-84b8...
Namespace:          kube-system
Priority:           0
PriorityClassName:  <none>
Node:               k8s-worker-1/167.114.249.216
Start Time:         Tue, 26 Feb 2019 10:50:21 +0100
Labels:             app=helm
                    name=tiller
                    pod-template-hash=84b...
Annotations:        <none>
Status:             Running
IP:                 <IP_NUMBER>
Controlled By:      ReplicaSet/tiller-deploy-84b8...
Containers:
  tiller:
    Container ID:   docker://0302f9957d5d83db22...
    Image:          gcr.io/kubernetes-helm/tiller:v2.12.3
    Image ID:       docker-pullable://gcr.io/kubernetes-helm/tiller@sha256:cab750b402d24d...
    Ports:          44134/TCP, 44135/TCP
    Host Ports:     0/TCP, 0/TCP
    State:          Running
      Started:      Tue, 26 Feb 2019 10:50:28 +0100
    Ready:          True
    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 helm-token-... (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  helm-token-...:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  helm-token-...
    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  26m   default-scheduler      Successfully assigned kube-system/tiller-deploy-84b86cbc59-kxjqv to worker-1
  Normal  Pulling    26m   kubelet, k8s-worker-1  pulling image "gcr.io/kubernetes-helm/tiller:v2.12.3"
  Normal  Pulled     26m   kubelet, k8s-worker-1  Successfully pulled image "gcr.io/kubernetes-helm/tiller:v2.12.3"
  Normal  Created    26m   kubelet, k8s-worker-1  Created container
  Normal  Started    26m   kubelet, k8s-worker-1  Started container

Кто-то сталкивался с такой же проблемой?


Обновление:

Это структура папок моего фактического графика с именем foo:папка структуры диаграммы:

> templates/
  > deployment.yaml 
  > ingress.yaml
  > service.yaml
> .helmignore
> Chart.yaml 
> values.yaml

Я уже пытался удалить диаграмму в случае ошибки uСпойте команду удаления helm del --purge foo, но произошли те же ошибки.

Чтобы быть более точным, диаграмма foo на самом деле является собственной диаграммой, использующей мой личный реестр.ImagePullSecret обычно устанавливаются.

Я выполнил эти две команды helm upgrade foo . -f values.yaml --namespace foo-namespace --force |helm upgrade --install foo . -f values.yaml --namespace foo-namespace --force и я все еще получаю ошибку:

UPGRADE FAILED
ROLLING BACK
Error: failed to create resource: the server could not find the requested resource
Error: UPGRADE FAILED: failed to create resource: the server could not find the requested resource

Обратите внимание, что пространство имен foo уже существует.Таким образом, ошибка не исходит из имени пространства имен или самого пространства имен.Действительно, если я запускаю helm list, я вижу, что диаграмма foo находится в состоянии FAILED.

Ответы [ 3 ]

0 голосов
/ 23 мая 2019

У меня была такая же проблема, но не из-за неработающих выпусков. После обновления helm. Кажется, что новые версии helm плохо работают с параметром --wait.Так что для тех, кто сталкивается с той же проблемой: просто убрав --wait и оставив --debug из helm upgrade параметров, я решил проблему.

0 голосов
/ 23 августа 2019

У меня была такая же проблема, но очистка не помогла, и попытка того же графика руля на новом кластере k8s не помогла.

Итак, я обнаружил, что возникла проблема с apiVersion.Я выяснил это, выполнив

helm install xyz --dry-run

, скопировав вывод в новый файл test.yaml и использовав

kubectl apply test.yaml

. Там я вижу ошибку (apiVersionстрока была перемещена в строку комментария)

0 голосов
/ 26 марта 2019

Tiller сохраняет все выпуски как ConfigMaps в пространстве имен Tiller (kube-system в вашем случае).Попробуйте найти поврежденный выпуск и удалить его ConfigMap с помощью команд:

$ kubectl get cm --all-namespaces -l OWNER=TILLER
NAMESPACE     NAME               DATA   AGE
kube-system   nginx-ingress.v1   1      22h

$ kubectl delete cm  nginx-ingress.v1 -n kube-system

Затем удалите все объекты выпуска (развертывание, службы, вход и т. Д.) Вручную и переустановите выпуск с помощью helm.

Если это не помогло, вы можете попробовать загрузить более новый [релиз] Helm (на данный момент 2.13.1) и обновить / переустановить Tiller.

...