如何实现 k3s 主程序自动更新

很久没更新这个系列的文章了,想来按照之前教程部署的集群也都到了该升级的时候,今天我们来探讨下如何升级k3s集群。

除了手动更新二进制文件外,我们还可以使用 System Upgrade Controller 升级k3s,它通过执行以下操作来做到这一点:

  • 将k3s二进制文件替换为新版本
  • 取消旧的k3s进程,允许管理员使用新版本重新启动k3s

首先,将 System Upgrade Controller 部署到k3s集群

kubectl delete -f https://raw.githubusercontent.com/rancher/system-upgrade-controller/master/manifests/system-upgrade-controller.yaml

然后,标记要升级的节点

kubectl label node <node-name> k3s-upgrade=true

请注意将 <node-name> 替换为节点名

最后,运行升级计划

cat <<EOF | kubectl apply -f -
apiVersion: upgrade.cattle.io/v1
kind: Plan
metadata:
  name: k3s-latest
  namespace: system-upgrade
spec:
  concurrency: 1
  channel: https://github.com/rancher/k3os/releases/latest
  nodeSelector:
    matchExpressions:
      - {key: k3s-upgrade, operator: Exists}
  serviceAccountName: system-upgrade
  drain:
    force: true
  upgrade:
    image: rancher/k3s-upgrade
EOF

​concurrency ​字段表示可以同时升级多少个节点

文章作者: 若海; 原文链接: https://www.rehiy.com/post/497/; 转载需声明来自技术写真 - 若海

添加新评论