При деплое проекта в логах такая ошибка:
Executing deploy plan
failed to watch "ns:my-project/Ingress.v1.networking.k8s.io/my-project-ingress": Get "https://my-gitlab.com/-/kuberne ↵
tes-agent/k8s-proxy/api/v1/namespaces/my-project/events?allowWatchBookmarks=true&fieldSelector=involvedObject.name%3Dmy-project ↵
ingress%2CinvolvedObject.apiVersion%3Dnetworking.k8s.io%2Fv1%2CinvolvedObject.kind%3DIngress%2CinvolvedObject.namespac ↵
e%3Dmy-project&resourceVersion=158110990&timeout=6m4s&timeoutSeconds=364&watch=true": context canceled
failed to watch "ns:my-project/Service.v1/my-project-service": Get "https://my-gitlab.com/-/kubernetes-agent/k8s-prox ↵
y/api/v1/namespaces/my-project/events?allowWatchBookmarks=true&fieldSelector=involvedObject.name%3Dmy-project-service% ↵
2CinvolvedObject.apiVersion%3Dv1%2CinvolvedObject.kind%3DService%2CinvolvedObject.namespace%3Dmy-project&resourceVersion=15 ↵
8110990&timeout=8m54s&timeoutSeconds=534&watch=true": context canceled
при этом процесс идёт, объекты в кубе обновляются в течение первой минуты-полутора, но werf как будто не может получить об этом инфу. В итоге джоба работает 5-8 минут и завершается успешно. Вот лог:
┌ Progress status
│ RESOURCE (→READY) STATE INFO
│ Deployment/my-project WAITING Ready:0/1
│ • Pod/my-project-8669cbb46d-6nvdm CREATED Status:ContainerCreating
│ Ingress/my-project-ingress READY
│ Service/my-project-service READY
└ Progress status
┌ Progress status
│ RESOURCE (→READY) STATE INFO
│ Deployment/my-project WAITING Ready:0/1
│ • Pod/my-project-8669cbb46d-6nvdm CREATED Status:ContainerCreating
└ Progress status
┌ Progress status
│ RESOURCE (→READY) STATE INFO
│ Deployment/my-project WAITING Ready:0/1
│ • Pod/my-project-8669cbb46d-6nvdm CREATED Status:ContainerCreating
└ Progress status
...
### ДЖОБА ВИСИТ 5-7 минут
...
┌ Progress status
│ RESOURCE (→READY) STATE INFO
│ Deployment/my-project WAITING Ready:0/1
│ • Pod/my-project-8669cbb46d-6nvdm CREATED Status:Running
└ Progress status
┌ Progress status
│ RESOURCE (→READY) STATE INFO
│ Deployment/my-project READY Ready:1/1
│ • Pod/my-project-8669cbb46d-6nvdm READY Status:Running
└ Progress status
┌ Completed operations
│ Update resource: Deployment/my-project
│ Update resource: Ingress/my-project-ingress
│ Update resource: Service/my-project-service
└ Completed operations
Succeeded release "my-project-prod" (namespace: "my-project")
Running time 530.54 seconds
Если запускать werf converge через консоль с сервера, то такой фигни нет. Где может быть проблема? Куда копать?
ап
--debug не включен? context canceled возможно что-то с сетью, хотя есть вероятность что у нас там какие-то баги с параллельностью. В целом то, что джоба висит 5-7 минут это штатно, судя по логу. Мы ждём, пока Deployment не придет в готовность. Учитывая, что Pod поднялся, скорее всего пробы долго отрабатывают (мы их тоже проверяем, чтобы определить готовность)
Дебаг попробую включить посмотреть, джоба не висит 7 минут, 6 сек
это я по другой проблеме писал
Всё дело было в ServiceAccount, который использовался для деплоя. Гитлаб агент создал его при установке. Я подготовил ServiceAccount по инструкции и настроил агента на его использование. Это решило проблему.
К сожалению, это сработало только на одном кластере и одном проекте. Собрал больше статистики. Есть кластер d8 с таким поведением: деплой через Jenkins с использованием kubeconfig-а работает нормально, деплой через gitlab-ci с использованием kubeconfig - нормально, деплой через gitlab-ci с использованием gitlab agent - ошибка failed to watch (любой ресурс: сервис, деплоймент итд): context canceled, и процесс идет 8-10 минут вместо положенных 30-40 секунд. Есть другой кластер d8, при деплое в него с помощью Jenkins и kubeconfig получаем такую же ошибку и долго ждем релиза; при деплое руками из консоли всё отрабатывает быстро. Есть третий кластер d8, в него быстро и без ошибок werf задеплоить не может вообще никакими способами. Доп. информация. Это три разных ДЦ. Сетевики и админы уверяют, что все везде настраивают одинаково. Мы все настройки делаем ансиблом. Конфиги Deckhouse также одинаковые, кроме сети и доменных имен. Куда смотреть? Почему такое поведение?
ну больше всего похоже либо на проблемы с сетью, либо какие-то серверные компоненты кубов перегружены
Обсуждают сегодня