前言

宿主机ping不通K8S的pod,一直存在丢包的现象,排查了防火墙、日志、详细信息等没发现什么问题,最后搜索发现,是因为把K8S的版本升级之后,旧版本的CNI插件不适配原因导致的,于是就把calico也一并升级并且记录下来。本文K8S版本为1.32.6,calico版本为3.30.2。

一、删除旧版本的CNI名称空间

因为这样可以直接删除所有资源。

建议大家还是直接使用kubectl delete -f xxx.yaml或者是delete资源。

这里我直接使用etcdctl命令行工具删除了。(不要轻易模仿)

# 安装命令行工具[root@k8s-master ~]# apt install -y etcd# 过滤出我们的名称空间的信息
[root@k8s-master ~]# ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key get / --prefix --keys-only | grep namespace# 找到calico所对应的名称空间,进行删除操作
[root@k8s-master ~]# ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key del /registry/namespaces/calico-apiserver[root@k8s-master ~]# ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key del /registry/namespaces/calico-system

当然当然当然,删除pods也只需要把grep后面的信息修改为pod,然后del就行了!

二、重置coredns组件

[root@k8s-master ~]# kubectl delete po -n kube-system -l k8s-app=kube-dns

三、下载新版本的CNI插件

wget  https://raw.githubusercontent.com/projectcalico/calico/v3.30.2/manifests/operator-crds.yamlwget https://raw.githubusercontent.com/projectcalico/calico/v3.30.2/manifests/tigera-operator.yaml

四、清空Finalizer

1. 查看当前状态(可选)

确认它确实在删除中,并带有哪些 finalizer:

kubectl get installation default -n calico-system -o yaml | grep -E 'deletionTimestamp|finalizers' -C2

2. 移除所有 finalizer

执行下面的 patch 命令,将 metadata.finalizers 数组清空:

kubectl patch installation default -n calico-system \--type=merge \-p '{"metadata":{"finalizers":[]}}'

3. 确认删除标记被清除

再次查看资源,应该不再有 deletionTimestamp,也不再有 finalizer:

kubectl get installation default -n calico-system -o yaml | grep -E 'deletionTimestamp|finalizers' -C2

这样 Installation/default 就会从“删除中”回到正常状态,Operator 也会继续对它进行管理。

五、部署新版本的CNI插件

kubectl create -f  https://raw.githubusercontent.com/projectcalico/calico/v3.30.2/manifests/tigera-operator.yaml
wget https://raw.githubusercontent.com/projectcalico/calico/v3.30.2/manifests/custom-resources.yaml

这里需要注意,记得修改pod的cidr网段!(之前初始化K8S集群的时候设置的pod网段)

[root@k8s-master ~]# grep -C 2 'cidr' custom-resources.yaml - name: default-ipv4-ippoolblockSize: 26cidr: 10.100.0.0/16encapsulation: VXLANCrossSubnetnatOutgoing: Enabled

完成了之后在apply创建资源

[root@k8s-master ~]# kubectl apply -f custom-resources.yaml 

等待资源创建成功

[root@k8s-master ~]# kubectl get pod -A
NAMESPACE          NAME                                       READY   STATUS    RESTARTS       AGE
calico-apiserver   calico-apiserver-67fd59c4cb-p8qm8          1/1     Running   0              6m54s
calico-apiserver   calico-apiserver-67fd59c4cb-v6qst          1/1     Running   0              2m47s
calico-system      calico-kube-controllers-598d796659-5pnz9   1/1     Running   0              6m51s
calico-system      calico-node-4nfmc                          1/1     Running   0              6m52s
calico-system      calico-node-n8l9r                          1/1     Running   0              6m52s
calico-system      calico-node-rqcsp                          1/1     Running   0              6m52s
calico-system      calico-typha-76846cfc98-fzsq4              1/1     Running   0              6m50s
calico-system      calico-typha-76846cfc98-s9v7k              1/1     Running   0              6m52s
calico-system      csi-node-driver-l9l6m                      2/2     Running   0              6m52s
calico-system      csi-node-driver-v6f7m                      2/2     Running   0              6m52s
calico-system      csi-node-driver-xrd4m                      2/2     Running   0              6m52s
calico-system      goldmane-5f56496f4c-69p7x                  1/1     Running   0              6m52s
calico-system      whisker-85957d9c7b-ckxw7                   2/2     Running   0              6m52s
kube-system        coredns-6766b7b6bb-lqmgs                   1/1     Running   0              8s
kube-system        coredns-6766b7b6bb-qqhg8                   1/1     Running   0              72s
kube-system        etcd-k8s-master                            1/1     Running   3 (137m ago)   173m
kube-system        kube-apiserver-k8s-master                  1/1     Running   4 (135m ago)   173m
kube-system        kube-controller-manager-k8s-master         1/1     Running   3 (137m ago)   173m
kube-system        kube-proxy-7rg9h                           1/1     Running   1 (137m ago)   138m
kube-system        kube-proxy-tkpgx                           1/1     Running   1 (137m ago)   138m
kube-system        kube-proxy-vpjcw                           1/1     Running   1 (137m ago)   138m
kube-system        kube-scheduler-k8s-master                  1/1     Running   3 (137m ago)   173m
tigera-operator    tigera-operator-747864d56d-9bdfv           1/1     Running   0              7m3s

查看版本信息

[root@k8s-master ~]# kubectl -n calico-system get daemonset calico-node -o jsonpath="{.spec.template.spec.containers[0].image}";echo
docker.io/calico/node:v3.30.2

六、验证集群与CNI可用性 

1. 创建Pod

[root@k8s-master ~]# cat test-cni.yaml 
apiVersion: v1
kind: Pod
metadata:name: xiuxian-v1
spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 name: xiuxian

2. 验证

[root@k8s-master ~]# kubectl get po -o wide
NAME         READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
xiuxian-v1   1/1     Running   0          9s    10.100.169.135   k8s-node2   <none>           <none>
[root@k8s-master ~]# curl 10.100.169.135
<!DOCTYPE html>
<html><head><meta charset="utf-8"/><title>yinzhengjie apps v1</title><style>div img {width: 900px;height: 600px;margin: 0;}</style></head><body><h1 style="color: green">凡人修仙传 v1 </h1><div><img src="1.jpg"><div></body></html>

3. ping测试

[root@k8s-master ~]# ping 10.100.169.135
PING 10.100.169.135 (10.100.169.135) 56(84) bytes of data.
64 bytes from 10.100.169.135: icmp_seq=1 ttl=63 time=0.509 ms
64 bytes from 10.100.169.135: icmp_seq=2 ttl=63 time=0.374 ms
^C
--- 10.100.169.135 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.374/0.441/0.509/0.067 ms

通过以上排查和调整,大多数 Calico CNI 相关网络问题都能迎刃而解。希望这篇技术博文能为你和同样在生产环境中苦于网络抖动的同行,提供一份全面的排障指南。

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

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

相关文章

Spring Boot RESTful API 设计指南:查询接口规范与最佳实践

Spring Boot RESTful API 设计指南&#xff1a;查询接口规范与最佳实践 引言 在 Spring Boot 开发中&#xff0c;查询接口的设计直接影响着系统的可用性、可维护性和性能。本文将深入探讨如何规范设计查询接口&#xff0c;包括 GET/POST 的选择、参数定义、校验规则等&#xff…

ctfshow萌新题集

记录一下前半部分是能自己写出来的&#xff0c;后半部分是需要提示的&#xff0c;感觉自己归来两年仍是萌新 misc部分 知识点 base家族密文特征 Base16 (Hex) 字符集&#xff1a;0-9, A-F&#xff08;不区分大小写&#xff09;。特征&#xff1a; 长度是 2 的倍数&#xff…

2025年语言处理、大数据与人机交互国际会议(DHCI 2025)

&#x1f310;&#x1f916;&#x1f9e0; 语言处理、大数据与人机交互&#xff1a;探索智能未来 —— DHCI 2025国际会议2025年语言处理、大数据与人机交互国际会议&#xff08;DHCI 2025&#xff09; 将于2025年在中国重庆市召开。这次盛会将汇聚全球顶尖专家、学者及行业领袖…

RIP实验以及核心原理

RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种内部网关协议&#xff0c;基于距离矢量算法&#xff0c;用于在自治系统内交换路由信息。RIP 核心原理距离矢量算法&#xff1a;RIP 使用跳数作为路径选择的唯一度量标准。每经过一个路由…

基于大数据的电力系统故障诊断技术研究

摘要本文提出了一种创新性的基于大数据技术的电力系统故障诊断方法&#xff0c;该方法通过整合先进的机器学习算法和交互式可视化技术&#xff0c;实现了对电力系统各类故障的智能化识别与深度分析。该系统采用随机森林算法作为核心分类器&#xff0c;构建了高精度的故障分类模…

MySQL 分区功能应用专门实现全方位详解与示例

MySQL 分区功能允许将表的数据分散存储在不同的物理分区中,同时保持逻辑上的单一表结构。下面我将从基础概念到高级应用,全面讲解 MySQL 分区实现。 一、分区核心作用 1. 性能提升 分区剪枝(Partition Pruning):查询时自动跳过不相关的分区,减少数据扫描量 并行处理:不…

汽车功能安全-嵌入式软件测试(软件合格性测试)【目的、验证输入、集成验证要求】11

文章目录1 嵌入式软件测试&#xff08;Testing of the embedded Software&#xff09;2 测试输入3 验证要求和建议3.1 测试环境3.2 测试方法3.2.1 基于需求的测试3.2.2 故障注入测试3.2.3 两种方法的区别与联系总结3.3 测试用例导出方法4 嵌入式软件的测试结果评价5 测试输出物…

【webrtc】gcc当前可用码率1:怎么决策的

【webrtc】当前最大码率是怎么决策的1 看日志,跟踪代码最大码率 是probe的上限 默认值很大 外部设置的较小,调用堆栈 无限大作为默认值 默认是无限大,所以使用预设值 【webrtc】码率设定中的 int64_t 的无限大

UE5 C++计时器

UE5 C计时器 计时器一&#xff1a; .h文件 FTimerHandle TimerHandle_BetweenShot;//定义时间句柄 void StartFire();void EndFire();.cpp文件 #include “TimerManager.h” void ASpaceShip::StartFire() {GetWorldTimerManager().SetTimer(TimerHandle_BetweenShot, this, &a…

【hivesql 已知维度父子关系加工层级表】

这里写自定义目录标题1. 维度表示例1.1清单表1.2层级表2.从清单表加工层级表2.1 注意点2.2 加工方式&#xff08;join&#xff09;2.3 使用函数3.清单表字段加工3.1通过上级编码信息加工级别信息3.2 通过级别信息&#xff0c;加工上级编码信息4.创建维度表的一般注意点1. 维度表…

Ubuntu重装系统后ssh连接不上(遇到 ​​“Unit ssh.service not found“​​ 错误)

重装系统时不知道为什么SSH 服务未安装&#xff0c;以下是解决方案&#xff1a;先检查ssh服务安装没安装 sudo systemctl status ssh # Ubuntu/Debian如果 systemctl 找不到服务&#xff0c;可能是 SSH 未安装&#xff1a;sudo apt update sudo apt install openssh-serve…

2025社交电商新风口:推客小程序的商业逻辑与技术实现

一、推客小程序市场前景与商业价值在当今社交电商蓬勃发展的时代&#xff0c;推客小程序已成为连接商家与消费者的重要桥梁。推客模式结合了社交传播与电商变现的双重优势&#xff0c;通过用户自发分享带来裂变式增长&#xff0c;为商家创造了全新的营销渠道。推客小程序的核心…

Go 单元测试进阶:AI 加持下的高效实践与避坑指南

单元测试的必要性与基础单元测试不仅是保障代码质量的手段&#xff0c;也是优秀的设计工具和文档形式&#xff0c;对软件开发具有重要意义。另一种形式的文档&#xff1a;好的单元测试是一种活文档&#xff0c;能清晰展示代码单元的预期用途和行为&#xff0c;有时比注释更有用…

VScode SSH远程连接Ubuntu(通过SSH密钥对的方式)

我们都知道在VScode上通过SSH插件的方式可以远程连接到虚拟机的Ubuntu系统&#xff0c;这样开发者就可以在Windows下的Vscode编译器下直接远程连接Ubuntu&#xff0c;这种方式是 “用 Windows 的便捷性操作 Linux 的专业性”—— 既保留了Windows系统的易用性和VS Code的强大功…

学术绘图(各种神经网络)

23种神经网络设计&可视化工具汇总 下面做简要罗列&#xff0c;具体请看相关链接 1.draw_convnet Github: https://github.com/gwding/draw_convnet​ star 数量&#xff1a;1.7k​ 这个工具最后一次更新是2018年的时候&#xff0c;一个Python脚本来绘制卷积神经网络的工…

Redis的高可用性与集群架构

Redis的高可用性与集群架构 引言&#xff1a;解释高可用性的重要性及Redis如何实现主从复制&#xff08;Replication&#xff09; 原理&#xff1a;异步复制&#xff0c;主从数据同步配置方法优缺点分析 哨兵模式&#xff08;Sentinel&#xff09; 功能&#xff1a;监控、通知、…

TCP的连接

TCP 三次握手过程是怎样的&#xff1f;TCP 是面向连接的协议&#xff0c;所以使用 TCP 前必须先建立连接&#xff0c;而建立连接是通过三次握手来进行的。三次握手的过程如下图&#xff1a;一开始&#xff0c;客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口&…

Excel的学习

一、熟悉界面 1.功能区 点击“视图”,点击冻结窗格,选择目标行 2.表格区 3.自定义功能区 在上面的空白编辑栏处,右键选择自定义功能区 4.数据输入规范 (1)格式不统一(日期格式不规范,姓名乱加空格,乱合并单元格) 姓名对齐:右键选择编辑单元格格式,选择对齐,…

论文阅读:HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking

论文地址:2501.01275v2 代码地址:GitHub - leandro-svg/HybridTrack: [RA-L25/ICRA26] HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking 前言 多目标跟踪旨在在帧间检测和关联所有所需的目标。大多数方法通过明确或隐式地利用强大的线索(即空间和外观信…