2015-09-03 16 views
7

随着新版本的发布,升级kubernetes集群的推荐方式是什么?随着新版本的发布,推荐升级kubernetes集群的方式是什么?

听说here它可能是https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-push.sh。如果是这种情况,kube-push.sh如何与https://github.com/GoogleCloudPlatform/kubernetes/blob/master/cluster/gce/upgrade.sh相关?

我也听说here我们应该创建一个新的群集,将第一个群集中的pod,复制控制器和服务复制/移动到新的群集,然后关闭第一个群集。

我在aws上运行我的集群,如果这是相关的。

回答

8

您引用(GCE/upgrade.sh)第二个脚本,如果你的集群上运行GCE只适用。目前还没有AWS的等价脚本,但您可以查看脚本并按照步骤操作(或将它们写入脚本)以获得相同的行为。

upgrade.sh和kube-push.sh之间的主要区别在于前者执行替换升级(删除节点,创建新节点以替换它),而后者执行“就地”升级。

如果持久数据(etcd数据库,服务器证书,授权承载令牌等)驻留在与主服务器的引导磁盘分开的永久磁盘上,则只有在删除和替换主节点时才有效(这是如何配置的GCE默认)。 AWS上的移除和替换节点应该没问题(但请记住,不在复制控制器下的任何Pod将不会重新启动)。

做一个in-place升级不需要任何特殊的配置,但代码路径并不像删除尽可能彻底的测试和替换选项。

升级到新版本时,您不应该完全替换您的群集,除非您使用的预发布版本(例如alpha或beta版本)有时可能会在它们之间发生重大变化。

+0

非常好,谢谢! –

+0

看起来像'kube-push.sh'已损坏,[不太可能得到修复](https://github.com/kubernetes/kubernetes/issues/17397)。所以推荐的方法是使用'upgrade.sh'。 –

+0

@MthethewStrawbridge - 那是真的。作为Cluster API努力的一部分,我们正在调查再次进行就地升级。 –

相关问题