在minikube上修补nginx控制器部署会导致回滚到以前的配置

问题描述 投票:0回答:1

我正在尝试修补跟随minikube vm的nginx入口控制器。

使用此命令修补成功:

$ kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--profiling"}]'

#-> deployment.extensions/nginx-ingress-controller patched

修补后,先前的状态会自动回滚。如果我在部署后检查,我可以看到配置保持不变(如下所示)

$ kubectl describe deployment/nginx-ingress-controller --namespace kube-system
#--- snip
    Args:
      /nginx-ingress-controller
      --default-backend-service=$(POD_NAMESPACE)/default-http-backend
      --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
      --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
      --udp-services-configmap=$(POD_NAMESPACE)/udp-services
      --annotations-prefix=nginx.ingress.kubernetes.io
      --report-node-internal-ip-address
      --profiling

#---

回滚后,配置重置:

$ kubectl describe deployment/nginx-ingress-controller --namespace kube-system
#--- snip
    Args:
      /nginx-ingress-controller
      --default-backend-service=$(POD_NAMESPACE)/default-http-backend
      --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
      --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
      --udp-services-configmap=$(POD_NAMESPACE)/udp-services
      --annotations-prefix=nginx.ingress.kubernetes.io
      --report-node-internal-ip-address

#---

我在日志中看不到任何错误,这应该触发回滚。在回滚之前我唯一能看到的是部署由于配置更改而触发了pod上的关闭。

kubernetes minikube nginx-ingress
1个回答
1
投票

由于minikube仅运行1个节点,并且使用hostPort进行入口,因此滚动更新将不适用于入口部署。

修补入口以使用重新创建后,修补入口配置按预期工作。

用于将入口控制器设置为“重新创建”的命令:

kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "replace", "path": "/spec/strategy/rollingUpdate", "value": null }]'

在nginx-ingress-controller上设置调试输出日志记录的命令:

kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-v=5"}]'

入口控制器现在具有调试日志输出,并设置为在配置或映像更改时重新创建。

© www.soinside.com 2019 - 2024. All rights reserved.