02.27 博客园全站应用K8S化里程碑

博客园全站应用K8S化里程碑

博客园全站K8S化


本文源自博客园官方博客的博文《K8S开船记-全站登船K8S》

1 全站登船K8S

2月23日 18:30 左右,博客园迈出了 kubernetes 航行的关键一步——全站登船,完成了全站应用部署从 docker swarm 集群向 k8s 集群的切换,以前所未有的决心与信心重新开起这艘巨轮,而这次航行能否成功就看明天2月24日的访问高峰时狂风巨浪下的表现。

部署在 k8s 上的应用会在页脚显示下面的信息,如果航行失败,"Kubernetes" 会变成 "Linux" 。

<code>Powered by .NET Core on Kubernetes/<code>

你可以看到,现在博客园的底部已经是.NET Core on Kubernetes了:

博客园全站应用K8S化里程碑

博客园底部的标识


博客园的Kubernetes 集群部署情况如下:

  • 3台2核4G阿里云服务器作为 master 搭建了高可用集群
  • 12台4核8G阿里云服务器作为worker 节点

后续博客园会根据负载情况看是否需要加服务器。


Kuberneres 网络插件使用的是 calico

DNS 服务器使用的是 coredns ,由于之前遭遇过因为 dns 解析问题造成翻船,这次部署了 nodelocaldns 在每个节点进行本机 dns 缓存。

Ingress Controller 使用的是 kubernetes 社区维护的 kubernetes/ingress-nginx,还有一个 nginx 公司与社区共同维护的 nginxinc/kubernetes-ingress,我们推荐使用前者kuberntes/ingress-nginx

博客站点的部署采用了

HPA (Horizontal Pod Autoscaler) ,基于 CPU 与 QPS 监控指标进行自动伸缩,监控指标数据来自 Prometheus

部署工具用的是 Helm ,Helm 强大的模板引擎让我们可以用一个模板搞定 90% 以上应用的部署。

目前一共部署了 115 个应用 pod56 个应用 service


2 更新记录

2月24日 11:06~11:10 左右,博客后台出现 502 ,原因是运行中的博客后台 pod 健康检查失败,重新启动的 pod 也健康检查失败,博客后台暂时切换到 docker swarm 。

博客园全站应用K8S化里程碑

博客后台回滚回docker swarm版本


3 我的读后感

博客园作为中国最大的技术社区之一,也是我们.NET开发人员最主要的聚集地(当然博客园可不止有.NET开发技术),它的一举一动(技术升级)都会引起我们的巨大关注。此前,博客园使用Docker Swarm进行容器编排出现了很多问题,也被广大园友建议使用K8S。现在,博客园终于慢慢地将所有应用都上了K8S这艘巨轮,目测将会驶向K8S应用的深海,会出现什么问题我不知道,但是肯定会踩很多坑。不过,我觉得这是好事,正所谓鲁迅先生所说“世上本无路,走的人多了便有了路”,博客园是在为中国的.NET开发者及使用.NET技术的企业开路,在此我也希望博客园能够分享更多的踩坑经验给广大的.NET开发者!(这里抛开博客园之前在生产环境进行压测的一些问题来说,因为这种做法的确有待商榷。)


博客园全站应用K8S化里程碑

专栏:EdisonTalk(爱迪生说)

本文整理者EdisonZhou,架构师,阿里云MVP,博客园"推荐博客"博主(Top10),Scrum联盟认证CSM,.NET Core实践者与布道师,爱好阅读与分享。

欢迎关注EdisonZhou的公众号“恰童鞋骚年”,第一时间获得更多内容分享。


分享到:


相關文章: