NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

  • Docker

  • 云原生

  • Kubernetes

    • kubectl - 常用命令
    • 概念
    • 安装
    • 操作
    • 负载均衡
    • Service
    • Ingress(网关)
    • 存储抽象
    • 网络
    • 笔记

      • 切换CIDR
        • Calico
        • flannel
      • cert-manager
    • helm

    • 示例

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • Kubernetes
  • 笔记
NipGeihou
2023-10-13
目录

切换CIDR

笔记

最好还是在部署的时候设定好 ip 段,修改 pod 的 ip 段容易,但修改 Service 的很麻烦。

使用 kubesphere 安装的集群,k8s 中的 CIDR 默认为 10.233.64.0/18 ,不利于云组网中不通 k8s 集群的互联互通,因此需将另一个集群的 CIDR 修改成其他,如 10.233.128.0/18

# 确认当前的CNI插件
kubectl get daemonset -n kube-system

# Calico

# 查看当前的ip池
calicoctl get ippool -o wide
# 创建一个新的ip池配置
cat > ippool2.yaml <<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: default-ipv4-ippool2
spec:
  blockSize: 24
  cidr: 10.233.128.0/18
  ipipMode: Always
  natOutgoing: true
EOF
# 创建配置
calicoctl create -f ippool2.yaml

# 查看当前的ip池,是否生效
calicoctl get ippool -o wide
# 导出当前配置
calicoctl get ippool -o yaml > pools.yaml

编辑导出的 pools.yaml ,在旧的 ip 池属性配置中添加 disabled: true 禁用

image-20231013223052432

# 应用配置
calicoctl apply -f pools.yaml

# 再次查看,此时旧的ip池已被禁用
calicoctl get ippool -o wide

# 此处新的pod将会分配的新的ip池,但已分配ip的pod不受影响

# 删除所有pod;这是一个危险操作,只适用于集群初始化阶段,等待几分钟重建。
kubectl delete pod -A --all

# 新建的pod将从新的ip池分配

# 删除旧的ip池
calicoctl delete pool default-ipv4-ippool

参考

  • Migrate from one IP pool to another | Calico Documentation (opens new window)
  • Configure IP pools | Calico Documentation (opens new window)
  • 更换 service 和 pod 网段 (opens new window)

# flannel

参考:kubernetes 修改 pod cidr 以及 service cidr_podcidr_来自万古的忧伤的博客 - CSDN 博客 (opens new window)

上次更新: 2024/03/11, 22:37:05
网络
cert-manager

← 网络 cert-manager→

最近更新
01
磁盘管理与文件系统
05-02
02
网络测试 - iperf3
05-02
03
Docker Swarm
04-18
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式