我们在GKE上有一个相当大的kubernetes部署,我们希望通过启用自动升级来让我们的生活更轻松一些。 documentation on the topic告诉你如何启用它,但不知道它是如何工作的。
我们在测试集群上启用了该功能,但是没有升级任何节点(尽管用户界面一直在唠叨“升级可用”)。
文档称它将更新为“最新稳定版”,并且“由GKE团队自行决定定期” - 两者都不是非常有用。
用户界面总是说:“下一次自动升级:未安排”
是否有人在制作过程中使用过这个功能,并且可以了解它实际上会做些什么?
1.11.7-gke.3
1.11.5-gke.X
1.11.7-gke.6
1.11.7-gke.3
(默认群集版本)或1.11.7-gke.6
(最新版本)1.11.5-gke.X
上停留了一个多星期我终于自己回答了这个问题。自动升级确实有效,但在版本升级之前需要几天到一周的时间。
没有指示计划的升级日期或除版本更新之外的任何反馈。
它将升级到群集的当前主版本。
此功能将运行“旧”Kubernetes版本的节点池中的VM(Kubernetes节点)替换为运行“新”版本的VM。
节点池“升级”操作以滚动方式完成:它不像GKE删除所有VM并同时重新创建它们(除非您的群集中只有1个节点)。默认情况下,节点将逐个替换为较新的节点(尽管这可能会更改)。
GKE内部主要使用managed instance groups的功能来管理节点池上的操作。
您可以通过指定某些“维护窗口”找到有关how to schedule node upgrades的文档,这样您就会受到最低限度的影响。 (本文还提供了有关升级如何发生的更多见解。)
也就是说,您可以手动禁用自动升级并升级群集(尽管不建议这样做)。一些GKE用户拥有数千个节点,因此对于他们来说,逐个升级VM是不可行的。
为此,GKE提供了一个选项,允许您选择“一次升级多少个节点”:
gcloud container clusters upgrade \
--concurrent-node-count=CONCURRENT_NODE_COUNT
该标志的文档说:
并发升级的节点数。有效值为[1,20]。建议的最佳做法是将此值设置为不超过群集大小的3%。