当前位置: 首页 > news >正文

网络插件 Cilium 更换 Calico

网络插件 Cilium 更换 Calico

集群使用 submariner ,通过网络检测发现 Cilium 插件可能兼容性不太好

subctl diagnose all

image-20240913142601191

Cilium 彻底卸载

helm uninstall cilium -n kube-system

image-20240913145058171

# 检查集群中的所有 CNI 插件(集群的每个节点都需要删除)
sudo ls /etc/cni/net.d/# 删除
sudo rm /etc/cni/net.d/05-cilium.conflist
sudo rm /etc/cni/net.d/10-flannel.conflist.cilium_bak

image-20240913145209604

# 查询和重置网络接口
ifconfig
sudo reboot

image-20240912184411303

image-20240913145447148
否则后续可能会出现这种错误
image-20240911201223416

Calico安装

calico官网地址:https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart

安装Tigera Calico操作符和自定义资源定义:

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/tigera-operator.yaml

如果报错连接不上的话将文件手动下载下来再执行

wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml
或者
curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yamlkubectl create -f tigera-operator.yaml 

下载下来后不能用 kubectl apply -f 来执行,会报错

The CustomResourceDefinition “installations.operator.tigera.io” is invalid: metadata.annotations: Too long: must have at most 262144 bytes

意思是 annotation 长度过长了,原因是 apply 和 create 的处理不同
改配置文件中这个选项的长度就不改了,不用 apply 使用 create

这里没有报错就没有问题

但运行完之后要查看一下 tigera-operator 运行是否正常,如果状态为Running 则继续执行下面的步骤

这里可能会出现 容器创建失败 的情况,查看日志一般是因为镜像拉取失败,查看配置文件关于镜像的部分,这里需要单独拉取镜像

第二步将配置文件下载下来,因为要改内容:

# 下载客户端资源文件
curl -LO https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/custom-resources.yaml

这个文件中的 192.168.0.0init 时指定的 --pod-network-cidr

image-20240913150758915

# 或者修改pod的网段地址
sed -i 's/cidr: 192.168.0.0/cidr: 10.244.0.0/16' custom-resources.yaml

最后根据这个文件创建资源,执行下面这行命令:

kubectl create -f custom-resources.yaml

这里如果你的集群无法拉取国外镜像,可以尝试配置镜像加速器

sed -i 's#config_path = ""#config_path = "/etc/containerd/certs.d"#' /etc/containerd/config.tomlmkdir /etc/containerd/certs.d/docker.io/ -p# 这里的加速器地址可以选择阿里云的镜像加速地址
cat >/etc/containerd/certs.d/docker.io/hosts.toml <<EOF
[host."https://dbxvt5s3.mirror.aliyuncs.com",host."https://registry.docker-cn.com"]
capabilities = ["pull"]
EOF#重启containerd
systemctl restart containerd

​ 如果,配置了镜像加速器依然无法拉取,这时就需要比较繁琐复杂的过程了(因为我没有找到国内的可以镜像源地址,所以选择在本地拉取dockerhub 镜像传到个人镜像仓库再进行拉取,当然也可以打包直接传到主机)

​ 需要拉取的镜像如下:

docker.io/calico/typha:v3.28.0

docker.io/calico/apiserver:v3.28.0

docker.io/calico/cni:v3.28.0

docker.io/calico/csi:v3.28.0

docker.io/calico/kube-controllers:v3.28.0

docker.io/calico/node-driver-registrar:v3.28.0

docker.io/calico/node:v3.28.0

docker.io/calico/pod2daemon-flexvol:v3.28.0

需要注意的是,如果你采用这种方式,不要只在主节点拉取镜像,部分镜像也需要在工作节点拉取

# 本地拉取镜像
docker pull docker.io/calico/typha:v3.28.0# 上传阿里云私人仓库
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/leung_qw/typha:[镜像版本号]docker push registry.cn-hangzhou.aliyuncs.com/leung_qw/typha:[镜像版本号]# 拉取镜像
sudo ctr -n k8s.io image pull registry.cn-hangzhou.aliyuncs.com/leung_qw/typha:v3.28.0sudo ctr -n k8s.io image tag registry.cn-hangzhou.aliyuncs.com/leung_qw/typha:v3.28.0 docker.io/calico/typha:v3.28.0# 查看镜像
sudo ctr -n k8s.io image list | grep calico

image-20240913152316106

上传到私人镜像仓库,拉取后更改 tag

image-20240913152434733

image-20240913153017536

image-20240913153124554

主机拉取镜像的时候,一定要带-n k8s.io 的命名空间,否则会出现,无法检测到本机镜像的情况

image-20240913100256462

image-20240913153411524

其他镜像如法炮制

​ 如果,你在一台主机上已经有了上面的镜像,也可以将镜像打包,传给其他节点导入

# 镜像打包
sudo ctr -n k8s.io images export <path-to-tar-file> <image-name>:<tag>
# 例如
sudo ctr -n k8s.io images export typha.tar docker.io/calico/typha:v3.28.0# 传递文件
scp file 远程用户名@远程服务器IP:/path/to/destination
# 例如
scp typha.tar public@172.100.0.104:~/# 导入镜像
sudo ctr -n k8s.io images import typha.tar

使用 cilium 插件时的 submariner 以及 更换 calico 后

subctl diagnose all

image-20240913142601191

image-20240913142435860

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 产品经理如何转型为AI产品经理,如何理解AI产品工程化
  • [产品管理-2]:产品经理的职责、在企业中的位置与定位
  • 加入图书页面以及和图片相关的viewmodel代码
  • CSS学习18--伸缩布局
  • io_uring异步IO
  • TDengine 与飞腾腾锐 D2000 完成兼容互认证,推动国产软硬件深度融合
  • Azkaban、oozie、airflow、dolphinschduler 对比分析
  • Jupyter Notebook远程登录配置
  • 前端用html写excel文件直接打开
  • 二维码扫码模组国产麒麟系统C语言SDK二次开发
  • 【PostgreSQL数据库表膨胀的一些原因】
  • 系统架构师考试学习笔记第五篇——架构设计补充知识(26)论文写作
  • 响应式网站真的就只是多了一个媒体查询吗?
  • 数仓建设:为什么我们的数据容易被业务方质疑?
  • 关于codesys循环结束,循环内累加值仍不停止累加问题
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 11111111
  • ECS应用管理最佳实践
  • gf框架之分页模块(五) - 自定义分页
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java-详解HashMap
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • python docx文档转html页面
  • React as a UI Runtime(五、列表)
  • select2 取值 遍历 设置默认值
  • storm drpc实例
  • windows下使用nginx调试简介
  • 翻译--Thinking in React
  • 力扣(LeetCode)56
  • 山寨一个 Promise
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • AI算硅基生命吗,为什么?
  • gunicorn工作原理
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $L^p$ 调和函数恒为零
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (翻译)terry crowley: 写给程序员
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (论文阅读40-45)图像描述1
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .cn根服务器被攻击之后
  • .Net 8.0 新的变化
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET 常见的偏门问题
  • .net 托管代码与非托管代码
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET与 java通用的3DES加密解密方法