Kubernetes(七)修改 pod 网络(flannel 插件)

一、 提示

需要重启服务器
操作之前备份 k8s 中所有资源的 yaml 文件
如下是备份脚本,仅供参考

# 创建备份目录
test -d $3 || mkdir $3
# $1 命名空间
# $2 资源名称: sts  deploy   configMap  svc 等
# $3 资源备份存放的目录名称for app in  `kubectl -n $1 get $2 |awk '/spms/ {print $1}'`
dokubectl -n $1 get $2 $app -o yaml > $3/$app.yml
donesed -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" ];thensed -i '/clusterIP:/ d' $3/*sed -i '/clusterIPs:/,+1 d' $3/*
fi

二、修改设置

1 修改 flannel 环境配置文件

集群中每个节点都要修改

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

修改如下内容

  net-conf.json: |{"Network": "10.244.0.0/16",  # 这里修改成你想要的网络"Backend": {"Type": "vxlan"}}

kube-proxy

kubectl -n kube-system edit configmaps kube-proxy

在这里插入图片描述

3 删除并重建 flannel 和 kube-proxy 的 pod

flannel 和 kube-proxy 是 k8s 中的守护进程,删除 pod 会自动创建,因此这里只需要删除现有的 pod 即可。

for pd in `kubectl -n kube-system get pod  |grep -P 'flannel-ds|kube-proxy'|awk '{print $1}'`
dokubectl -n kube-system delete po $pd
done

4 修改集群 contrlor 资源文件

在所有 master 节点修改

修改文件 /etc/kubernetes/manifests/kube-controller-manager.yaml

spec:containers:- command:...# 修改这个- --cluster-cidr=10.244.0.0/16...

修改完成后,集群会自动更新此 Pod

5 备份 集群所有节点的 yaml 文件,并修改里面的 podCIDR 和 podCIDRs

备份

 kubectl get nodes node_name -o yaml > node_name.yml

修改这里

...
spec:podCIDR: 10.244.2.0/24podCIDRs:- 10.244.2.0/24
...

删除并重新加入节点

kubectl delete nodes  node_name
kubectl apply -f node_name.yml

6 删除接口

ifconfig cni0 down    # 关闭接口
ip link delete cni0     # 删除配置ifconfig flannel.1 down  
ip link delete flannel.1

7 重启服务

systemctl restart docker kubelet

8 验证

检查是否出现了 新的 flannel.1 和 cni0 接口

ip -4 a

如果没有出现,重启服务器

验证 iptables 规则, 在 FORWARD 连中应该出现新的网络的转发规则

iptables -nL

在这里插入图片描述

验证 nat 表的 POSTROUTING 链和 KUBE-SERVICES 链

iptables -nL -t nat --line-number |grep POSTROUTING -A 10

在这里插入图片描述
如果还存在原来 pod 子网的条目用如下命令删除

iptables -t nat  -D POSTROUTING 5

5 是 规则条目号,如下图中所示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/89799.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 是怎么设计来保证new对象的线程安全

1、采用 CAS 分配重试的方式来保证更新操作的原子性 2、每个线程在 Java 堆中预先分配一小块内存,也就是本地线程分配缓冲(Thread Local AllocationBuffer,TLAB),要分配内存的线程,先在本地缓冲区中分配&a…

java八股文面试[多线程]——什么是线程安全

对线程安全的理解 总结:一个进程内的多个线程同时访问堆内存。 知识来源: 【并发与线程】对线程安全的理解_哔哩哔哩_bilibili

Linux学习之Ubuntu 20使用systemd管理OpenResty服务

sudo cat /etc/issue可以看到操作系统的版本是Ubuntu 20.04.4 LTS,sudo lsb_release -r可以看到版本是20.04,sudo uname -r可以看到内核版本是5.5.19,sudo make -v可以看到版本是GNU Make 4.2.1。 需要先参考我的博客《Linux学习之Ubuntu 2…

Idea Maven 构建,运行Java程序,二次开发Jmeter

Idea Maven 构建 1. maven下载2. Idea 配置3. 配置Maven镜像4. 在Maven项目pom.xml中添加依赖5. 创建jar包,更新pom,执行代码 1. maven下载 【官网】https://maven.apache.org/download.cgi 【其他版本】https://dlcdn.apache.org/maven/maven-3/ 2. …

嵌入式学习之进程

今天主要学习了进程,对fork的相关知识有了更加清楚的理解。 进程退出 正常调用: Main函数调用return ; 进程调用exit(),属于标准的C库;进程调用_exit()或者_Exit(),属于系统调用 补充: 1.进程最后一个…

SQL server数据库-定制查询-指定查询列/行、结果排序和Like模糊查询

本篇讲述进阶查询方法,如有语句不明确,可跳转本文专栏学习基础语法 1、指定列查询 特点 只会显示你输入的列的数据,会根据你输入的顺序进行显示,可以自定义查询显示时的列名 (1)只会显示你输入的列的数…

朝夕光年游戏自动化测试实践

朝夕光年是面向全球用户与开发者的游戏研发与发行业务品牌,致力于服务全球玩家,帮助玩家在令人惊叹的虚拟世界中一起玩耍与创造。 在游戏的研发过程中,游戏自动化一直是开展难度较大的工程,具体包括机房机架、设备调度、软件框架、…

基于Java+SpringBoot+Vue前后端分离教师工作量管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

.NET Core 实现日志打印输出在控制台应用程序中

在本文中,我们将探讨如何在 .NET Core 应用程序中将日志消息输出到控制台,从而更好地了解应用程序的运行状况。 .NET Core 实现日志打印输出在控制台应用程序中 在 .NET Core 中,日志输出打印是使用 Microsoft.Extensions.Logging 命名空间…

嬴图Ultipa | 一文了解关于图数据库的一点儿干货

本篇包括以下内容点: 数据库主要技术分类 图是什么? 图的模式 图数据库 VS.关系型数据库 图数据库VS.其他NOSQL的对比 并非所有的图数据库都一样! 根据Gartner预测,“到2025年,使用图技术进行数据和分析创新…

利用敏捷开发工具实现敏捷项目管理的实践经验分享

Scrum中非常强调公开、透明、直接有效的沟通,这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求,故事,任务之间的流转状态,可以使团队成员更加快速适应敏捷开发流程。 …

客服系统哪个好用?

在当今竞争激烈的商业环境中,良好的客户服务是企业成功的关键因素之一。通过提供优质的客户服务,企业可以吸引、留住、回馈顾客,增加口碑宣传,提高产品或服务质量,同时还可以减少客户投诉率,从而为企业带来…