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

What is the recommended way to upgrade a kubernetes cluster as new versions are released?

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

听说 it may be https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-push.sh. If that is the case how does kube-push.sh relate to https://github.com/GoogleCloudPlatform/kubernetes/blob/master/cluster/gce/upgrade.sh?

我还听说 我们应该创建一个新集群,copy/move pods,复制控制器,以及从第一个集群到新集群的服务然后关闭第一个集群。

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

您引用的第二个脚本 (gce/upgrade.sh) 仅当您的集群在 GCE 上为 运行 时才有效。目前还没有适用于 AWS 的等效脚本,但您可以查看脚本并按照步骤(或将它们写入脚本)来获得相同的行为。

upgrade.sh 和 kube-push.sh 的主要区别在于前者进行替换升级(删除节点,创建新节点来替换它),而后者进行 "in place"升级。

仅当持久数据(etcd 数据库、服务器证书、授权持有者令牌等)驻留在与主节点引导磁盘分开的永久磁盘上时,删除和替换主节点才有效(这是它的配置方式默认情况下在 GCE 中)。在 AWS 上删除和替换节点应该没问题(但请记住,任何不在复制控制器下的 pods 都不会重新启动)。

进行就地升级不需要任何特殊配置,但该代码路径没有像删除和替换选项那样经过全面测试。

升级到新版本时,您不需要完全替换您的集群,除非您使用的是预发布版本(例如 alpha 或 beta 版本),它们之间有时可能会有重大更改。