Nginx-controller deployment被删除隐患参考

2023-06-19 15:34:06 浏览数 (1)

一 背景说明

腾讯云容器服务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

操作结束。

0 人点赞