如何解决k8s CNI 子网不够问题

news/2024/9/30 14:18:44

问题现象

CNI 状态 CrashLookBackOff

问题原因

默认环境下 k8s 每个 node 的CNI subnet 子网是一个 24位掩码的子网。当集群总结点数超过 255 个将导致 CNI 子网不足。我们有两种方式结局

解决方案

init 集群指定 kube-controller-manager 参数

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
localAPIEndpoint:advertiseAddress: 192.168.10.11bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockimagePullPolicy: IfNotPresenttaints: null
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
apiServer:certSANs:- master1- 192.168.10.11timeoutForControlPlane: 4m0s
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: 192.168.10.10:6443
controllerManager: {}
dns: {}
etcd:local:dataDir: /var/lib/etcd
controllerManager:extraArgs: # 这里指定每个节点使用 26 位掩码"node-cidr-mask-size": "26"
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: 1.23.0
networking:podSubnet: 172.244.0.0/16serviceSubnet: 172.66.0.0/12nodeCidrMaskSize: 26
scheduler: {}
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: cgroupfs
~                         

针对已建成集群,需要解决这个问题

修改 /etc/kubernetes/manifests/kube-controller-manager.yamlspec.containers.[0].command 中的参数

....
spec:containers:- command:- kube-controller-manager- --allocate-node-cidrs=true- --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf- --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf- --bind-address=127.0.0.1- --client-ca-file=/etc/kubernetes/pki/ca.crt- --cluster-cidr=172.244.0.0/16- --cluster-name=kubernetes- --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt- --cluster-signing-key-file=/etc/kubernetes/pki/ca.key- --controllers=*,bootstrapsigner,tokencleaner- --kubeconfig=/etc/kubernetes/controller-manager.conf- --leader-elect=true- --node-cidr-mask-size=26 # 添加启动参数- --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt- --root-ca-file=/etc/kubernetes/pki/ca.crt- --service-account-private-key-file=/etc/kubernetes/pki/sa.key- --service-cluster-ip-range=172.66.0.0/12- --use-service-account-credentials=trueimage: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.0
...

重启 master 节点 kube-controller-manager

对于已经加入集群节点,只需要重新加入集群节点掩码就会变成 26 位

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

php docker image

Quick referenceMaintained by: the Docker Community⁠Where to get help the Docker Community Slack⁠, Server Fault⁠, Unix & Linux⁠, or Stack Overflow⁠Supported tags and respective Dockerfile links Note: the description for this image is longer than th…

为什么需要 AI 编译器

为什么需要 AI 编译器 随着硬件技术的不断进步,进入了一个新的计算加速时代,这个时代的硬件平台变得越来越复杂和多层次。现代计算加速平台采用了多层架构,包括标量、向量、多核、多包、多机架等不同层次的并行处理能力。这种设计不仅提高了性能,也增加了硬件设计的复杂性。…

apisix dashboard 基本操作

apisix dashboard 基本操作安装1、下载rpm包wget https://github.com/apache/apisix-dashboard/releases/download/v3.0.1/apisix-dashboard-3.0.1-0.el7.x86_64.rpm2、安装apisix-dashboard-3.0.1-0.el7.x86_64.rpm3、启动systemctl start apisix-dashboard 修改WEB登陆账户1…

怎么搭建Plane

Github地址 https://github.com/makeplane/plane环境查看 系统环境# cat /etc/redhat-release CentOS Stream release 9 # uname -a Linux CentOSStream9Zabbix203 5.14.0-391.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 28 20:35:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linu…

实时语音交互中文基准首期测评出炉;美取消 SB-1047 法案,大模型厂商大难不死丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

五,MyBatis-Plus 当中的 “ActiveRecord模式”和“SimpleQuery工具类”(详细实操)

五,MyBatis-Plus 当中的 “ActiveRecord模式”和“SimpleQuery工具类”(详细实操) @目录五,MyBatis-Plus 当中的 “ActiveRecord模式”和“SimpleQuery工具类”(详细实操)1. ActiveRecord 模式2. ActiveRecord介绍2.1 ActiveRecord实现3. SimpleQuery 工具类3.1 SimpleQu…

快速入门Java中的HTTP请求

1. 使用java.net.HttpURLConnection Java标准库中的HttpURLConnection是最基本的方式,用于发送HTTP请求。 示例:发送GET请求发送POST请求2. 使用Apache HttpClient Apache HttpClient是一个强大的HTTP客户端库,支持高级HTTP通信功能。 添加依赖 如果你使用Maven,添加以下依…

WLAN无线网卡驱动安装教程

火影官方驱动下载地址下载WLAN无线网卡驱动下载完成后点击全部解压缩解压完成后有一个安装说明,查看自己的网卡是什么品牌的,不知道就一个一个的全部都安装一遍 安装过程不用管显示什么,结束了就进行下一个就行全部运行安装过一遍后重启查看是否有WiFi开关