Archive: 2017

一个隐藏在黑客迷雾下的bug——记一次黑客攻防

前言细细回想这几周经历的问题以及过程,还是真是挺有趣的,迫不及待地希望整理一下总结给各位看官。关于文章的标题,如何既能吸引读者,又能避免标题党的嫌疑,着实让我斟酌了一番,后来就定了在坐看到的这个版本,个人觉得没毛病~ 让我们进入正题

记一次kubernetes网络调试

背景过了年leetcode的用户量渐渐起来了,1台服务器已经有点吃力,当高峰的时候经常有些请求超时。而且为了防止服务器的单点问题,需要部署多个replica以保证高可用性。之前的架构已经是在kubernetes集群上了,因此扩容相对而言比较容易。整个webserver的架构如下图所示:

在kubernetes中配置skydns

背景kubernetes中的集群发现有两种方式,一种是环境变量,还有一种就是dns服务。对于环境变量,在使用上有一些限制,它依赖于svc和rc的启动顺序: 如果rc先于svc启动,那么pod里面就没有相关svc的环境变量,这种方式违背了kubernetes的理念,即资源之间是解耦的。推荐的方式是使用dns的服务,这篇文章主要关于部署skydns的过程以及其中遇到的问题和采用的方式。

手动在kubernetes集群中添加minon

背景去年年中我使用ansible给项目部署了一个小型的kubernetes集群,部署源码可以在这里找到:contrib。随着业务的发展,目前的集群规模很有可能在明年迎来瓶颈,因此需要 扩容.当然可以继续通过之前的contrib去部署,不过有几点担忧: 目前的系统稳定地提供着服务,ansible脚本可能会对集群产生不可逆的影响 对于contrib的代码不是特别熟悉,不清楚它具体做了哪些步骤,总体来说还是不放心 同时,作为一个system admin,对于集群必须了如指掌才行。因此,在这里做一次演练,手动为已有集群添加节点,增进了解,也为今年的扩容做好准备工作。