zoukankan      html  css  js  c++  java
  • 四、Kubernetes系列之kubeadm升级1.14.5到1.15.3版本

    升级之前

    • 运行的版本为1.14的kubeadm Kubernetes集群
    • 确保备份所有重要组件,例如存储在数据库中的应用程序级状态。kubeadm upgrade 不会触及您的工作负载,只会触及Kubernetes内部的组件,但备份始终是最佳实践。
    附加信息
    • 升级后重新启动所有容器,因为容器规范哈希值已更改。
    • 您只能从一个MINOR版本升级到下一个MINOR版本,或者在同一个MINOR的PATCH版本之间升级。也就是说,升级时不能跳过MINOR版本。例如,您可以从1.y升级到1.y + 1,但不能从1.y升级到1.y + 2。
    升级顺序:
    master --> node
    
    升级前
    # kubectl get nodes
    NAME                 STATUS   ROLES    AGE   VERSION
    huoban-k8s-master01   Ready    master   28d   v1.14.5
    huoban-k8s-master02   Ready    master   28d   v1.14.5
    huoban-k8s-master03   Ready    master   28d   v1.14.5
    huoban-k8s-node01     Ready    <none>   28d   v1.14.5
    huoban-k8s-node02     Ready    <none>   28d   v1.14.5
    
    准备工作
    1、编译自定义kubeadm,主要修改证书过期时间
    # cd /usr/local/src/
    # wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
    # wget https://github.com/kubernetes/kubernetes/archive/v1.15.3.tar.gz
    # tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz
    # echo “export PATH=$PATH:/usr/local/go/bin” >> /etc/profile
    # source /etc/profile
    # go version
    # tar -xf v1.15.3.tar.gz
    # cd kubernetes–1.15.3/
    
    # vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go
    NotAfter:     time.Now().Add(kubeadmconstants.CertificateValidity * 100).UTC()  #修改成100年
    
    # vim staging/src/k8s.io/client-go/util/cert/cert.go
    
    NotAfter:              now.Add(duration365d * 100).UTC(),
    NotAfter:  validFrom.Add(maxAge * 100)
    NotAfter:  validFrom.Add(maxAge * 100),
    
    # make all WHAT=cmd/kubeadm GOFLAGS=-v
    
    2、替换自带kuberadm
    
    # cp /usr/local/src/kubernetes–1.15.3/_output/local/bin/linux/amd64/kubeadm /bin
    

    一、升级第一个master节点

    1、升级kubeadm
    # yum install -y kubeadm-1.15.3-0 --disableexcludes=kubernetes
    
    2、验证升级是否符合预期
    # kubeadm version
    
    3、 检查升级信息
    # kubeadm upgrade plan
    
    4、 查看升级相关配置(可选)
    # kubectl -n kube-system get cm kubeadm-config -o yaml
    
    5、选择要升级到的版本
    # kubeadm upgrade apply v1.15.3
    # 升级不更新证书的方式
    # kubeadm upgrade apply v1.15.3 --certificate-renewal=false    
    
    6、升级节点上的kubelet和kubectl
    # yum install -y kubelet-1.15.3-0 kubectl-1.15.3-0 --disableexcludes=kubernetes
    
    7、重启kubelet
    # systemctl daemon-reload
    # systemctl restart kubelet
    
    8、更新节点
    # kubeadm upgrade node
    
    9、检查master节点是否升级成功
    # kubectl get nodes
    

    二、升级node节点

    1、升级所有node节点
    # yum install -y kubeadm-1.15.3-0 --disableexcludes=kubernetes
    
    2、使用master上的kubeadm替换其他节点的kubeadm
    # scp /bin/kubeadm root@node1:/bin
    # scp /bin/kubeadm root@node2:/bin
    
    3、在master上执行,驱逐node节点好的pod
    # kubectl drain node1 --ignore-daemonsets
    # kubectl drain node2 --ignore-daemonsets
    
    4、各node节点上执行
    # kubeadm upgrade node
    
    5、node节点升级kubelet
    # yum install -y kubelet-1.15.3-0 kubectl-1.15.3-0 --disableexcludes=kubernetes
    # systemctl restart kubelet
    
    6、在master上执行,将node节点设置可调度状态
    # kubectl uncordon node1
    # kubectl uncordon node2
    
    7、查看各节点状态信息
    # kubectl get nodes
    
    8、查看升级状态
     # kubectl get nodes
    NAME                  STATUS   ROLES    AGE   VERSION
    huoban-k8s-master01   Ready    master   11d   v1.15.3
    huoban-k8s-master02   Ready    master   11d   v1.15.3
    huoban-k8s-master03   Ready    master   11d   v1.15.3
    huoban-k8s-node01     Ready    <none>   11d   v1.15.3
    huoban-k8s-node02     Ready    <none>   11d   v1.15.3
    

    注意:

    node节点不一定做驱逐pod,可以能会造成其它node节点负载问题,
    pod在node节点来回调度也会出现问题.最好直接服务挂维护一次性
    全部升级所有node节点,pod只重启一次
  • 相关阅读:
    CentOS 7中搭建NFS文件共享存储服务的完整步骤
    centos 7中磁盘挂载重启后挂载失效
    smbclient 未找到命令
    Windows共享文件夹无法访问,提示“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接”
    CentOS 7下Samba服务器的安装与配置
    Systemd 指令
    centos7安装samba快速入门
    springboot2.0集成RestTemplate
    unknown directive “stream” in /usr/local/nginx
    Nginx——stream模块
  • 原文地址:https://www.cnblogs.com/Bjwf125/p/12779728.html
Copyright © 2011-2022 走看看