一 背景说明
腾讯云容器服务TKE,支持用户部署nginx-ingress控制器,来同步ingress 路由规则,实现7层流量负载均衡。
Nginx-ingress实例配套的控制器,其名称为***-nginx-controller,以deployment形式部署在kube-system 空间下。
当用户手动删除该deployment,随着平台API-Server滚动更新或者nginx-controller-operator pod重启,系统内部会再次对账,重新下发这个deployment形式部署的控制器。新下发的控制器可能影响现有的ingress路由、消耗集群资源,对业务造成影响。
如果业务侧不再需要该nginx-ingress实例,这里建议用户侧及时删除。
二 操作参考
2.1 登录集群
(1)您可以选择,控制台直接登陆集群worker node(CVM机器);
(2)也可以使用SSH,直连worker node(CVM机器)——需要机器有外网IP并放通安全组;
备注:这里请确保有集群管理员权限,来进行kubectl 操作。
2.2 获取nginx-ingress实例
执行命令 kubectl get nginxingresses,可以获取集群内部所有的nginx-ingress 实例对象。举例说明:
代码语言:javascript复制$ kubectl get nginxingresses
NAME AGE
nginx-001 318d
nginx-ingress-002 120d
2.3 备份nginx-ingress实例信息
考虑到后续的删除操作,这里建议是先备份下nginxingress 实例yaml,以防万一:
代码语言:javascript复制$ kubectl get nginxingress -o yaml > ngingress.yaml.bak
备注:这里生成的bak 文件,包含所有nginxingress实例的yaml 信息。
2.4 删除残留实例
确认残留实例:如果nginxingress 对应的 控制器deployment 不再存在,那么该实例即为残留实例。
如果后续不再需要该实例,建议用户侧执行以下命令予以删除(敏感操作,业务侧需二次确认清楚):
代码语言:javascript复制$ kubectl delete nginxingress {残留的nginx-ingress实例名称}
操作完成,正常情况下,集群命令行会返回 *** 被删除的提示。举例说明,假设残留实例为nginx-ingress-002,执行命令如下:
代码语言:javascript复制$ kubectl delete nginxingress nginx-ingress-002
nginxingress.cloud.tencent.com "nginx-ingress-002" deleted
2.5 验证效果
再次查看nginxingress 实例,残留实例nginx-ingress-002 不可见,已经被删除:
代码语言:javascript复制$ kubectl get nginxingress
NAME AGE
nginx-001 323d
操作结束。