零基础手动搭建 k8s 那点事


起步

这是我第二次手动搭建 k8s 了,相较于第一次用掉一天时间,这次花费半天。当然,这其中倒不全是 k8s 的问题。是网络。而网络又是一个很大的概括,更细分则是:k8s 需要的镜像国内拉取不下来;需要的 yaml 文件下载不下来;B 电脑里的虚拟机的端口在 A 电脑上访问不到。

事实上我遇到的问题可以通过代理和 virtual box 的端口映射解决,但我没有。我很庆幸,这个“没有”让我明明才接触 k8s,却学到了一些故障排查方式,以及对 yaml 文件的部分 key 值有所了解,还学到了 ssh 端口转发。赚大发了。


为何而写


罗翔:这个世界并不美好,所以美好是值得我们去追求的。

中午吃饭的时候跟同事谈到了流量转换,继而谈到了 stormzhang。最后我说,我写博客是受到了 stormzhang 的影响。


State 状态模式


起步

状态模式属于行为型,旨在解决“反复出现”的设计问题。

“反复出现”你可以理解为一类状态会在程序运行过程中反复出现。并且,在不同状态下,状态持有者会表现出不同的行为。


索引下 update 只锁住符合条件的记录吗?


起步

我着手一个需要高并发 update 的功能,进行压测时,发现了大量锁超时。于是所有矛头就指向我了,认为我做任务分发时重复分发了两个或两个以上相同的子任务。

这一假设基于现有的子任务 update 范围,已知更新语句走索引 c,则有:子任务 A 更新 c=[1,10] ;子任务 B 更新 c=[11,20] ... 子任务 N 更新 c=[n-9, n]。所以同事认为,只有可能会出现相同的 A 任务(B、C ... N 都行),才可能引发锁超时。

假设同事是正确的,那就意味着 update 只锁主符合条件的记录。但果真如此吗?