06 2023 档案

安装k8s 1.19.0和kube-ovn
摘要:参考博客—安装与重装k8s 1.15.0 针对ubuntu,安装kubelet、kubectl、kubeadm。 # 更新源 curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - cat <<EO 阅读全文

posted @ 2023-06-29 06:15 王景迁 阅读(200) 评论(0) 推荐(0)

查找容器网卡对应的宿主机veth
摘要:docker run -d nginx:1.91. 容器内查看网卡索引值docker exec -it 2740f92 cat /sys/class/net/eth0/iflink2. 根据网卡索引值查找系统网卡ip a | grep "7: " 阅读全文

posted @ 2023-06-24 20:07 王景迁 阅读(38) 评论(0) 推荐(0)

Nginx热升级
摘要:Nginx热升级指服务不中断情况下用新的Nginx二进制文件替换老的Nginx二进制文件。1. 备份和替换Nginx二进制文件 git clone https://github.com/nginx/nginx.git cd nginx git checkout release-1.22.0 ./au 阅读全文

posted @ 2023-06-23 15:55 王景迁 阅读(139) 评论(0) 推荐(0)

一致性哈希算法
摘要:请求和后端ip地址计算hash值%2^32。 把请求转给按顺时针找到的后端IP。如果后端IP挂了,原本转给其他后端IP的请求不变。为了增强均衡性,可以增加虚拟节点。 参考资料nginx 负载均衡/一致性哈希 阅读全文

posted @ 2023-06-22 18:13 王景迁 阅读(18) 评论(0) 推荐(0)

数据面节点kubelet一直报错找不到静态Pod路径
摘要:k8s 1.19.0 问题现象 问题分析 pkg/kubelet/config/file_linux.gostartWatch方法 pkg/kubelet/kubelet.gomakePodSourceConfig函数 cmd/kubelet/app/options/options.goAddKub 阅读全文

posted @ 2023-06-19 11:32 王景迁 阅读(98) 评论(0) 推荐(0)

因磁盘压力而驱逐Pod
摘要:k8s 1.15.0 问题现象 node2上产生磁盘压力前状态 node2上产生磁盘压力后guaranteed Pod和ds Pod被驱逐 nginx-deployment Pod被驱逐后容忍污点调度到node2,kubelet二次确认否决,继续驱逐 pkg/kubelet/eviction/evi 阅读全文

posted @ 2023-06-18 17:18 王景迁 阅读(125) 评论(0) 推荐(0)

构造网络丢包
摘要:node2模拟丢包10% tc qdisc add dev ens33 root netem loss 10% 查看node2 ens33网卡配置 tc qdisc show dev ens33 node1 ping验证10%丢包率 node1 ens33网卡恢复初始配置 tc qdisc del 阅读全文

posted @ 2023-06-17 14:52 王景迁 阅读(118) 评论(0) 推荐(0)

OpenKruise原地升级
摘要:OpenKruise master 为什么使用原地升级 原地升级含义:更新容器镜像,只升级容器,不触发Pod重建原地升级优势:节省了调度、CNI和CSI、大部分拉取镜像耗时针对k8s集群大量Pod升级场景,减小k8s集群压力。在OpenKruise中支持原地升级的workload/controlle 阅读全文

posted @ 2023-06-12 10:53 王景迁 阅读(619) 评论(0) 推荐(0)

kube-scheduler预选和优选流程
摘要:k8s 1.15.0 kube-scheduler启动时,根据node add事件逐个初始化节点资源,根据已调度的pod add事件减掉node资源。node上没有剩余资源字段,allocatable是业务pod可用资源总量,capacity是节点资源总量。 预选 GeneralPredicates 阅读全文

posted @ 2023-06-10 17:07 王景迁 阅读(103) 评论(0) 推荐(0)

Pod qos模型
摘要:划分qos依据 Guaranteed1.Pod里所有Container都设置了requests和limits,并且requests和limits值相等,且设置了cpu和memory2.只设置limits,k8s默认会设置requests是limits的值Burstable1.不满足Guarantee 阅读全文

posted @ 2023-06-10 12:06 王景迁 阅读(50) 评论(0) 推荐(0)

通过cond实现阻塞队列
摘要:多个协程等待某个条件满足Signal方法:唤醒等待队列中第1个等待者,相当于Java的notify方法 Broadcast方法:唤醒等待队列中所有等待者,相当于Java的notifyAll方法 Wait方法:阻塞自己,直到被唤醒 通过cond实现阻塞队列调用Wait方法前先加锁,Wait方法执行完成 阅读全文

posted @ 2023-06-09 18:03 王景迁 阅读(30) 评论(0) 推荐(0)

调试iptables
摘要:开启调试iptables的内核模块 modprobe nf_log_ipv4 sysctl net.netfilter.nf_log.2=nf_log_ipv4 添加iptables trace规则 # raw只在PREROUTING和OUTPUT才有 iptables -t raw -A PRER 阅读全文

posted @ 2023-06-09 15:06 王景迁 阅读(249) 评论(0) 推荐(1)

MySQL事务
摘要:事务是在存储引擎层实现的。 ACID特性 1.原子性事务中的所有操作要么全部提交成功,要么全部失败回滚。2.一致性数据库总是从一个一致性状态转换到另外一个一致性状态。3.隔离性两个事务之间的隔离程度,与隔离级别有关。4.持久性事务提交后所做的修改会永久保存到数据库中。 隔离性与隔离级别 隔离级别越高 阅读全文

posted @ 2023-06-08 14:58 王景迁 阅读(44) 评论(0) 推荐(0)

MySQL逻辑架构图
摘要:整体架构 MySQL可以分为Server层和存储引擎层两部分。不同的存储引擎(不同的表可以设置不同的存储引擎)共用一个Server层(从连接器到执行器)。 查询流程 连接器 Command列显示Sleep表示空闲连接。 如果客户端太长时间没动静,那么连接器会自动将它断开,由参数wait_timeou 阅读全文

posted @ 2023-06-04 15:39 王景迁 阅读(105) 评论(0) 推荐(0)

导航