После обновления пула узлов 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
Бета-версии 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:
Увеличение значения initialDelaySeconds
для параметра livenessProbe может помочь решить проблему, так как это даст контейнеру больше времени для запуска и выполнения первоначальных рабочих операций, прежде чем сервер проверки живости проверит его работоспособность.
Отметьте “Container restart policy”
, в спецификации пода есть поле restartPolicy с возможными значениями Always, OnFailure и Never. Значение по умолчанию — Всегда.
Недостаточно памяти или ресурсов. Попробуйте увеличить размер виртуальной машины. Контейнеры могут аварийно завершать работу из-за нехватки памяти, затем появляются новые, проверка работоспособности не удалась, и Ingress обслуживает 502.
Установите флажок externalTrafficPolicy=Local
в службе NodePort, чтобы узлы не перенаправляли трафик на другие узлы.
Обратитесь к проблеме Github Документ, как избежать 502 # 34 для получения дополнительной информации.