zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

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文件夹再起1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484...
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-initqueue...
应大多数人要求写下kubeadm的基础使用
市面上很多kubeadm的文章都是错误示范或者不够详细,大多数都没写系统设置之类的就直接kubeadm init导致很多跟着做的人会报错 我期望看到本文的读者最少具备以下知识: Linux一些目录规范和systemd 学过一点docker 懂dns和/etc/hosts、curl互相结合来测试一些web的接口响应状态 不要求github有自己项目,至少会浏览github 本教学将以下列节点数与规格来进行部署Kubernetes集群,系统CentOS 7.6+,有条件7.7,不要使用centos7.4以及一下,容器技术依赖于内核技术,低版本系统部署和运行后问题会非常多。有读者用debi...
consul仅当服务发现在k8s无状态部署使用
由来      consul server在机器上的部署已经写完了,但是dba还是希望部署在k8s上,昨天搜了下相关文章扣出来部分步骤自己验证实现了。      先说下需求,三台物理机单独跑mysql主从mha,利用consul client的服务注册+ttl向consul server注册成域名,然后配置k8s内部的coredns把域名*.service.consul转发到consul server。架构为下图123456789101112131415161718Ph...
手动修复v1.14-v1.15版本k8s的issue:76956
由来该issue见 https://github.com/kubernetes/kubernetes/issues/76956, apiserver和controller-manager每次start的时候会刷下面信息。不影响使用,但是有强迫症可以按照本文思路手动修改。当然本文也是自己编译k8s的教程123456E0423 17:35:58.491576 1 prometheus.go:138] failed to register depth metric admission_quota_controller: duplicate metrics collector reg...
/boot目录被清空下物理机无法开机的一次救援
        今天下午到公司被通知苏州一个节点的客户的裸金属无法开机,14:00上去到16:50终于给整好了,这里记录下笔记分享下 故障现象物理机裸金属,连上跳板机通过带外连上去(等同于现场接了一个显示屏+键盘一样)错误为1234.errorL file `/grub2/i386-pc/normal.mod' not found.Entering rescue mode...grub rescue>        &nbs...
ansible数量限制上的幂等性
由来准备写上一篇文章的consul成ansible,在证书方面,cli和ca需要执行一次生成,而server和agent证书需要多次执行产生。另外我们也要考虑,dc1-server-consul-0*.pem需要拷贝到机器1,1拷贝到机器2.如何在生成证书的时候中断后再次运行也会达到目标的数量来实现幂等性,而不是证书生成多了另外证书还得按照index去拷贝到指定机器,也就是类似下面的123scp 001.pem ip1:/etc/xxxscp 002.pem ip2:/etc/xxxscp 003.pem ip3:/etc/xxx 场景1 – tls的幂等性规划这里我是三台server1...
高可用的SSL consul cluster实践
同事dnsmasq + consul 整服务自动发现,但是不是tls且consul server是单点,而且进程启动用的nohub而不是systemd,这里查了下资料实践了下 部署过程已经写成了ansible,地址 https://github.com/zhangguanzhang/consul-tls-ansible 开了五台云主机,总体规划为下面,角色那有条件的可以分开,例如client单独一台。不分开的话得配置client的端口和server的分开,自己去探索 IP Hostname CPU Memory role nodeName 172.19.0.3 consul...
修改源码更改prometheus的时区问题
先说明一点,时区UTC不影响prometheus和grafana,这篇文章只是提供一个修改的思路和步骤 日志时区修改代码分析先起最新的prometheus挂载时区文件1234567docker run --net host -v /etc/localtime:/etc/localtime prom/prometheuslevel=info ts=2019-09-05T09:44:40.409Z caller=main.go:293 msg="no time or size retention was set so using the default time retention...