• Kubernetes 升级记录:从 1.16.3 升级至 1.17.0


    参考官方文档 Upgrading kubeadm clusters 在 ubuntu 18.04 上完成了升级,记录一下升级步骤。

    一、升级第一个 master 节点

    apt-get 安装 kubeadm 1.17.0

    apt-mark unhold kubeadm && 
    apt-get update && apt-get install -y kubeadm=1.17.0-00 && 
    apt-mark hold kubeadm
    

    放空当前节点($CP_NODE为当前升级的节点名称)

    kubectl drain $CP_NODE --ignore-daemonsets
    

    升级前检查

    kubeadm upgrade plan
    

    出现告警

    [preflight] Running pre-flight checks.
    	[WARNING CoreDNSUnsupportedPlugins]: there are unsupported plugins in the CoreDNS Corefile
    

    通过 github 上 的 相关 issue 知道这个问题没有影响,可以忽略。

    use the --ignore-preflight-errors=CoreDNSUnsupportedPlugins while upgrading. The proxy plugin will be replaced to use forward automatically.

    执行升级命令

    kubeadm upgrade apply v1.17.0 --ignore-preflight-errors=CoreDNSUnsupportedPlugins
    

    升级成功

    [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.17.0". Enjoy!
    

    解除当前节点的放空状态

    kubectl uncordon $CP_NODE
    

    二、升级其他 master 节点的 kubeadm

    apt-get 安装 kubeadm 1.17.0

    apt-mark unhold kubeadm && 
    apt-get update && apt-get install -y kubeadm=1.17.0-00 && 
    apt-mark hold kubeadm
    

    执行升级命令

    kubeadm upgrade node
    

    三、升级所有 master 节点的 kubelet 与 kubectl

    执行升级命令

    apt-mark unhold kubelet kubectl && 
    apt-get update && apt-get install -y kubelet=1.17.0-00 kubectl=1.17.0-00 && 
    apt-mark hold kubelet kubectl && 
    systemctl restart kubelet
    

    四、升级 worker 节点的 kubeadm 以及 kubelet 与 kubectl

    apt-get 安装 kubeadm 1.17.0

    apt-mark unhold kubeadm && 
    apt-get update && apt-get install -y kubeadm=1.17.0-00 && 
    apt-mark hold kubeadm
    

    在 master 上放空所升级的 worker 节点

    NODE=k8s-node4 && 
    kubectl drain $NODE --ignore-daemonsets
    

    在 worker 节点上执行升级命令

    kubeadm upgrade node
    

    在 worker 节点上升级 kubelet 与 kubectl

    apt-mark unhold kubelet kubectl && 
    apt-get update && apt-get install -y kubelet=1.17.0-00 kubectl=1.17.0-00 && 
    apt-mark hold kubelet kubectl && 
    systemctl restart kubelet
    

    在 master 上解除 worker 节点的放空

    kubectl uncordon $NODE
    

    到此所有节点升级完成。

    NAME          STATUS   ROLES    AGE   VERSION
    k8s-master0   Ready    master   19d   v1.17.0
    k8s-master1   Ready    master   19d   v1.17.0
    k8s-master2   Ready    master   19d   v1.17.0
    k8s-node3     Ready    <none>   22h   v1.17.0
    k8s-node4     Ready    <none>   22h   v1.17.0
    k8s-node5     Ready    <none>   28h   v1.17.0
    
  • 相关阅读:
    Redis3.2集群部署安装
    熟悉SQL Server 数据类型
    泛型的参数简介和参数约束
    流(Stream)与文件流(FileStream)
    C#提取双引号中的字符串
    数组,一维数组,二维数组,交错数组
    结构,枚举
    C#中唯一的三元运算符
    位运算
    异常处理语句
  • 原文地址:https://www.cnblogs.com/dudu/p/12151746.html
Copyright © 2020-2023  润新知