zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

使用github action 配合 docker buildx 编译 arm64 docker-compose
说明git 上搜索了很多 docker-compose 的 arm64 的编译基本都是使用 qemu-user-static 之类的设置下后编译的,也看到过用特权容器启动 qemu-user-static 或者 binfmt 之类的,但是我自己机器上试了无效,貌似是因为我操作系统是低版本内核的 centos ,github 上搜了下,其他很多人的编译感觉太啰嗦了。就在 action 上整了下,测试是可用的,而且非常简单。 docker-practice/actions-setup-docker@master 将会在在 action 的 runner 里安装 docker,创建 build...
集群节点关机导致dns在eviction pod之前几率不可用
由来这几天我们内部在做新项目的容灾测试,业务都是在 K8S 上的。容灾里就是随便选节点 shutdown -h now。关机后同事便发现了(页面有错误,最终问题是)集群内 DNS 解析会有几率无法解析(导致的)。 根据 SVC 的流程,node 关机后,由于 kubelet 没有 update 自己。node 和 pod 在 apiserver get 的时候显示还是正常的。在 kube-controller-manager 的 --node-monitor-grace-period 时间后再过 --pod-eviction-timeout 时间开始 eviction pod,大概流程是...
docker18.03 hang at 'restoring container'
由来起初是 k8s 有几个 node not ready,上去看了下 kubelet 日志刷 container runtime down,重启了下 docker 后还是没用,docker ps 命令都卡住。 环境信息1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253$ cat /etc/redhat-release Linux xxx-disk0 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:...
ansible hang in docker container
由来这几天同事发现在 docker 容器里运行 ansible 命令很卡,发来了个命令叫我试试 ansible localhost -m setup -a 'filter=ansible_default_ipv4' 2>/dev/null |grep '\"address\"' |awk -F'\"' '{print $4}' 环境信息12345678910111213141516171819202122232425262728293031323334353637383...
永久关闭swap的正确姿势
今天遇到了 kylin 系统上无法关闭 swap 的情况。记录下和方便别人搜到这个知识点。 环境信息1234$ at /etc/issueKylin 4.0.2 \n \l$ uname -aLinux H-192-168-63-132 4.15.0- 58-generic #64kord1k1'SMP Thu Aug 1S15:51:97 csT 2919 aarch64 ...... 尝试的步骤fstab 里没有 swap 的挂载, 1swapoff -a && sysctl -w vm.swappiness=0 重启后,内核参数是关闭的,但是实际没有关...
银河麒麟arm64系统克隆机器上k8s vxlan跨节点不通的一次排查
由来2023/08/21 注意点: = v0.15.1 开始,不需要 10-flannel.link 了,flannel 添加随机 mac https://github.com/flannel-io/flannel/issues/1795 和前一篇文章不一样,从来没遇到过这样的问题,这里记录下。实施在客户那边部署业务后,业务在浏览器上无法访问,我远程上去查看日志发现 pod 内部无法 DNS 无法解析,nginx 连不上 upsteam 报错而启动失败,实际上也是跨节点不通。实际排查过程也有往错误的方向浪费了一些时间和尝试,就不写进来了,以正确的角...
统信USO 20 hostPort 无法访问
由来这些天陆续发现很多客户是统信的系统,部署我们业务后无法访问 环境信息我自己环境和客户的环境都遇到了无法访问,我自己测试的机器信息是: 1234567891011$ cat /etc/os-releasePRETTY_NAME="Uniontech OS Server 20 Enterprise"NAME="Uniontech OS Server 20 Enterprise"VERSION_ID="20"VERSION="20"ID=UOSHOME_URL="https://www.chinauo...
银河麒麟arm64系统上k8s集群跨节点不通的一次排查
由来同事在客户那边部署的集群问题频繁,先给他解决了个问题后又反映说业务 POD 由于 DNS 无法解析而启动失败,排查完发现这样的情况从没遇到过,挺有意思的,这里记录下。实际排查过程也有往错误的方向浪费了一些时间和尝试,就不写进来了,以正确的角度写下排查过程。 环境信息集群信息: 12345678910111213141516171819202122232425$ kubectl version -o json{ "clientVersion": { "major": "1", "mi...
openshift 4.5.9 离线安装
本文是全部离线安装,也就是 UPI (User Provisioned Infrastructure) 模式安装,假设机器只能配置静态ip不能有网络配置权限和配置 dhcp 和 pxe。机器可以是物理机和虚拟机。 前言介绍ocp介绍openshift 分为社区版本 okd 和企业版本 ocp(openshift container platform),okd 的更新很慢,ocp 个人也是可以安装的,不购买 license 则不会享受 redhat 的官方支持。 openshift 不像其他的 dashboard 诸如 rancher,k3s 之类的,它自己实现了 cs 的三个组件,也给 ...
个人用 wireguard 笔记
作为 IT homelab 人员,经常需要连到家里的机器, openvpn 之类的配置麻烦啰嗦。这里写下 wireguard 的简单搭建。它比 IPSec 更快,更简单,更精简,更有用。它工作在内核态,比 OpenVPN 更高效。WireGuard 设计为通用 VPN,适用于多种不同情况。它是跨平台的,可大规模部署。 通常如下图的部署: 一台 ECS 主机,得有公网 IP,下图就是 pc ----> ECS <------ 家里的 pc 12345678910111213141516 +----------+ | ...
prometheus的rate与irate内部是如何计算的
由来市面上的翻译误导人,压根不是啥平均增长率,看了下源码和实际算下来让大家好理解 rate主要代码是在 https://github.com/prometheus/prometheus/blob/master/promql/functions.go 的extrapolatedRate 和 funcRate,funcRate为 123func funcRate(vals []parser.Value, args parser.Expressions, enh *EvalNodeHelper) Vector { return extrapolatedRate(vals, args...