zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

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...
阿里云上使用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:/&...
go mod的基础使用-科普
go mod由来        文章主要是针对新人来介绍go mod是啥以及新手如何使用,老手不用看。现阶段go mod已经完全GA了,你会用了的话会非常方便        像python的项目根目录有requirement.txt记录依赖包,nodejs是packages.json,同样go的包管理从早期的go dep(gopkg)到vendor到现在的go mod.     &...
centos6中毒重启后卡在启动页面
12345678910⣿⣿⣿⣿⣿⣿⢟⣡⣴⣶⣶⣦⣌⡛⠟⣋⣩⣬⣭⣭⡛⢿⣿⣿⣿⣿⣿⣿⣿⣿⠋⢰⣿⣿⠿⣛⣛⣙⣛⠻⢆⢻⣿⠿⠿⠿⣿⡄⠻⣿⣿⣿⣿⣿⣿⠃⢠⣿⣿⣶⣿⣿⡿⠿⢟⣛⣒⠐⠲⣶⡶⠿⠶⠶⠦⠄⠙⢿⣿⠋⣠⠄⣿⣿⣿⠟⡛⢅⣠⡵⡐⠲⣶⣶⣥⡠⣤⣵⠆⠄⠰⣦⣤⡀⠇⣰⣿⣼⣿⣿⣧⣤⡸⢿⣿⡀⠂⠁⣸⣿⣿⣿⣿⣇⠄⠈⢀⣿⣿⠿⣰⣿⣿⣿⣿⣿⣿⣿⣷⣤⣈⣙⠶⢾⠭⢉⣁⣴⢯⣭⣵⣶⠾⠓⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣉⣤⣴⣾⣿⣿⣦⣄⣤⣤⣄⠄⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠈⢿⣿⣿⣿⣿⣿⣿⡟⣰⣞⣛⡒⢒⠤⠦⢬⣉⣉⣉⣉⣉⣉⣉⡥⠴⠂⢸⠻⣿⣿⣿⣿⣏⠻⢌⣉⣉⣩⣉⡛⣛⠒⠶⠶⠶⠶⠶⠶⠶⠶⠂⣸⣿ 昨晚刚整好那个ubuntu,今天下午又一台cen...
记录一次request_module: runaway loop modeprobe binfmt-0000
        昨天一台gpu的主机的阵列卡突然坏了,最终整起来后上面的几台虚机恢复后有一台虚机无法正常开机,开机进emergency mode,同事看上面的报错以为是挂载了啥iscsi,当然无法开机应该找到最开始的错误,进到emergency mode这个视角的时候已经是雪崩的最后的错误了,多半是没有意义的。输入root密码后执行journalctl -xb翻看最开始的错误         按照关键字request_modul...
使用microsoft-graph的api对接onedrive
前言这几天打算把文件备份下,最后看到有网友说onedrive不错,就是容量小了点只有5g,然后酷安去安装安卓客户端,下面看到一堆人送office e5子账户的。看了下大概是微软为了推广自己产品面向开发者送的优惠,账户有免费的5t存储,而且安装office啥的免费。试用30天,30天内调用api来保持活跃度的话就会延期。评论里一大堆都是搭建oneindex或者onelist的,主要作用就是把onedrive给抽象成一个公共的网盘使用,oneindex是php写的,我看issue居然385个,作者的github也在更新,而且作者学了golang,居然也不打算重构下,估计也是烂尾了。oneli...
docker-18.06.3-ce启动panic: invalid page type: 0: 0的解决处理
凌晨pod状态异常且没有恢复,上线查看后docker ps -a命令无响应,kubelet日志也刷和docker的rpc通信context deadline cancel重启了docker后docker无法启动,前台运行开debug log level刚开始刷了个/var/lib/docker/tmp是个文件,对比了下其他机器上这个路径应该是个目录,然后改名后创建个权限和正常docker下权限一样的tmp文件夹再起 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748...
opensuse的一次救援
昨晚吃完晚饭回到办公室,右边同事在控制台看着一个suse起不来一直启动的时候卡在suse的蜥蜴logo背景图那。见我来了叫我看下,他们已经尝试过恢复快照,但是还不行,应该是很久之前损坏的,只不过因为没重启没发现,我叫他重启下看看卡在哪,重启后进入内核后显示背景图那按下esc然后看卡在/sysroot挂载那。目测分区损坏了,经历了ubuntu的安装iso的rescue mode就是渣渣后,我还是信任centos的iso。 处理先备份和准备工作关闭虚机,后台拷贝下系统盘的卷先备份下。然后给虚机的IDE光驱挂载了个centos 7.5 DVD的iso,修改虚机启动顺序到ISO,进Trouble...
从PTTYPE="dos"到TYPE="LVM2_member"的救援
同事叫我救援一台云主机,虽说是虚拟机,但是类比到硬件服务器还是一样的操作,这里记录下给后来者查阅 故障信息控制台进去看到centos7的背景虚化的数字7+转圈,重启下看下完整的错误,重启选了内核然后进到图形界面的时候按下ecs取消,观察终端 123456789101112131415161718192021222324[ OK ] Started Show Plymouth Boot Screen.[ OK ] Reached target Paths.[ OK ] Reached target Basic System.[ 124.522110] dracut-initqueu...