一、 提示
需要重啟服務(wù)器
操作之前備份 k8s 中所有資源的 yaml 文件
如下是備份腳本,僅供參考
# 創(chuàng)建備份目錄
test -d $3 || mkdir $3
# $1 命名空間
# $2 資源名稱: sts deploy configMap svc 等
# $3 資源備份存放的目錄名稱
for app in `kubectl -n $1 get $2 |awk '/spms/ {print $1}'`
do
kubectl -n $1 get $2 $app -o yaml > $3/$app.yml
done
sed -i '/resourceVersion/ d' $3/*
sed -i '/uid/ d' $3/*
sed -i '/last-applied-configuration:/,+1 d' $3/*
sed -i '/creationTimestamp/ d' $3/*
sed -i '/generation/ d' $3/*
sed -ri '/^status:/,$ d' $3/*
if [ "$2" == "service" ];then
sed -i '/clusterIP:/ d' $3/*
sed -i '/clusterIPs:/,+1 d' $3/*
fi
二、修改設(shè)置
1 修改 flannel 環(huán)境配置文件
集群中每個(gè)節(jié)點(diǎn)都要修改
vi /run/flannel/subnet.env
FLANNEL_NETWORK=10.244.0.0/16 # 修改
FLANNEL_SUBNET=10.244.2.1/24 # 修改
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
2 修改 k8s 集群中 flannel 的 configMap 和 kube-proxy configMap
flannel
kubectl -n kube-system edit configMap kube-flannel-cfg
修改如下內(nèi)容
net-conf.json: |
{
"Network": "10.244.0.0/16", # 這里修改成你想要的網(wǎng)絡(luò)
"Backend": {
"Type": "vxlan"
}
}
kube-proxy
kubectl -n kube-system edit configmaps kube-proxy
3 刪除并重建 flannel 和 kube-proxy 的 pod
flannel 和 kube-proxy 是 k8s 中的守護(hù)進(jìn)程,刪除 pod 會(huì)自動(dòng)創(chuàng)建,因此這里只需要?jiǎng)h除現(xiàn)有的 pod 即可。
for pd in `kubectl -n kube-system get pod |grep -P 'flannel-ds|kube-proxy'|awk '{print $1}'`
do
kubectl -n kube-system delete po $pd
done
4 修改集群 contrlor 資源文件
在所有 master 節(jié)點(diǎn)修改
修改文件 /etc/kubernetes/manifests/kube-controller-manager.yaml
spec:
containers:
- command:
...
# 修改這個(gè)
- --cluster-cidr=10.244.0.0/16
...
修改完成后,集群會(huì)自動(dòng)更新此 Pod
5 備份 集群所有節(jié)點(diǎn)的 yaml 文件,并修改里面的 podCIDR 和 podCIDRs
備份
kubectl get nodes node_name -o yaml > node_name.yml
修改這里
...
spec:
podCIDR: 10.244.2.0/24
podCIDRs:
- 10.244.2.0/24
...
刪除并重新加入節(jié)點(diǎn)
kubectl delete nodes node_name
kubectl apply -f node_name.yml
6 刪除接口
ifconfig cni0 down # 關(guān)閉接口
ip link delete cni0 # 刪除配置
ifconfig flannel.1 down
ip link delete flannel.1
7 重啟服務(wù)
systemctl restart docker kubelet
8 驗(yàn)證
檢查是否出現(xiàn)了 新的 flannel.1 和 cni0 接口
ip -4 a
如果沒有出現(xiàn),重啟服務(wù)器
驗(yàn)證 iptables 規(guī)則, 在 FORWARD 連中應(yīng)該出現(xiàn)新的網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則
iptables -nL
驗(yàn)證 nat 表的 POSTROUTING 鏈和 KUBE-SERVICES 鏈
iptables -nL -t nat --line-number |grep POSTROUTING -A 10
如果還存在原來 pod 子網(wǎng)的條目用如下命令刪除文章來源:http://www.zghlxwxcb.cn/news/detail-682220.html
iptables -t nat -D POSTROUTING 5
5 是 規(guī)則條目號(hào),如下圖中所示
文章來源地址http://www.zghlxwxcb.cn/news/detail-682220.html
到了這里,關(guān)于Kubernetes(七)修改 pod 網(wǎng)絡(luò)(flannel 插件)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!