一起来学k8s 35.二进制k8s集群1.15.2升级1.15.3

二进制k8s集群1.15.2升级1.15.3

环境准备

##/etc/hosts
192.168.48.101 master01
192.168.48.102 master02
192.168.48.103 master03
192.168.48.201 node01
192.168.48.202 node02
192.168.48.54  nfs
## keepalived的vip
192.168.48.66
IPHostnameCPUMemory
192.168.48.101master0124G
192.168.48.102master0224G
192.168.48.103master0324G
192.168.48.201node0124G
192.168.48.202node0224G
192.168.48.54nfs24G
软件版本
kubernetes1.15.2
docker-ce19.03
calico3.8
etcd3.3.13
CNI0.8.1
coredns1.4.0
metrics-server0.3.3
ingress-controller0.25.0
dashboard1.10.1
Weave Scope1.11.4
nfsv4
helm2.14.3
harbor1.1.1

当前版本

[root@master01 ~]# kubectl get nodes
NAME       STATUS   ROLES    AGE   VERSION
master01   Ready    master   14d   v1.15.2
master02   Ready    master   13d   v1.15.2
master03   Ready    master   13d   v1.15.2
node01     Ready    node     13d   v1.15.2
node02     Ready    node     13d   v1.15.2

版本升级

所有操作在master01上进行

集群环境变量

[root@master01 ~]# cat /etc/profile.d/k8s_env.sh 
# 声明集群成员信息
declare -A MasterArray otherMaster NodeArray AllNode Other
MasterArray=(['master01']=192.168.48.101 ['master02']=192.168.48.102 ['master03']=192.168.48.103)

otherMaster=(['master02']=192.168.48.102 ['master03']=192.168.48.103)

NodeArray=(['node01']=192.168.48.201 ['node02']=192.168.48.202)

AllNode=(['master01']=192.168.48.101 ['master02']=192.168.48.102 ['master03']=192.168.48.103 ['node01']=192.168.48.201 ['node02']=192.168.48.202)

Other=(['master02']=192.168.48.102 ['master03']=192.168.48.103 ['node01']=192.168.48.201 ['node02']=192.168.48.202 )

export  VIP=192.168.48.66

[ "${#MasterArray[@]}" -eq 1 ]  && export VIP=${MasterArray[@]} || export API_PORT=8443
export KUBE_APISERVER=https://${VIP}:${API_PORT:=6443}

#声明需要安装的的k8s版本
export KUBE_VERSION=v1.15.3

# 网卡名
export interface=eth0

# cni
export CNI_VERSION=v0.8.1
# etcd
export ETCD_version=v3.3.13

准备二进制包

下载地址

链接: https://pan.baidu.com/s/1PNs19x8NL3Hu1MEj4UWsOg 提取码: me41

[root@master01 ~]# ll
total 949036
-rw-r--r-- 1 root root  94257559 Aug 26 17:43 kubernetes-node-linux-amd64.tar.gz
-rw-r--r-- 1 root root 443841740 Aug 26 17:59 kubernetes-server-linux-amd64.tar.gz
[root@master01 ~]# mkdir server node
[root@master01 ~]# tar xvf kubernetes-server-linux-amd64.tar.gz  -C /root/server
[root@master01 ~]# tar xvf kubernetes-node-linux-amd64.tar.gz  -C /root/node

etcd备份

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  snapshot save /etc/etcd/mysnapshot.db

关闭kube-apiserver,kube-controller-manager,kube-scheduler

for name in ${!MasterArray[@]};do 
      echo "--- $name ${MasterArray[$name]} ---"
  ssh ${MasterArray[$name]} "systemctl stop kube-apiserver.service"
  ssh ${MasterArray[$name]} "systemctl stop kube-controller-manager.service"
  ssh ${MasterArray[$name]} "systemctl stop kube-scheduler.service"
done

关闭haproxy,keepalived

for name in ${!MasterArray[@]};do 
      echo "--- $name ${MasterArray[$name]} ---"
  ssh ${MasterArray[$name]} "systemctl stop keepalived.service"
  ssh ${MasterArray[$name]} "systemctl stop haproxy.service"
done

关闭kubelet,kube-proxy

for name in ${!AllNode[@]};do 
      echo "--- $name ${AllNode[$name]} ---"
  ssh ${AllNode[$name]} "systemctl stop kube-proxy.service"
  ssh ${AllNode[$name]} "systemctl stop kubelet.service"
done

备份原来二进制文件

[root@master01 ~]# cd /usr/local/bin/
[root@master01 bin]# ll
total 536836
-rwxr-xr-x 1 1000 1000  16927136 May  3 01:55 etcd
-rwxr-xr-x 1 1000 1000  13498880 May  3 01:55 etcdctl
-rwxr-xr-x 1 root root 164501920 Aug  5 18:01 kube-apiserver
-rwxr-xr-x 1 root root 116397088 Aug  5 18:01 kube-controller-manager
-rwxr-xr-x 1 root root  42985504 Aug  5 18:01 kubectl
-rwxr-xr-x 1 root root 119616640 Aug  5 18:01 kubelet
-rwxr-xr-x 1 root root  36987488 Aug  5 18:01 kube-proxy
-rwxr-xr-x 1 root root  38786144 Aug  5 18:01 kube-scheduler

for name in ${!AllNode[@]};do 
      echo "--- $name ${AllNode[$name]} ---"
  ssh ${AllNode[$name]} "mkdir /usr/local/bin/backup"
done

for name in ${!AllNode[@]};do 
      echo "--- $name ${AllNode[$name]} ---"
  ssh ${AllNode[$name]} "mv /usr/local/bin/kube* /usr/local/bin/backup/"
done

分发master二进制文件

for name in ${!MasterArray[@]};do 
      echo "--- $name ${MasterArray[$name]} ---"
    scp /root/server/kubernetes/server/bin/kube{let,ctl,-apiserver,-controller-manager,-scheduler,-proxy} ${MasterArray[$name]}:/usr/local/bin/ 
done

分发node二进制文件

for name in ${!NodeArray[@]};do 
      echo "--- $name ${NodeArray[$name]} ---"
    scp /root/node/kubernetes/node/bin/kube{let,-proxy} ${NodeArray[$name]}:/usr/local/bin/ 
done

启动kube-apiserver,kube-controller-manager,kube-scheduler

for name in ${!MasterArray[@]};do 
      echo "--- $name ${MasterArray[$name]} ---"
  ssh ${MasterArray[$name]} "systemctl start kube-apiserver.service"
  ssh ${MasterArray[$name]} "systemctl start kube-controller-manager.service"
  ssh ${MasterArray[$name]} "systemctl start kube-scheduler.service"
done

启动haproxy,keepalived

for name in ${!MasterArray[@]};do 
      echo "--- $name ${MasterArray[$name]} ---"
  ssh ${MasterArray[$name]} "systemctl start keepalived.service"
  ssh ${MasterArray[$name]} "systemctl start haproxy.service"
done

启动kubelet,kube-proxy

for name in ${!AllNode[@]};do 
      echo "--- $name ${AllNode[$name]} ---"
  ssh ${AllNode[$name]} "systemctl start kube-proxy.service"
  ssh ${AllNode[$name]} "systemctl start kubelet.service"
done

更新完毕

[root@master01 ~]# kubectl get nodes
NAME       STATUS   ROLES    AGE   VERSION
master01   Ready    master   14d   v1.15.3
master02   Ready    master   14d   v1.15.3
master03   Ready    master   14d   v1.15.3
node01     Ready    node     14d   v1.15.3
node02     Ready    node     14d   v1.15.3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值