自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 calico ipBlocks 未释放

bug:当前版本接收到node删除的事件时,不会清理etcd中分配的内存块,导致ippool块分配之后就会一直处于被占用的状态,当集群的块被占用完以后,就无法再分配ippool块,导致集群节点添加失败。修复方式:代码在版本3.13.0版本中修复了这个问题,但是直接升级影响太大,采用保留3.6.0版本的方式来解决问题。组件:calico-kube-controllers。

2024-12-13 10:01:40 222

原创 ipam.go 1054: Failed to get IPAM host error=resource does not exist: IPAMHostKey(host=yonsuite-test-

【代码】ipam.go 1054: Failed to get IPAM host error=resource does not exist: IPAMHostKey(host=yonsuite-test-

2024-11-26 17:23:08 222

原创 panic: interface conversion: interface {} is nil, not *v3.Node (calico-kube-controllers)

calico-kube-controllers 低版本v3.6.0,集群主机删除,会导致kube-controllers重启报错

2024-11-21 11:16:25 466

原创 exec /docker-entrypoint.sh: argument list too long

一、问题描述:当我们的启动一个容器,发现容器启动失败,查看容器日志报错为“exec /docker-entrypoint.sh: argument list too long”,但是查看我们的容器启动的配置参数也不多;通过docker inspect 发现,通过kubelet启动的容器被带入了大量的环境变量,这些变量有几千个,定位到了问题所在,这些变量并不是我们直接引入的,那它是从哪里来的呢?通过kubectl describe pod 发现容器的失败的原因是Error,没有什么可以信息;

2024-11-15 11:02:52 221

原创 bird 源码编译依赖

bird源码编译

2024-11-14 14:04:40 289

原创 calico网络建联4分钟排查及解决方案说明

calico bird 耗时4min解决方案

2024-11-08 16:38:35 1172

原创 磁盘io飙升分析

这个现象在MySQL上更为常见,在5.6(performance_schema提供io instrument)之前,我们通常只能猜到是MySQL导致的高IO,但是没法定位具体是哪个文件带来的负载。在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到IO负载的来源进程和来源文件导致无法进行相应的策略来解决问题。通过ps aux|grep mysqld 找到 mysqld进程对应的进程号,通过pt-ioprofile查看哪个文件的IO占用时间最多。

2024-01-08 13:42:01 484

原创 kubelet pleg (docker container hang 住)

docker hang住可不可以不重启机器

2023-12-15 15:47:56 203

原创 bcc 安装

bcc的源码编译安装

2023-09-14 14:23:17 537 1

原创 registry数据清理的巨坑

最好不要做registry的数据清理,最好不要做registry的数据清理,最好不要做registry的数据清理!由于后端registry多年未做镜像的清理,倒是底层镜像的数据巨大,达到了1.2P的数据量,每月的存储费用巨高,所以想要通过镜像标记删除的方式,来清理镜像,释放磁盘空间。操作之前,查询了网上的诸多文章,发现都千遍一律,没有什么问题,也没有任何的坑的记录,所以开始做数据的标记及清理。重新搭建registry仓库,将用的的镜像push到新的镜像仓库,并行一段时间,切换镜像仓库。

2023-07-11 19:32:00 342

原创 若shell for 循环以\n作为分隔符,输出整行

【代码】若shell for 循环以\n作为分隔符,输出整行。

2023-07-11 19:17:01 355

原创 k8s业务故障集锦

通过观察问题主机的参数,发现net.netfilter.nf_conntrack_tcp_timeout_established的阈值为300,即5分钟后tcp_established的信息将不在记录,从而被nf_conntrack回收。2)当建立的tcp链接,在等待8分钟之后,再发送数据,却迟迟没有收到数据库的返回包,导致java服务端一直在进行包的重传,重传多次,也没有收到数据库的回包。1)数据库在于java服务端建立了tcp链接之后,在立即发送数据包的情况下,可以收到从java服务端发送来的数据包。

2023-07-06 17:09:38 596 1

原创 calico启动NodeName获取的顺序

2、如果1为false,则判断NODENAMEFromFile,默认文件路径为/var/lib/calico/nodename,如果不为空,则只用NODENAMEFromFile的内容作为NODENAME。3、如果2为false,则或者环境变量HOSTNAME,如果为true,则HOSTNAME作为NODENAME。2、如果2为false,则或者环境变量HOSTNAME,如果为true,则HOSTNAME作为NODENAME。3、如果3为false,则自动获取主机名称,作为NODENAME。

2023-06-07 16:38:45 214

原创 redis常用命令

【代码】redis常用命令。

2023-03-28 18:17:54 136

原创 redis-cluster 概念介绍

3、节点从正常状态到fail状态,需要收集每个节点对不正常节点(B)的确认:1)当节点(A)发送的ping包没有返回,此时将B节点的状态信息标记为(PFAIL)状态,然后将信息发送到集群的其它节点,同理当A收集本地有关B状态的信息,当大多数主节点认为B节点是PFAIL状态时,节点A将标记B的状态为FAIL状态,然后向所有的可达节点发送这个消息。8)之后,节点A会将节点B的信息通过Gossip协议传播给集群中的其他节点,让其他节点也与节点B进行握手,最终,经过一段时间后,节点B会被集群中的所有节点认识。

2023-03-28 18:08:17 1023

原创 升级kubeadm安装部署的kubernetes集群

升级calico操作:找到calico的安装方式的yaml文件,准备一份老的版本的配置和新的版本的calico的配置文件,直接删除老的calico的配置,kubectl delete -f calico-old.yaml && kubectl apply -f calico-new.yaml,观察calico相关的pod,整个过程不会对线上的服务的访问路由造成影响。2、一般情况下,我们都会有多个控制节点,从代理层上摘除一个控制节点,然后进行升级操作,我们从1.19 升级到1.20。

2023-03-23 14:52:27 362

原创 nginx-ingress常用配置项

【代码】nginx-ingress常用配置项。

2023-03-20 18:46:52 362

原创 nginx-ingress蓝绿部署权重测试

3、要求:所有带有“version:canary”请求头的请求,都打到灰度的pod上面。结果:压测500次,所有请求都打到了灰度的pod上面。2、正式pod1个/canary 2个 ,canary权重占比 30%发送1000个请求,canary占139 + 138 = 277个。结果:压测500次,所有请求都打到了灰度的pod上面。发送500个请求,canary占71+72=143个。发送500个请求 ,canary占147个。发送1000个请求,canary占293个。

2023-03-20 18:45:23 369 1

转载 nginx-ingress 配置优化

转载。

2023-03-20 18:33:23 215

原创 calico全网互联转换为路由反射route reflector

calico 全网互联切换到路由反射

2023-03-20 18:31:40 205

原创 阿里云yum源

一、kubernetes源。

2023-03-16 18:42:03 177

原创 服务器间copy文件

到 10.126.10.42 进行wget。

2023-03-16 15:22:26 114

原创 根据etcd备份文件,重建etcd,恢复k8s

4)为每台机器配置外接etcd的前期配置,安装参考文档:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/5) 由于etcd为外接集群,所以当我们更换集群时,我们的kubadm-config在初始化时添加的etcd集群的配置无法更新,需要我们手动更新,更新的configmaps为kubeadm-config。4)观察所有的pod对于一些失败的pod,删除重建即可。

2023-03-15 15:51:32 643

原创 k8s相关证书的更新

k8s证书更新

2023-03-13 09:55:21 1332

原创 gluster与nfs性能压测

一、glusterfs性能测试图。二、nfs性能测试图。

2023-03-13 09:47:11 451

原创 k8s外接etcd更换节点

把开始加入的两个etcd1和etcd2的member的数量在initial-cluster中跟etcd3保持一致,从而保持member一致。将老的etcd的ca.crt和ca.key同步到3个新的etcd节点,给新的etcd生成证书。创建优先于kubeadm提供的kubelet单位文件的优先级的新单位文件来覆盖服务优先级。为新的3个etcd节点生成kubeadm-config.yaml文件,文件内容如下。同理,将第二个和第三个节点的etcd都增加到集群当中。更新新的etcd的证书为10年。

2023-03-10 17:10:27 738

原创 calico ToR Bgp对等实战

ToR Bgp对等实战

2023-03-01 10:05:48 332

原创 etcd 数据压缩

etcd数据压缩

2023-02-24 18:30:11 1218

原创 k8s常用命令

k8s常用命令

2023-02-22 10:19:19 507

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除