我想将我的编织网络从 2.5.0 版升级到 2.5.2 版。我知道这就像更新编织守护程序集一样"简单"......但是,我想知道是否有一种方法可以在对系统上运行的 Pod 造成最小干扰的情况下完成此操作。
我想到一个简单的例子是:
- 警戒线节点1
- 排出所有 Pod 的节点 1
- 节点 1 上的更新编织
- 取消警戒线节点1
。然后冲洗并重复每个 K8s 节点,直到全部完成。
基于编织网文档
升级守护程序集
DaemonSet 定义指定了滚动更新,因此当您应用新版本时,Kubernetes 将自动逐个重新启动 Weave Net Pod。
使用滚动更新更新策略,在更新守护程序集模板后,旧的守护程序集 Pod 将被终止,新的守护程序集 Pod 将以受控方式自动创建。
正如我可以在另一个堆栈溢出答案中读到的那样
从今天开始,可以使用DeamonSet在不停机的情况下执行滚动更新!您需要在集群上运行至少 2 个节点,并在守护程序集配置中将 maxUnavailable 设置为 1。
假设以前的配置,当推送更新时,第一个节点将开始更新。第二个将等到第一个完成。成功后,第二个也会这样做。
主要缺点是您需要保持 2 个节点连续运行或在更新之前/之后采取措施生成/终止节点。
因此,我认为升级CNI插件的最佳选择是使用具有滚动更新的DaemonSet,并在DaemonSet配置中将maxUnavailable设置为1。