Kubernetes 修改Pod网络

Kubernetes 修改Pod网络

修改Pod 网络

备份集群资源

kubectl get deployments --all-namespaces -o yaml > all-deployments.yaml
kubectl get configmap --all-namespaces -o yaml > all-configmaps.yaml
kubectl get secret --all-namespaces -o yaml > all-secrets.yaml
kubectl get pvc --all-namespaces -o yaml > all-pvcs.yaml
kubectl get ns -o yaml > all-namespaces.yaml

修改flannel 网络

cat /run/flannel/subnet.env
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
改为
cat /run/flannel/subnet.env 
FLANNEL_NETWORK=172.254.0.0/16
FLANNEL_SUBNET=172.254.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
修改 k8s 集群中 flannel 的 configMap 和 kube-proxy configMap
kubectl -n kube-system edit configMap kube-flannel-cfg
  net-conf.json: |
    {
      "Network": "172.254.0.0/16",
      "Backend": {
        "Type": "vxlan",
        "Directrouting": true
      }
    }
kubectl -n kube-system edit configmaps kube-proxy
apiVersion: v1
data:
  config.conf: |-
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    bindAddress: 0.0.0.0
    bindAddressHardFail: false
    clientConnection:
      acceptContentTypes: ""
      burst: 0
      contentType: ""
      kubeconfig: /var/lib/kube-proxy/kubeconfig.conf
      qps: 0
    clusterCIDR: 172.254.0.0/16   ## 修改这里的网络

删除重建flannel 和kube-proxy 的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

修改master 节点

vim /etc/kubernetes/manifests/kube-controller-manager.yaml
- --cluster-cidr=172.254.0.0/16
修改节点网络
kubectl  get node 
kubectl  get node   master1 -o yaml  > master1.yaml
vim master1.yaml 
spec:
  podCIDR: 172.254.0.0/24
  podCIDRs:
  - 172.254.0.0/24

kubectl delete nodes master1
kubectl  apply -f master1.yaml

systemctl  restart kubelet 

##需要将所有的pod 删除重建一下 
for ns in $(kubectl get ns -o jsonpath='{.items[*].metadata.name}'); do
  kubectl delete pod --all -n "$ns"
done
查看Pod 的IP 和机器的路由

image-20250414124427701

image-20250414124445371