网络插件 Cilium 更换 Calico

news2024/9/21 12:39:36

网络插件 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.yaml

kubectl 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.toml

mkdir /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.0

sudo 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

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

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

相关文章

ELK在Linux服务器下使用docker快速部署(超详细)

ELK是什么&#xff1f; 首先说说什么是ELK ELK 是一个开源的日志管理和分析平台&#xff0c;由三个主要组件组成&#xff1a; Elasticsearch&#xff1a;一个分布式搜索和分析引擎&#xff0c;能够快速存储、搜索和分析大量数据。它是 ELK 堆栈的核心&#xff0c;负责数据的…

【FOC】【001】Clarke变换--- 2024.9.13

目录 前言背景知识介绍Clarke变换结束语 前言 在电机控制领域&#xff0c;想必大家都听过foc矢量控制&#xff0c;比我们耳熟能详的pid控制效果更好&#xff0c;那具体foc干了哪几件事呢&#xff1f;接下来本栏中会详细的讲解foc的原理。 该栏目部分参考于《慧驱动》 背景知识介…

gin配置swagger文档

一、基本准备工作 1、安装依赖包 go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files2、在根目录上配置swagger的路由文件 //2.初始化路由router : initialize.Routers()// 配置swaggerdocs.SwaggerInfo…

Redis系列之底层数据结构SDS

Redis系列之底层数据结构SDS 实验的环境 Redis 6.0VSCode 1.88.1 什么是SDS? SDS&#xff1a;Simple Dynamic String&#xff0c;翻译为简单动态字符串。SDS是一种用于存储二进制数据的数据结构&#xff0c;具有动态扩容的特点&#xff0c;代码位于src/sds.h和src/sds.c …

解决“找不到msvcp140.dll无法继续执行代码”问题:技术困境与解决方案

在现代计算机技术的发展中&#xff0c;软件依赖性问题日益凸显&#xff0c;其中“找不到msvcp140.dll无法继续执行代码”错误尤为常见。本文将从技术背景、问题成因、解决方案及预防措施四个方面&#xff0c;深入探讨这一技术困境&#xff0c;旨在为读者提供全面的理解和有效的…

来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法

2024 云栖大会来了&#xff01; 本届云栖大会将于 9 月 19 日至 9 月 21 日 在杭州云栖小镇召开 汇集全球最新云计算、AI 硬科技 云栖大会的主论坛将设置三个对话环节&#xff0c;大模型、自动驾驶和机器人领域的领军技术人和明星创业者将分享 AI 前沿趋势和应用进展。 20…

北京网页制作-网站策划

北京网页制作与网站策划 随着互联网的快速发展&#xff0c;网页制作和网站策划逐渐成为企业成功的重要因素。在北京这座现代化的大都市&#xff0c;各行各业都意识到网络的重要性&#xff0c;纷纷投身于网页制作与网站策划的浪潮中。本文将探讨北京网页制作的现状、常见的策划流…

基于Java web技术开发设计的学生信息管理系统

学生信息管理系统&#xff1a;Java Web技术与MySQL数据库的融合应用 包含初始化sql脚本 本毕业设计聚焦于构建一套高效、安全的学生信息管理系统&#xff0c;该系统采用先进的Java Web技术进行开发&#xff0c;并依托MySQL数据库实现数据的高效存储与管理。 背景与挑战&…

超声波清洗机的优势有哪些?四款精品超声波清洗机推荐,闭眼入

在这个快节奏的时代里&#xff0c;清洁和卫生变得尤为重要。对于那些追求精致生活的人们来说&#xff0c;家中配备一台超声波清洗机无疑是一件居家的好选择。本文将为您介绍四款广受好评的超声波清洗机&#xff0c;让您在日常清洗中也能享受到科技带来的便捷与舒适。无论是眼镜…

九、Redis 的实际使用与Redis的设计

一、多级缓存架构 在线上系统中&#xff0c;一定不会单纯的只部署一个Redis集群&#xff0c;而是使用Redis结合其他的多级缓存应用进行架构。 使用多级缓存架构的优点就是可以使不同类型的数据分布在不同的应用中&#xff0c;比如redis的热点key可以存储到nginx本地缓存、服务…

[渗透测试]-CVE-2016-4437-Shiro550漏洞复现

Shiro550漏洞爆出的时间是2016年为第4437个漏洞&#xff0c;所以它的CVE编码是2016-4437 文章目录 前言 什么是Shiro550漏洞&#xff1f; 1.Shiro550漏洞原理&#xff1a; 2.漏洞利用 3.漏洞复现&#xff1a; 前提&#xff1a;下载并打开vulhub靶场。 CVE-2016-4437-shiro550漏…

基于react native的锚点

基于react native的锚点 效果示例图示例代码 效果示例图 示例代码 /* eslint-disable react-native/no-inline-styles */ import React, { useEffect, useRef, useState } from react; import {Image,ImageBackground,ScrollView,StyleSheet,Text,TouchableOpacity,View, } fr…

怎么选到好用的运动耳机?这五款年度精选骨传导耳机非常好用!

在过去的两年里&#xff0c;骨传导耳机逐渐被大众的所熟知。可能毕竟长时间使用音量过大的传统入耳式耳机&#xff0c;多多少少会对我们的听力健康构成威胁。所以很多人就想找一款不伤耳朵的耳机。然后就了解到了骨传导耳机&#xff0c;所以就会延伸出这些问题——骨传导耳机好…

【Canvas与密铺】90年代马赛克密铺效果 1920x1080

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>20世纪90年代马赛克瓷砖效果1920x1080</title><style type&…

美创获评CNVD年度原创漏洞发现贡献单位!

9月10日&#xff0c;第21届中国网络安全年会暨网络安全协同治理分论坛在广州成功举办。会上&#xff0c;美创科技首次获评“CNVD年度原创漏洞发现贡献单位”。 美创科技依托第59号安全实验室&#xff0c;专注数据安全技术和攻防研究。凭借深厚的技术积累与优势&#xff0c;被遴…

SEAFARING靶场渗透

一.SQL注入漏洞 1.输入id1 -- 下方出现数据说明闭合成功 2.测试得出数据库有三列 3.三处都是回显点 4.联合查询爆出库名 5.查表名 ?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schematest-- 6.查字段名 ?id-1 union sele…

vscode spring boot项目编辑yaml不自动提示补全如何解决

文章目录 properties能够自动弹出提示但是YAML文件就不会自动弹出提示ctrl空格不出提示的解决办法 properties能够自动弹出提示 但是YAML文件就不会自动弹出提示 只是不会自动弹出来而已&#xff0c;按ctrl空格即可解决 ctrl空格不出提示的解决办法 如果按ctrl空格没有用 …

WGCLOUD使用指南 - 自动计算磁盘剩余空间的可使用天数

WGCLOUD是一款免费开源的运维监控软件&#xff0c;性能优秀&#xff0c;部署简单&#xff0c;轻巧使用&#xff0c;支持大部分的Linux和Windows、安卓、MacOS等平台安装部署 最近发布的新版本&#xff0c;WGCLOUD新增了可以自动计算每个磁盘剩余空间的可使用天数&#xff0c;主…

你还在为写PPT而烦恼吗,Kimi一键帮你生成PPT

PPT已经成为我们日常工作和学习中不可或缺的一部分。无论是企业会议、学术报告还是产品展示&#xff0c;一个精心制作的PPT都能有效提升信息传递的效率和质量。然而&#xff0c;制作一个既美观又专业的PPT并非易事&#xff0c;它需要耗费大量的时间和精力。幸运的是&#xff0c…

中伟视界:皮带跑偏检测算法及其实现模型和判断方法

皮带输送机广泛应用于矿山、港口、化工等行业&#xff0c;其正常运行对生产效率和安全性至关重要。皮带跑偏是输送机常见的故障之一&#xff0c;可能导致物料撒落、设备损坏&#xff0c;甚至引发安全事故。为了有效监测和预防皮带跑偏&#xff0c;现代技术利用多种算法模型和判…