删除VPC网络集群的容器网段
在使用VPC集群时,用户可能在最初规划容器子网时未能充分考虑未来需求,导致容器网段规划不合理。或者,在新增容器子网后发现配置有误,需要进行修改或删除。本文将指导您如何删除容器网段,实现容器网络配置的灵活调整。
该功能当前正陆续上线中,仅部分局点支持。
约束与限制
VPC集群删除容器网段功能约束限制如下:
- 该功能对集群版本要求:
- v1.28.15-r60及以上版本
- v1.29.15-r20及以上版本
- v1.30.14-r20及以上版本
- v1.31.10-r20及以上版本
- v1.32.6-r20及以上版本
- v1.33.5-r10及以上版本
- 容器网段删除后,集群中的节点可能还在使用该网段,因此并不会清理“节点默认安全组”中与该容器网段对应的安全组规则,需要手动清理。清理步骤请参见清理安全组规则。
- 容器网段删除后,集群中的节点可能已经从该容器网段中预分配了Pod IP地址(详细原理请参见Pod IP地址管理),建议您执行节点重置,或将相关业务平滑迁移至其它节点后,再对原节点进行删除。
您可以通过API接口修改VPC集群的容器网段,详情请参见更新指定的集群。关于如何调用接口,请参见构造请求。
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}
|
参数 |
描述 |
|---|---|
|
project_id |
项目ID,获取方式请参见如何获取接口URI中参数。 |
|
cluster_id |
集群ID,获取方式请参见如何获取接口URI中参数。 |
更新集群容器网段的请求体示例如下:
{"spec":{"containerNetwork":{"containercidrs":["10.0.0.0/16"]}}}
其中containercidrs支持配置多个容器网段,且按照优先级进行排序。
优先级靠前的网段将优先被用于容器IP的分配,等前一个网段没有IP可以分配之后才会继续从优先级靠后的网段中分配。
常见问题
- 查询容器网段下是否还有节点残留
比如您已经删除了172.16.0.0/16的容器网段,那么可以通过kubectl命令查询nnc对象是否还有172.16.0.0/16对应的资源,执行如下命令:
kubectl get nnc -o yaml | grep -A5 "yangtse.io/vpc-router-subnets" | grep "172.16.0.0/16" | wc -l
如果回显的结果为0,则说明该容器网段,已没有节点使用。
- 清理安全组规则
在清理安全组规则之前一定要确保该容器网段已经没有任何节点,否则会造成网络通信异常。如何查询是否有节点残留请参考查询容器网段下是否还有节点残留。
- 进入VPC控制台。
- 在左侧导航栏中单击“安全组”,找到集群节点使用的安全组,默认命名形式为{集群名称}-cce-node-{五位hash值}。
- 单击安全组名称,找到已删除网段对应的安全组规则,单击“删除”即可。
