Sunday, August 13 2023

apisix-dashboard etcd 踩坑记

想用apisix做网关,先在测试环境开搞。

首先需要一套etcd,为了方便就用helm起了一套,顺便启用了tls,结果helm装apisix时遇到问题,etcd居然连不上,似乎证书认证支持有问题 ref1, ref2,只好先设置不检查证书(verify: false)。

接下来是apisix-dashboard,也连不上etcd,毕竟helm配置里都没有tls相关设置,但是软件本身是支持的,索性自己增加了tls配置,发现还是连不上,证书校验不过,想着也不检查证书吧,可惜软件还没支持,回头看下helm装的etcd是自动生成的自签证书,CN是固定的,只好用cfssl重新签了一套证书,把svc会用到的域名都写进去了,这下终于好了。

等到要上线的时候,想着就不自建etcd吧,腾讯云有提供etcd服务,直接买了,这下又坑了,默认的证书只有vip在SAN里,apisix还好可以不检查证书,但是dashboard又过不去了,这2个软件连etcd的行为不一样,前者只连vip,后者还会获取etcd节点信息然后全部都要连,只有vip在SAN里,那肯定通不过校验啊。

行吧,退掉重新买,这次记得填上了域名信息,以为用域名来连就万事大吉了。结果仍然是打脸了,vip连接没问题,各个节点连接居然还是一样的报错:

{"level":"warn","ts":"2023-07-26T10:55:32.904Z","logger":"etcd-client","caller":"[email protected]/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc00047ce00/10.0.1.95:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: authentication handshake failed: x509: certificate is valid for 10.0.1.95, not 10.0.1.145""}

这啥玩意啊,明明用的域名为啥还要拿IP去验证?看来dashboard连etcd节点并没有用域名啊,手工list member 看下,确实节点广播的都是IP地址。。。可是节点的证书SAN里只有vip和域名,可咋整?

又不想自建etcd,购买的也不支持自定义证书,想来想去,得让dashboard连节点时带上域名信息应该就可以通过证书检查了。

Go语言我不会啊,赶紧咨询ChatGPT,立即就给出了带域名的方法,说干就干,一通魔改,重新编译后替换二进制文件,哈哈,成功了!

顺便想起来到社区搜了一下,也有人遇到这个问题,但是始终没有修复,既然耗费我这么多时间,那就顺手提一个PR吧,希望可以帮到有缘人。

Thursday, March 9 2023

maven构建加速

研发同学希望加速构建过程以便更快的部署测试,并找来了官方软件 mvnd,直接用mvnd替换mvn命令即可,提速很明显,平均约30%,模块越多,提速越多。 下面是当前用的配置,为了稳定常驻后台,避免jenkins job跑完就退出,宿主机弄了定时任务,并发跑三个构建(空项目,就一个pom,内含sleep插件)就会启动好三个mvnd在后台待命。 mvnd.logPurgePeriod = 7d mvnd.idleTimeout = 6 hours mvnd.threads = 16 mvnd.minHeapSize = 1G mvnd.maxHeapSize = 3G  […]

Continue reading

Sunday, January 8 2023

K8S的探针和优雅关机问题

最近折腾起K8S来,顺便整理下遇到的问题。 首先是探针问题,早期版本只有存活探针(liveness probe)和就绪探针(readiness probe),这两个探针没有依赖关系,是同时开始探测的。我总想不明白,程序存活检测都没通过,为啥要浪费时间做就绪检查?等到新版本支持第三个探针:启动探针(startup probe),总算是没毛病了。  […]

Continue reading

Monday, May 2 2022

冲牙器杀手

很奇怪,不久前还用了一次,它就莫名其妙的坏了。 装好水,按开关没反应,灯是亮的,马达悄无声息。 想来想去,也没有不爱惜啊,这也罢工的太突然了。 中午吃的太渣了,很想冲一下,这下可好。 也许是没电了吧,放到充电座上,嗯?充电指示灯不亮了。 有些意外,以前没电的话会闪烁的,这回完全不亮,算了,充一晚上再说。 早上起来第一件事就是打开冲牙器,很遗憾,没用。 看来是真的坏了。 翻出说明书,只保修一年,早过了。 可牙缝里的渣滓还在提醒我,要冲啊,火速下单。 哎,这疫情期间等个快递是真心焦。 好在物流没有中断,拿到后畅快一冲,哈哈哈。。 但,没用几次,新家伙也罢工了,一样的是马达悄无声息。  […]

Continue reading

Wednesday, April 13 2022

遍插茱萸少一人

因为疫情过年不能回家,一个小学同学联系到我,发过来一张“我们”的小学毕业照。 嗯,非常诡异,里面竟然没有我,可能拍照那天我请假了吧。 当我们一一回忆起相片中每个人的名字时,不禁悲伤的发现有人已经不在了。 《寻梦环游记》里说只有世上没人记得你,你才会真正消失不见。 不知是否来得及,我要记一记。  […]

Continue reading

Wednesday, December 23 2020

终于还是戴上眼镜了

撑不下去了。 最近眼睛疲劳的好快,开始以为是没睡好,或者用眼过度,直到我戴上人生第一副眼镜,过份清晰了啊!一整天眼睛都不累! 其实以前我说看远处的字会重影,就有人告诉我是散光,但我以为散光并非近视,没有考虑去配眼镜,谁知道这散光都是近视给害的越来越深。 为啥不想去配眼镜,除了麻烦,还有一个传统迷思,觉得戴上眼镜后,度数会越来越深,身边这种例子很多。早在刚上高中的时候,宿舍同学借了一副大概100度的眼镜给我也试了下,看远处确实更清晰,他就下结论说我近视了,该配眼镜,我不屑一顾,后来同学他配了,然后涨到600度。现在知道这迷思是错误的,会不会加深在于用眼习惯是否纠正了。  […]

Continue reading

Saturday, March 21 2020

KVM云主机高负载之二

一个上线不久,没什么访问量的网站,突然收到用户反馈说页面经常打不开,或者能打开,但是要等十几秒,卡顿非常严重,几乎无法正常使用了,自己人测试下也是相同的表现,看来问题在服务端,排除了网络影响后,就是后端有什么问题了,奇怪的是,并没有任何指标报警啊,服务器一切正常,研发表示也没有啥特别改动,程序日志也很正常。  […]

Continue reading

Sunday, March 15 2020

捡到一次PHP性能提升的机会

PHP的程序并发稍微高一点就慢的不行,sys 消耗出奇的高,除了太慢被切换,平时 strace 总能发现php进程疯狂的stat文件,之前查的不是性能问题,就没有深究。 如果正在使用 open_basedir ,那么好消息,一次性能提升的机会来了;最近考虑升级到7.4,性能可能会好点,结果在更新配置文件的时候突然发现 open_basedir 有一行提示:Note: disables the realpath cache, 天!难怪stat这么多,搜索一通,找到 Bug #52312 ,没想到的是,这个禁用从5.2时代就开始了,但是这个禁用的提示到7.2才写出来,坑人! 禁用的原因是安全问题  […]

Continue reading

- page 1 of 35