Gitlab CI / CD с Kubernetes 1.16: моя производственная работа терпит неудачу из-за версии Kubernetes? - PullRequest
0 голосов
/ 11 ноября 2019

Мы используем Auto DevOps от Gitlab на Gitlab.com с подключенным кластером Kubernetes. До недавнего времени мы работали на Azure, но теперь решили перейти на digitalocean. Конвейер сборки / развертывания раньше работал нормально в Azure, но когда я запускаю его сейчас на нашем новом кластере, я получаю эту ошибку во время «производственного» задания:

$ auto-deploy deploy
secret/production-secret replaced
Deploying new release...
Release "production" does not exist. Installing it now.
Error: validation failed: unable to recognize "": no matches for kind 
"Deployment" in version "extensions/v1beta1"
ERROR: Job failed: exit code 1

После выполнения некоторого поиска в Google,Я нашел это объявление о выпуске для Kubernetes 1.16, в котором говорится, что ресурс Deployment был перемещен из расширений / v1beta1 в (в конечном итоге) apps / v1 и, что более важно, был удален из расширений / *:

https://kubernetes.io/blog/2019/09/18/kubernetes-1-16-release-announcement/

Версия Kubernetes, используемая в digitalocean, действительно 1.16.2. Я не помню версию, которую мы использовали в Azure, но, судя по дате статьи, версия 1.16 несколько нова (сентябрь 2019 года).

Насколько я могу судить, алгоритм развертывания реализован внутри Gitlab "auto-deploy "образ, в частности этот скрипт , но я не вижу, где я могу адаптировать конкретные kubectl выполняемые команды.

Мой вопрос таков: я прав, предполагаячто эта проблема вызвана тем, что Gitlab CI / CD использует нотацию до 1.16 для автоматического создания развертываний в кластерах Kubernetes? Если да, как я могу адаптировать сценарий развертывания для использования области apps / v1?

Ответы [ 3 ]

1 голос
/ 11 ноября 2019

Используйте «apps / v1» для «apiVersion», «extensions / v1beta1» устарела для «Развертывания» для нескольких версий.

1 голос
/ 11 ноября 2019

Я получал ту же ошибку, когда делал это с circleCI, а затем обнаружил, что версия kubectl была 1.13 против версии kubernetes 1.15.4, поэтому обратитесь к этому сообщению stackoverflow и попробуйте поместить версию kubectlв gitlab, так же, как тот, который показывает ваш текущий кластер kubernetes.

вы можете сделать

kubectl version

, чтобы получить версии клиента и сервера, просто сопоставьте gitlab kubectl с обновленной

0 голосов
/ 12 ноября 2019

Как оказалось, Gitlab Auto DevOps действительно пока не поддерживает Kubernetes 1.16. Они работают над этим .

См. Также вопрос, который я открыл на gitlab .

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

...