非常非常抱歉,新年上班第一天, 在今天阿里云上气候突变情况下,由于我们开船技术差,在今天 10:15~12:00 左右的访问高峰,我们竟然把船给开翻了,造成近2个小时整个博客站点无法访问,由此给您带来很大很大的麻烦,恳请您的谅解。
翻船经过如下。
翻墙前的船只情况
博客站点正在使用的 k8s 集群一共用了 9 台 worker 节点服务器,在访问低峰时用 5 台,另外 4 台处于关机状态,在进入访问高峰前启动。所以我们用 cron 定时任务在工作日每天早上启动 4 台服务器,每天晚上关闭 4 台服务器。为了节约成本,这 4 台服务器用的是阿里云抢占式实例,由此带来的风险是如果启动时当前可用区对应的实例库存不足,就会启动失败。
还有一个正在搭建中的高可用 k8 集群,运行着 1 台 master 与 1 台 worker 节点,另外 2 台 master 与 1 台 worker 处于关机状态。
在 k8s 集群之前使用的 docker swarm 集群处于待弃用状态,运行着 1 台 manager 与 1 台 worker 节点,其他节点都处于关机状态,用的也是阿里云抢占式实例。
风云突变,船只颠簸
今天新年上班第一天,阿里云上生意非常火爆,我们的服务器所在可用区的所有4核8G的抢占式实例全部售罄,造成定时启动 k8s 集群节点服务器的任务全部失败,仅有的 5 台服务器在访问高峰不堪重负,开始出现 502 ,当我们发现后,尝试通过阿里云 ecs 控制台启动这些服务器,但依然因库存不足而无法启动。
操作有错误发生: i-bp10c3nww9y26s9yppcq : 库存不足,请您尝试其它类型的实例规格 或者 其它可用区/地域的实例。您可以选择变配到其他规格,然后启动。更改实例规格 RequestId: 86752D85-39F0-4FEC-875B-80A3269D0B23