zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

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已...
为什么我不用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 tcp :1608...
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, err ...
uefi模式下docker+交换机部署pxe批量安装
        华三服务器的ipmi的web提供了nfs挂载iso去安装,也是我之前使用的,发现研发给的镜像在4g以上(镜像基于centos7.3改的,我之前测试都是用的minimal镜像890M左右)。安装的时候报错,然后当面测试得出结论nfs的网速原因,其次也是我们这边办公网是百兆。。。        办公网被it接管了,交换机密码不给,自己找了台5130交换机,下面接服务器和我自己电脑搭建测了下定制iso的pxe流程 这是组...
拟定excel表格服务器自动按照表格配置信息和安装的实现过程
修改镜像以及编程实现了从服务器买来上电就会自动化安装指定ip和hostname的步骤(包含了自动做raid),全程非交互         先讲讲事情的由来,新节点建设,几百台服务器得人为安装系统,虽说服务器有带外ipmi,但是raid和安装系统时候hostname和ip啥的得去配置。系统镜像还是修改过的,安装界面的菜单自动应答通用的流程还不行,于是决定看看能不能研究出来。        想要达到的一个效果就是:服务器送货到节点后,...
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...
golang cobra的一些笔记
这几天稍微写了下cobra,网上搜到的博客分为两类,一类是把官方的readme翻译一下完事的,一类是写的都太简单了没有实际常见场景的。这里不废话了,先用官方demo讲解下 Cobra介绍是一个golang的库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。热门的docker和k8s源码中都使用了CobraCobra 结构由三部分组成:命令( Command )、标志( Flag )、参数( Args )。1234567type Command struct { Use ...
闲谈线上俩k8s环境同等limits下pod启动时间不一样解决过程
        线上用的k8s版本是1.6.7非常老,而且HA有问题,上个月研发想把里面的一些服务迁出来到一个新集群里,新集群的搭建是我负责的。上周开始陆陆续续的迁移过来了,但是同等limit下部分pod在测试环境上(测试环境和老环境部署是一样的,下文的老环境和测试环境可以理解为一样)启动非常快,在我搭建的新k8s环境上启动非常慢,研发他们应用都是java+springboot,这里不谈jvm无法识别cgroup,已经加选项识别到了还有那个随机熵的选项肯定也是加了的。   &nb...
一次kube-controller-manager的bug导致的线上无法调度处理过程
线上的k8s环境普遍版本很低,今天同事心血来潮去一个新节点上去看了下发现根分区满了,清理了后发有一个pod没有创建出来。清理后把因为文件系统满了而down掉的k8s相关进程起来后发现kubelet的log一直报错cannot remove /var/lib/kubelet/xxxxconfig/key resource busy now 啥的。查看了下describe对应rc还没有任何Event1234567891011121314151617181920212223242526272829303132333435363738$ kubectl describe rc rabbit3rc...