为了充分利用Kubernetes原生管理容器化应用的能力,CoreOS更新了自家的Kubernetes商业发行版Tectonic,增加了无停机更新的功能。 CoreOS的CTOBrandon Philips在本周纽约举办的Tectonic Summit的keynote中提到:“我们现在已经做到使用完全相同的APIs和函数监控Kubernetes和applications。我们把所有的功能集成到Tectonic控制台钩子函数中,你只需要点击一下按钮就可以完成部署。” Philis还提到,“目前为止,Tectonic和Kubernetes的安装过程繁琐到令人抓狂。本质上是因为,人们不得不手动去更新整个分布式系统。” “人们ssh登录到每个节点上人工修改文件,或者至少写个脚本来执行这些任务。和管理Kubernetes应用相比这些操作需要一系列技能。” 一篇CoreOS博文(https://coreos.com/blog/rkt-and-kubernetes.html)在谈到自我管理能力时指出,“事实上,掌握kubectl和相关工具来管理Kubernetes应该转换为,将如何安装Kubernetes并保证它运行放在第一位。” “这就是为什么我们非常努力地投入到上游代码,实现了Kubernetes自我管理的功能。”Philips讲到。 Philips把自我管理的能力类比为Linus Torvalds使用Linux来编译新版本的Linux。Linus Torvalds使用minix平台编译第一个Linux版本。但是Linux稳定之后,Linus就把编译器移植到稳定的Linux上,来编译新的Linux。 Kubernetes自己可以保证,某个pod故障后,它会运行一个新的pod来替代挂掉的。在这次新的Tectonic版本中,被启动的不再是新的pod,而是新版本的Kubernetes,它被打包到一组pods中。这里Tectonic利用了Kubernetes新的安装工具:kubeadm。 Kubernetes的典型升级中,与工作节点相比,所有的控制节点是优先升级的理想节点。Tectonic升级时,会在控制节点为新版本保留空间。一旦新版本运行起来,Jobs会从每个旧组件过渡到对应的新组件,直到更新完成。下面的视频介绍了Kubernetes自我更新的过程。 |