Skip to content

Latest commit

 

History

History

0501_upgrade_k8s

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

从k8s 1.8 升级到1.16经验总结

背景

我们的业务需要

k8s社区的高速发展但是还是不是很成熟,对于不是特别技术驱动的时候公司,很难做到每次跟着社区升级

官网推荐升级策略

....

但是对于我们的业务来说,这么做真的有点难度,并且收益并不高。

升级方案

请参考的我的另一篇文章:编译k8s✅ 请参考的我的另一篇文章:k8s如何重启容器 请参考的我的另一篇文章:k8s的POD的声明周期

升级步骤

https://www.cnblogs.com/gaorong/p/11266629.html

其他踩过的坑

  • kube-proxy的模式互相切换之前,要先清空所有的规则。
  • 升级etcd会导致flannled的链接失效
  • 回滚之后kubelet不能上报节点状态
  • ETCD的回滚

总结

我们团队经过一周多的调研加确定方案,然后经过经过公司评审之后,对同事提出的问题进行验证分析风险,再经过一周的集中测试时间,产出手动升级+回滚的步骤,以及可行性验证方案。最后经过不到两周的时间通过ansible进行升级回滚自动化。

上述表达了XXXX。

  1. 确定升级到哪个版本:从老板(产品稳定性)的层面不要从开发者的角度分析为什么要升级到这个版本,收益利弊分析到位
  2. 仔细阅读从当前版本到目标版本的CHANGELOG: 主要查看升级注意事项(Urgent Upgrade Notes)和不推荐使用的(Deprecations)
  3. 部署目标版本k8s来跑服务:看看上一步有没有总结不到位的时候,如果服务直接部署起来,那就为升级后能部署起来来确定信息
  4. 确定方案:根据业务的需求
  5. 测试验证:
  6. 【可选】自动化升级
  7. 上线