zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

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) 的情况是...
EmuELEC 笔记
EmuELEC 笔记后续关于 EmuELEC 的笔记和知识点都会在这里更新,假定看到这篇文章的人都具备一些 Linux 基础,命令,path,分区,挂载之类的知识。 EmuELEC 介绍EmuELEC 是专为 Amlogic(晶晨)S905/S912 方案的盒子开发的游戏系统,它基于 CoreELEC 系统,在 CoreELEC 的基础上移植了 RetroArch 和众多的独立模拟器。EmuELEC 前身为 Sx05RE。Sx05RE 整合了 Lakka、KODI、EmulationStation,常被人简称为三合一。它实际上也是一个 Linux 系统,最新版本开始只支持 ar...
openwrt 的在线升级固件和扩容的研究
前言手上有 r2s、N1 和 x86_64 的固件维护,r2s 的参照别人的脚本搞了在线升级固件的脚本,别人的脚本只支持 ext4 升级,而后面我也把 squashfs 格式的固件升级搞出来了。恩山上有的人的固件我也看 x86_64 也可以在线升级,后面我也会去测下 x86_64 的,理论上是通用的。 升级过程以 r2s 为例讲解。参照目前看到的的 1988 的升级脚本 ,最初的人不知道是谁搞的在线升级,因为很久之前就看到有些人的固件能在线升级了。 升级前准备相关命令确保固件有下面命令: command package name 用途 parted parted 修改分区和获...
docker数据盘损坏后启动报错 Error starting daemon: Error initializing network controller: Error creating default "bridge" network: package not installed
前言客户现场的数据盘损坏了,修复启动机器后 docker 无法启动 123456789101112131415[root@db1 docker]# /data/kube/bin/dockerdWARN[0000] The "graph" config file option is deprecated. Please use "data-root" instead. WARN[2021-12-11T21:16:07.917969366+08:00] could not change group /var/run/docker.sock to doc...