Kubernetes 领进门 | 实现 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 ​字段表示可以同时升级多少个节点

  • k3s
  • kubernetes

6 评论

鹰瑶 回复

很久前码的一小段代码,偶然翻出来了。带注释分享一下,仅供大家研究学习,切勿用于其他用途

小东 回复

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

荒年 回复

在和上可以通过删除“设置账户邮件和账户”里的登录账号来达到目的。但是在上尝试了各种删除的办法都是没用

梦屿 回复

MariaDB 安装时,默认会创建一个特权用户。如果忘记超级管理员可以使用这个账号登录后修改密码或者主机

蛋黄 回复

使用Cloudflare部署Ai聊天前端界面,无需置备服务器,只要一个可以接入cloudflare的域名即可

king 回复

前言 不得不吐槽下,将一个现有域名添加到Cloudflare时,系统自动导入的几百个不那么正确的解析记录,让人抓狂

回复题主

您的电子邮件地址将不会被公布。必填字段已标记 *