zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

[长期更新]--应大多数人要求写下kubeadm的基础使用
市面上很多kubeadm的文章都是错误示范或者不够详细,大多数都没写系统设置之类的就直接kubeadm init导致很多跟着做的人会报错 我期望看到本文的读者最少具备以下知识: Linux一些目录规范和systemd 学过一点docker 懂dns和/etc/hosts、curl互相结合来测试一些web的接口响应状态 不要求github有自己项目,至少会浏览github 本教学将以下列节点数与规格来进行部署Kubernetes集群,系统CentOS 7.6+,有条件7.8,不要使用centos7.4以及一下,容器技术依赖于内核技术,低版本系统部署和运行后问题会非常...
consul仅当服务发现在k8s无状态部署使用
由来consul server 在机器上的部署已经写完了,但是dba还是希望部署在 k8s 上,昨天搜了下相关文章扣出来部分步骤自己验证实现了。先说下需求,三台物理机单独跑 mysql 主从 mha,利用 consul client 的服务注册+ttl向 consul server 注册成域名,然后配置 k8s 内部的 coredns 把域名*.service.consul转发到 consul server。架构为下图 123456789101112131415161718Physical server +---------------------+ ...
手动修复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 re...
/boot目录被清空下物理机无法开机的一次救援
今天下午到公司被通知苏州一个节点的客户的裸金属无法开机,14:00上去到16:50终于给整好了,这里记录下笔记分享下 故障现象物理机裸金属,连上跳板机通过带外连上去(等同于现场接了一个显示屏+键盘一样)错误为 1234.errorL file `/grub2/i386-pc/normal.mod' not found.Entering rescue mode...grub rescue> 这个物理机是grub2,这个错误和类似的/grub/i386-pc/normal.mod本质上都是文件丢失,但是也分情况,网上的一些恢复步骤都是在丢失部分文件的情况下恢复的查看分区 1...
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的幂等性规划这里我是三台server...
高可用的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...
修改源码更改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 retentio...
gobot控制esp8266
材料gobot官网是Arduino的demo,官网上看了下支持esp8266,整好之前整wifi攻击器的时候有就玩了下。我是在windows编译的,没有8266的话自己去淘宝上一块儿node-mcu+数据线(本质上就是个带串口和排针的esp8266-12,买驱动是CH340G的,就是usb口旁边有个长条形ic,方的是cp2102不稳定会导致windows蓝屏) 环境搭建用goland写代码,不推荐vscode写golang,自行安装golang(记得设置好环境变量)和goland,现在golang最新版本是12.9整个demo分为两部分,客户端gobot去设置和控制esp8266,826...
ubuntu preseed无人应答安装
之前的centos自动安装整得差不多了,今天有空研究下ubuntu的自动应答安装,过程是按照我遇到的问题的时间线的角度来描述,并不是总结后正确的开始姿势。kickstart是red hat开发的。ubuntu的安装界面是一个debian-installer的二进制文件进程运行tty1提供的选择交互安装界面: ubuntu自带的应答是preseed,相关文档页面是 https://help.ubuntu.com/lts/installation-guide/amd64/apb.html实际上安装完成后我们可以安装debconf-utils后使用debconf-get-selections ...
golang headless browser包chromedp初探
什么是cdp前天晚上想写个网站自动投稿,但是 chrome F12 抓的包里请求的几个参数里的值不知道 js 咋生成的,看不懂 js。询问了下网友,网友看我截图请求蛮多的,说有空帮我看看。并且他说到了模拟过程虽然能成功但是可能反爬措施强会导致封号,建议我用无头浏览器整。搜了下相关概念,无头浏览器的话 python 里就是 selenium驱动的,广泛使用的 headless browser 解决方案 PhantomJS 已经宣布不再继续维护,转而推荐使用 headless chrome。Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的 gui 前...
为什么我不用nodePort之偶然中奖几率
嗯,1.6.7 的老集群。早上反应数据库实例创建不出来。发现接口 port 的 tcp 不可达,查看 kube-proxy 的日志如下 123456[root@HB1-xxxxx-S03 kubernetes]# tailf kube-proxy.INFO E0708 09:44:03.437284 394350 proxier.go:1062] can't open "nodePort for cloudify/cloudae-cfy-nginx:port1" (:16081/tcp), skipping this nodePort: listen t...
golang的net/http包的客户端简单科普
之前准备写个简单的 api 的调用,百度和问了很多人后发现基本对于 http 的客户端熟悉的人非常少。或者对包的不了解自己造了效率很低的轮子,而且官方一些包里有坑,被坑过,这里简单科普下 简单的get和posthttp 包里下列可以直接使用的请求方法 1234func Head(url string) (resp *Response, err error)func Get(url string) (resp *Response, err error)func Post(url string, bodyType string, body io.Reader) (resp *Response...
uefi模式下docker+交换机部署pxe批量安装
华三服务器的 ipmi 的 web 提供了 nfs 挂载 iso 去安装,也是我之前使用的,发现研发给的镜像在4g以上(镜像基于centos7.3改的,我之前测试都是用的minimal镜像890M左右)。安装的时候报错,然后当面测试得出结论 nfs 的网速原因,其次也是我们这边办公网是百兆。。。办公网被 it 接管了,交换机密码不给,自己找了台 5130 交换机,下面接服务器和我自己电脑搭建测了下定制iso的pxe流程 这是组网情况 123456789101112131415 10.96.4.1/24 +------------+ ...
拟定excel表格服务器自动按照表格配置信息和安装的实现过程
修改镜像以及编程实现了从服务器买来上电就会自动化安装指定 ip 和 hostname 的步骤(包含了自动做raid),全程非交互 先讲讲事情的由来,新节点建设,几百台服务器得人为安装系统,虽说服务器有带外 ipmi,但是 raid 和安装系统时候 hostname 和ip啥的得去配置。系统镜像还是修改过的,安装界面的菜单自动应答通用的流程还不行,于是决定看看能不能研究出来。想要达到的一个效果就是:服务器送货到节点后,一个人带着电脑和设备的标签,高主频高io啥的分类好后贴上标签,按照贴的写一个所有设备应该配置的信息的excel: 123hostname 序列号 IPM...
SMASH CLP的一些笔记
https://support.hpe.com/hpsc/doc/public/display?docId=c03334058https://www.golinuxhub.com/2018/02/hp-ilo4--cli-guide-cheatsheet-example.htmlhttps://h50146.www5.hpe.com/lib/products/software/oe/linux/mainstream/support/doc/general/mgmt/hponcfg/lights-out1.70guide.pdfhttps://server-recycling.nl/ima...