注意:本操作涉及集群\容器重启,会导致服务中断,且由于环境和手工操作等差异,存在集群故障风险。在操作前请做好苍穹业务服务备份和沟通好异常情况下的重装恢复方案。对生产环境的操作请谨慎进行。
修改标准k8s集群子网网段
适用于kubeadm工具安装的集群,包括安装器、多数安装脚本等
l 修改容器网段(cluster_cidr)
1. 修改kube-controller
```
vi /etc/kubernetes/manifests/kube-controller-manager.yaml
- --cluster-cidr=172.28.0.0/16
```
2. 修改kube-proxy
```
kubectl edit cm kube-proxy -nkube-system
clusterCIDR: 172.28.0.0/16
```
3. 修改calico
```
kubectl edit ippool
cidr: 172.28.0.0/16
```
4. 依次重置节点
```
#对全部节点,在master依次执行
kubectl delete node [将被删除的节点名]
#然后在被删除节点上执行以下命令,将节点重新加入集群
systemctl restart kubelet
```
5. 重启集群全部容器
```
kubectl delete po -A --all
```
6. 查看结果
```
kubectl get po -A -owide 查看pod是否正常running,且IP是否在被分配的网段
kubectl get node -oyaml 查看podCIDR是否是被分配的网段
```
l 修改服务网段(service_cluster_cidr)
暂无合适方案,建议备份苍穹服务并重装集群
修改k8e集群子网网段
适用于k8e安装包安装的集群
l 修改容器网段(cluster_cidr)
1. 针对master和node分别修改安装时使用的build-master.sh、add-master.sh和add-node.sh,修改或增加启动参数 --cluster-cidr 172.28.0.0/16,例如:
```
vi build-master.sh
API_SERVER_IP=172.20.187.105 K8E_TOKEN=gpaas2023 INSTALL_K8E_SKIP_DOWNLOAD=true INSTALL_K8E_EXEC="server --cluster-init --write-kubeconfig-mode 644 --docker --data-dir /kingdee/data --cluster-cidr 172.28.0.0/16" sh install.sh
```
2. 重新部署节点
```
#依次对每个节点执行
sh build-master.sh #或sh add-master.sh 或 sh add-node.sh
```
3. 修改calico
```
kubectl edit ippool
cidr: 172.28.0.0/16
```
4. 重启并查看结果
```
kubectl delete po -A --all
kubectl get po -A -owide 查看pod是否正常running,且IP是否在被分配的网段
kubectl get node -oyaml 查看podCIDR是否是被分配的网段
l 修改服务网段(service_cluster_cidr)
暂无合适方案,建议备份苍穹服务并重装集群
推荐阅读