k8s pod网段冲突后修改

发布于:2024-08-15 ⋅ 阅读:(126) ⋅ 点赞:(0)

远程工具连接内网问题排查与解决

问题描述

公司远程工具连接内网后,发现有4台机器登录不上。经过排查,发现远程工具分配的网段与k8s节点分配的PodCIDR冲突,导致路由异常。

以下步骤在测试环境使用,生产环境请评估后自行决定是否使用以下命令

一、k8s查看Node分配网段

使用以下命令查看Node分配的网段:

kubectl describe nodes | grep 172

在这里插入图片描述

二、修改IPPool

1. 新建IPPool
calicoctl get ippool -o yaml > default-ipv4-ippool.yml
cp default-ipv4-ippool.yml new-ippool.yml
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: new-pool
spec:
  allowedUses:
  - Workload
  - Tunnel
  blockSize: 26
  cidr: 10.0.0.0/16
  ipipMode: Always
  natOutgoing: true
  nodeSelector: all()
  vxlanMode: Never
calicoctl create -f new-ippool.yml
2. 禁用默认IPPool

在旧的IP Pool的spec中增加字段:disabled: true

apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: default-ipv4-ippool
spec:
  allowedUses:
  - Workload
  - Tunnel
  blockSize: 26
  cidr: 172.20.0.0/16
  ipipMode: Always
  natOutgoing: true
  nodeSelector: all()
  vxlanMode: Never
  disabled: true
calicoctl apply -f default-ipv4-ippool.yml
3. 查看效果
calicoctl get ippool -o wide

在这里插入图片描述

4. 删除使用默认IPPool的Pod
calicoctl get wep --all-namespaces
kubectl delete -n kube-system pod coredns-65bc7b648d-8kp4z
kubectl delete -n kube-system pod metrics-server-56774d6954-mlq8x

三、修改Node中PodCIDR

1. 导出节点YAML文件
kubectl get node master -o yaml > master.yaml

修改为172.20.1.0/24到10.0.1.0/24

spec:
  podCIDR: 10.0.1.0/24
  podCIDRs:
  - 10.0.1.0/24
删除并重新创建节点
kubectl delete nodes master
kubectl create -f master.yaml
查看节点PodCIDR
kubectl describe node master | grep PodCIDR

输出应显示:

PodCIDR:                      10.0.1.0/24
PodCIDRs:                     10.0.1.0/24

注意:其他节点也需要按照上述步骤导出、修改、删除、创建节点。


网站公告

今日签到

点亮在社区的每一天
去签到