如何实现 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
字段表示可以同时升级多少个节点