Ingress-nginx находится в CrashLoopBackOff после обновления K8s

После обновления пула узлов Kubernetes с версии 1.21 до версии 1.22 начался сбой модулей ingress-nginx-controller. То же развертывание отлично работает в EKS. У меня просто есть эта проблема в GKE. У кого-нибудь есть идеи о первопричине?

$ kubectl logs ingress-nginx-controller-5744fc449d-8t2rq -c controller

-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:       v1.3.1
  Build:         92534fa2ae799b502882c8684db13a25cde68155
  Repository:    https://github.com/kubernetes/ingress-nginx
  nginx version: nginx/1.19.10

-------------------------------------------------------------------------------

W0219 21:23:08.194770       8 client_config.go:617] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0219 21:23:08.194995       8 main.go:209] "Creating API client" host = "https://10.1.48.1:443"

События модуля Ingress:

Events:
  Type     Reason             Age                  From               Message
  ----     ------             ----                 ----               -------
  Normal   Scheduled          27m                  default-scheduler  Successfully assigned infra/ingress-nginx-controller-5744fc449d-8t2rq to gke-infra-nodep-ffe54a41-s7qx
  Normal   Pulling            27m                  kubelet            Pulling image "registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974"
  Normal   Started            27m                  kubelet            Started container controller
  Normal   Pulled             27m                  kubelet            Successfully pulled image "registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974" in 6.443361484s
  Warning  Unhealthy          26m (x6 over 26m)    kubelet            Readiness probe failed: HTTP probe failed with statuscode: 502
  Normal   Killing            26m                  kubelet            Container controller failed liveness probe, will be restarted
  Normal   Created            26m (x2 over 27m)    kubelet            Created container controller
  Warning  FailedPreStopHook  26m                  kubelet            Exec lifecycle hook ([/wait-shutdown]) for Container "controller" in Pod "ingress-nginx-controller-5744fc449d-8t2rq_infra(c4c166ff-1d86-4385-a22c-227084d569d6)" failed - error: command '/wait-shutdown' exited with 137: , message: ""
  Normal   Pulled             26m                  kubelet            Container image "registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974" already present on machine
  Warning  BackOff            7m7s (x52 over 21m)  kubelet            Back-off restarting failed container
  Warning  Unhealthy          2m9s (x55 over 26m)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 502
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Бета-версии API (extensions/v1beta1 and networking.k8s.io/v1beta1) Ingress больше не обслуживаются (удаляются) для кластеров GKE, созданных в версиях 1.22 и более поздних. Пожалуйста, обратитесь к официальной входной документации GKE, чтобы узнать об изменениях в версии GA API.

Также см. официальную документацию Kubernetes для удаления API для Kubernetes v1.22 для получения дополнительной информации.

Перед обновлением Ingress API в качестве клиента убедитесь, что каждый используемый вами контроллер входящего трафика совместим с Ingress API версии 1. См. Предварительные требования для входа для получения дополнительной информации о входе и контроллерах входа.

Также проверьте ниже возможные причины Crashloopbackoff:

  1. Увеличение значения initialDelaySeconds для параметра livenessProbe может помочь решить проблему, так как это даст контейнеру больше времени для запуска и выполнения первоначальных рабочих операций, прежде чем сервер проверки живости проверит его работоспособность.

  2. Отметьте “Container restart policy”, в спецификации пода есть поле restartPolicy с возможными значениями Always, OnFailure и Never. Значение по умолчанию — Всегда.

  3. Недостаточно памяти или ресурсов. Попробуйте увеличить размер виртуальной машины. Контейнеры могут аварийно завершать работу из-за нехватки памяти, затем появляются новые, проверка работоспособности не удалась, и Ingress обслуживает 502.

  4. Установите флажок externalTrafficPolicy=Local в службе NodePort, чтобы узлы не перенаправляли трафик на другие узлы.

Обратитесь к проблеме Github Документ, как избежать 502 # 34 для получения дополнительной информации.

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