Helm: несовместимые версии между клиентом и сервером

После запуска helm list я получил следующую ошибку:

Error: incompatible versions client[v2.9.0] server[v2.8.2]

Я сделал helm init, чтобы установить совместимую версию румпеля "Предупреждение: Tiller уже установлен в кластере. (Используйте --client-only, чтобы подавить это сообщение, или --upgrade, чтобы обновить Tiller до текущей версии.) ".

Есть указатели?

Ошибка: клиент представляет версию CLI для руля, а сервер - версию румпеля, и вы используете две разные версии. Я предлагаю вам использовать helm3, из которого удален tiller, и обрабатывать его через CLI helm.

Mayur 27.02.2020 11:33
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
77
1
48 683
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Ответ принят как подходящий

Чтобы обновить версию румпеля до той же версии клиента, просто запустите helm init --upgrade.

Как перейти на более раннюю версию клиентского Helm?

lucky 14.11.2018 17:25

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

Damien Roche 20.11.2018 18:02

Это действительно не следует считать правильным ответом. Ниже приведены два хороших решения.

Scott Boring 31.01.2019 01:00

Неразумно обновлять производственное программное обеспечение просто для удовлетворения требований клиента.

Stefan Lasiewski 01.11.2019 19:55

Все, что вам нужно, это просто понизить версию клиента helm, как указано во втором ответе, чтобы ничего не испортить.

redzack 01.05.2020 15:39

Хотя, как говорится, «волей-неволей» обновлять серверную версию может быть опасно, мне удалось легко и без проблем обновить версию с 2.16.0 до 2.17.0.

Danny Harding 10.03.2021 17:51

Как и OP, у меня была эта ошибка:

$ helm list
Error: incompatible versions client[v2.10.0] server[v2.9.1]

Обновление сервера для меня не было вариантом, поэтому мне нужно было установить предыдущую версию клиента. Я ранее не устанавливал клиент [v2.9.1] (или любую предыдущую версию клиента) и поэтому не мог просто brew switch kubernetes-helm 2.9.1. В итоге мне пришлось выполнить шаги в этом SO-ответе: https://stackoverflow.com/a/17757092/2356383

Что в основном говорит

Теперь, когда у меня был URL-адрес правильного файла kubernetes-helm.rb, я выполнил следующее:

$ brew unlink kubernetes-helm
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/78d64252f30a12b6f4b3ce29686ab5e262eea812/Formula/kubernetes-helm.rb
$ brew switch kubernetes-helm 2.9.1

Надеюсь, это кому-то поможет.

Это лучший ответ, так как он не меняет версию сервера, но соответственно меняет вашу локальную версию.

LeDerp 30.01.2019 09:47

В настоящее время у меня была проблема, что завершение вкладки было прервано после того, как я изменил версию клиента Helm. Вы должны перезагрузить его с помощью helm completion <SHELL>. github.com/helm/helm/blob/master/docs/helm/helm_completion.m‌ d

Florian Rusch 21.08.2019 13:02

Это решение больше не работает: «Недопустимое использование: установка kubernetes-helm из URL-адреса фиксации GitHub не поддерживается! Вместо этого используйте вместо этого« brew extract kubernetes-helm »для стабильного нажатия на GitHub. (UsageError))». Однако приведенный ниже сценарий установки helm все еще работает.

sigma1510 04.12.2020 08:29

Другой подход к использованию разных версий через Docker.

https://hub.docker.com/r/alpine/helm

Пример: список установленных пакетов Helm

docker run -it --rm \
    -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1 \
    list

Это длинная команда; но его можно сократить с помощью псевдонима

alias helm_2_9_1 = "docker run -ti --rm \
    -v $(pwd):/apps -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1"

И тогда команда

helm_2_9_1 list

Псевдоним следует заключать в одинарные кавычки, поэтому $ (pwd) оценивается при выполнении команды, а не при создании псевдонима.

dan 23.05.2019 09:21

Лучший ответ, если вам нужно использовать и старую версию Helm, и вы не хотите много устанавливать на свою рабочую станцию!

webofmars 15.06.2020 16:00

Вы знаете, как это сделать, если вы подключаетесь к модулям на AWS?

trafalmadorian 18.12.2020 06:32

Другой альтернативой, если изменение версии сервера невозможно, является использование скрипт установщика helm

Скрипт позволяет вам выбрать конкретную версию вот так ./get_helm.sh -v v2.13.1

Хорошее простое решение, которое работает и не требует изменения версии сервера. Это должен быть принятый ответ.

volting 20.11.2019 12:15

Этот ответ предназначен для тех, кто хочет выбрать (перейти на более раннюю) версию клиента helm, а установка brew не работает. Вы можете просто вручную установить двоичный файл из здесь.

пример:

  1. вы можете отменить связь с текущим рулем

    brew unlink kubernetes-helm
    
  2. выберите и загрузите нужную вам версию руля в github helm ------ v2.8.2

  3. разархивируйте файл и поместите исполняемый двоичный файл helm unix в каталог / usr / local / bin

    перейдите в каталог, который вы только что скачали

    cd /Users/your_name/Downloads
    

    разархивируйте файл

    gunzip -c helm-v2.8.2-darwin-amd64.tar.gz | tar xopf -
    

    скопировать в каталог bin

    cp darwin-amd64/helm /usr/local/bin
    
  4. теперь вы увидите нужную версию шлема

    helm version
    

У меня возникла такая же проблема, но в моем случае я хочу только обновить Tiller до определенной версии (поскольку клиент helm работает удаленно).

Итак, ошибка была:

Error: UPGRADE FAILED: incompatible versions client[v2.11.0] server[v2.9.1]

Согласно документации я запустил:

$ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:v2.11.0

deployment.extensions/tiller-deploy image updated

Ссылка на документацию:

https://helm.sh/docs/install/#upgrading-tiller

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

  • Удалите его: snap remove helm
  • Проверить доступные версии: snap info helm
  • Установите тот, который вам нужен: snap install helm --channel=X.X/stable --classic

Вероятно, это не самый продвинутый ответ ... но моя команда запускает кластеры Kubernetes, на которых уже установлен tiller. При настройке нового ноутбука я хотел, чтобы мой штурвал соответствовал версии румпеля, поэтому я обнаружил, что это так:

TILLER_POD=`kubectl get pods -n kube-system | grep tiller | awk '{print $1}'`
kubectl exec -n kube-system $TILLER_POD -- /tiller -version

Затем я просто использовал обычные инструкции по установке Helm из этого номера выпуска (в Linux, в основном, просто скрутите и разархивируйте в / usr / local / bin).

Если вы являетесь пользователем Windows и установили helm через choco, сначала перейдите в его папку (моя - C: \ ProgramData \ chocolatey) и удалите helm.exe из папки bin.

Затем необходимо загрузить соответствующий файл heml.exe. Используя приведенные выше комментарии, выберите место, откуда вы будете загружать exe. Например, я использовал этот путь: https://get.helm.sh/helm-v2.14.3-windows-amd64.tar.gz

Наконец, извлеките helm.exe из tar и перейдите в папку choco bin. Конечно, вы можете напрямую добавить этот exe в путь.

Другие вопросы по теме