zhangguanzhang's Blog

zhangguanzhang's Blog

it's better to burn out than to fade away

银河麒麟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 人员,经常需要连到办公网工作,并不是每个公司都有 vpn,自己搭建的话 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...
k8s master机器文件系统故障的一次恢复过程
由来研发反馈他们那边一套集群有台master文件系统损坏无法开机,他们是三台openstack上的虚机,是虚拟化宿主机故障导致的虚机文件系统损坏。三台机器是master+node,指导他修复后开机,修复过程和我之前文章opensuse的一次救援步骤一样 起来后我上去看,因为做了 HA 的,所以只有这个node有问题,集群没影响 12345[root@k8s-m1 ~]# kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS...
Linux audit 审计
什么是audit?linux audit子系统是一个用于收集记录系统、内核、用户进程发生的行为事件的一种安全审计系统。该系统可以可靠地收集有关上任何与安全相关(或与安全无关)事件的信息,它可以帮助跟踪在系统上执行过的一些操作。 使用安装好像高版本 os 都自带了,没有就 yum install -y audit 1systemctl status auditd.service 例如追踪一个内核参数被谁修改要注意的是 auditctl 只能临时生效,要想永久生效使用文件 audit.rules 基本信息查看12345678910111213# 查看状态$ auditctl -senabl...
k8s pprof 分析 cpu 和内存
简单记录下 k8s 组件的 pprof 看内存和 cpu 情况 kubectl 收集有证书 curl 也行,这里就偷懒了: 123# 这个很耗时,耐心等待文件不为 0 即可kubectl get --raw /api/v1/nodes/<nodeName>/proxy/debug/pprof/profile > kubelet.profilekubectl get --raw /api/v1/nodes/<nodeName>/proxy/debug/pprof/heap > kubelet.heap 123yum instal -y graphviz...
阿里云上使用flannel host-gw跨节点pod不通的解决
挺多人问的,写下解决办法 前言首先主机得在同一个专有vpc下,跨vpc或者经典vpc就扯淡了。还有flannel别把网络信息存储在etcd里,目前flannel只支持v2的etcd api。但是现在k8s都是使用v3 etcd存储了。如果v2和v3共存会导致无法恢复etcd的备份 所以网上那些etcdctl set flannel的cidr的文章别看了,都没做过备份恢复实验就到处发k8s搭建教程。flannel v3的话看我过往文章 环境信息先来说下host-gw的包走向,假设两台机器 IP pod cidr 10.0.6.166 10.200.1.0/24 10.0.6...
v1.17+ k8s集群下CNI使用VXLAN模式SVC有63秒延迟的触发原因定位
这个问题 flannel 和 calico 的 VXLAN 模式下都会发生,部分人的现象是集群的A记录 UDP 下查询可能有问题(也有人在 azure 上在宿主机上访问 svc 的 clusterIP 10%几率才能通),原因是v1.17+的k8s会引起内核的某个 UDP 相关 bug而不是cni的软件层面,weave没有,后面说。 写这篇文章的日期是05/28,发现是上周五也就是05/23号,文章从时间线写起(因为很多时候想发文章但是没空,所以文章的发布日期是05/23) 2020-07-19更新,版本v1.18.6, v1.16.13, v1.17.9+已经修复这个问题,可以同版本内...
proxmox x86软路由笔记
由来办公室有台式机,不想整天带着N1上下班,整下x86的软路由,exsi性能会比pve好,但是pve毕竟Linux,兼容性和对接很多场景方便,这里我使用pve开机器安装openwrt。 pve已经安装好系统(如果你还没安装且打算安装,安装完后可以看看我这个文章安装完proxmox的一些设置),并且台式机的口子接主路由的lan口。主路由是我的路由器,它wan口接办公室的网口,台式机只有一个口子,所以软路由作为旁路由使用。 前置工作虚机准备先去恩山论坛x86版块下一个固件,或者下载我的 action 编译的固件找 Build OpenWrt的 step 点进去,然后最下面的OpenWrt_f...
斐讯N1刷机和旁路由的设置
由来        之前一直是使用k2p刷openwrt或者pandora跑 xx 用,前几天看到了个 xx 的订阅地址给写到openwrt上了。结果运行了几天发现 web 上任何配置都无法更改,ssh 上去发现 touch 报错没有容量(而且重装后感觉还是有问题,github 访问也不稳定了),意识到 k2p 容量实在太小了,于是去恩山论坛逛了下准备买个 N1 盒子玩玩旁路由。         N1有8G的rom 2G的ram,...
一次deploy,rs,sts Mismatch 的处理
这次文章是远程帮群友解决故障后的总结,以时间线描述 群友一开始是apiserver响应慢,使用角度上就是kubectl请求慢,如 123E0326 07:49:37.586690 1 available_controller.go:416] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.99.174.208:443/apis/metrics.k8s.io/v1beta1: Get https:/&...