zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

k8s pod 没有 IP ,报错 failed to read pod IP from plugin/docker
由来有事回到工位上,还没坐下同事就过来喊我,让我帮忙看个客户的生产环境问题,大致就是客户为了搞安全,开了 ipset,然后发现业务受影响了。 过程123456$ kubectl get pod -o wide | grep -v RunnNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESxxxx-privilege-r97z...
docker info无warning,iptables规则正常,宿主机就是不转发
由来06、02 凌晨被喊醒帮忙看问题,客户侧重启部分 k8s 节点机器后,业务的部分接口出现问题,环境无法向日葵之类的远程,只能发命令后,现场人员执行。 具体现象业务 pod 日志看是无法连到非 k8s 机器上的 mysql 的 3306, docker info 命令无 warning 也就是代表下面的几个内核参数正常: 1234net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1net.ipv4.ip_fo...
低版本内核下容器内部无法使用 unix socket 通信
由来最近几次遇到的机器上所有容器内,都无法使用 unix:// 去通信的的一个问题。 遇到的几个错误现象最开始是我们部署容器内无法使用 ansible 去操作其他机器,后面是该机器上所有容器内的 supervisorctl 无法通过 unix sock 连接 supervisord ansible报错如下: 1234failt: [10.x.x.x]: UNREACHABLE! => { "changed": false, "msg": "Data could not be sent t...
python kubernetes client list permission
由来这几天内部有个功能就是看 kubernetes client 的权限有哪些 过程kubeconfig 生成先制作一个非 admin 的 kubeconfig,记得以前有个项目是部署后可以生成 kubeconfig 的,询问了一番后,其他群友提示下想起来是 permission-manager,部署后结果发现生成的 kubeconfig 压根不能用,报错未知机构签署的,结果还是按照以前 生成kubeconfig常规的两种方法 生成了一个简单的。 尝试过程其实一开始打算自己写逻辑,增删改查需要的资源便利来检查,然后突然想起来 kubectl (忘了哪个版本开始)有个 auth 子命令的 ...
server 端的 cannot assign requested address
由来今天碰到了这个问题,但是最终结果出乎意料 过程项目相关部分客户的 OA 对接我们的应用,使用过程中会调用我们的接口,我们的接口再回调客户的回调地址。调用流是: 1客户 OA 后端 ----> 我们应用 A 的后端 -----> 我们应用 B 后端 -----> 客户写的回调地址 然后我们接口 A 返回 B 访问回调的报错: 1"Get http://10.192.xxx.xxx/xxxxinfo?...: dial tcp 10.192.xxx.xxx:80: connect: cannot assign requested address"...
keepalived static link build
由来之前那篇 ipvs svc 的文章,内部已经上生产了,客户的环境可能完全内网,包管理安装 keepalived 不现实,所以 keepalived 是部署容器里的。在容灾测试的时候,例如 3 台机器部署好业务,然后跑压测脚本模拟用户使用,发现关台机器的时候故障时间很短,但是这个机器开机的期间,还是很大概率故障时间很长,体现在接口的错误数量很多。大概看了下,是 keepalived 启动慢,先试启动 docker daemon,然后容器启动是顺序不固定,可能 keepalived 很后起来,于是就想着看看能不能 keepalived 拿出来,也就是静态编译。 buildx 使用见文章 ...
利用 docker buildx 静态编译 nginx
由来内部有需求需要静态编译 nginx,尝试了下,搞出来了。先是按照官方 nginx Dockerfile 的逻辑走不通,后面下载 nginx 官方源码编译才行。 buildx 使用见文章 buildx 使用 nginx Dockerfile先说下官方的失败尝试。先 clone 项目: 12git clone https://github.com/nginxinc/docker-nginx.gitcd docker-nginx 分为 stable 和 mainline。大概研究了下,发现 case "$apkArch" in x86_64|aarch64) 的情况是...