我正试图在Kubernetes集群版本v1.16(v116.10(上升级Nginx控制器,但不幸的是没有成功。
我的Nginx设置被配置为具有helm稳定存储库的DaemonSet,因为新存储库已更改为https://kubernetes.github.io/ingress-nginx我正在尝试使用新的回购,并尝试将版本升级到0.33版本,即helm版本2.10.0
错误行为:
升级成功了一半,并陷入了一个说";Pod还没有准备好:kube系统/nginx入口控制器xxxx"在舵控制器中。当时,节点中有DaemonSet创建的pod;CrashLoopBackOff";状态,然后";错误";状态,日志显示以下错误:
W0928 05:21:50.497500 6 flags.go:249] SSL certificate chain completion is disabled (--enable-ssl-chain-completion=false)
W0928 05:21:50.497572 6 client_config.go:552] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
I0928 05:21:50.497777 6 main.go:218] Creating API client for https://172.31.0.1:443
I0928 05:21:50.505692 6 main.go:262] Running in Kubernetes cluster version v1.16 (v1.16.10) - git (clean) commit f3add640dbcd4f3c33a7749f38baaac0b3fe810d - platform linux/amd64
I0928 05:21:50.512138 6 main.go:85] Validated kube-system/nginx-ingress-ingress-nginx-defaultbackend as the default backend.
F0928 05:21:50.517958 6 main.go:91] No service with name kube-system found in namespace nginx-ingress-ingress-nginx-controller: services "nginx-ingress-ingress-nginx-controller" not found
我可以确认,在我当前的helm版本(1.33.1(中,没有为Nginx控制器运行任何服务。我不确定这个服务是否是NodePort配置版本的重要方面,或者我在这里缺少了一些东西。
在DaemonSet 的当前配置中,服务设置为false
service:
enabled: false
我发现k8s 1.16中有一些问题,不确定这是否也与此有关。此外,我可以确认默认后端是成功注册的,因为我发现的一些问题也与此有关,这不可能是原因。
真的很感激你的善意和有益的想法在这里。谢谢
最后,我能够弄清楚它并完美地工作。这是由于图表版本从0.32更改为0.33,它正在检查是否定义了发布服务标志。
--set controller.publishService.enabled=false
应明确设置上述参数以避免出现这种情况。
相关PR:5553
工作指令:
helm install nginx-new ingress-nginx/ingress-nginx --version 3.3.0 --set controller.service.enabled=false --set controller.kind=DaemonSet --set controller.publishService.enabled=false