一起来学k8s 35.二进制k8s集群1.15.2升级1.15.3
二进制k8s集群1.15.2升级1.15.3环境准备##/etc/hosts192.168.48.101 master01192.168.48.102 master02192.168.48.103 master03192.168.48.201 node01192.168.48.202 node02192.168.48.54nfs## keepalived的vip192.1...
·
二进制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
IP | Hostname | CPU | Memory |
---|---|---|---|
192.168.48.101 | master01 | 2 | 4G |
192.168.48.102 | master02 | 2 | 4G |
192.168.48.103 | master03 | 2 | 4G |
192.168.48.201 | node01 | 2 | 4G |
192.168.48.202 | node02 | 2 | 4G |
192.168.48.54 | nfs | 2 | 4G |
软件 | 版本 |
---|---|
kubernetes | 1.15.2 |
docker-ce | 19.03 |
calico | 3.8 |
etcd | 3.3.13 |
CNI | 0.8.1 |
coredns | 1.4.0 |
metrics-server | 0.3.3 |
ingress-controller | 0.25.0 |
dashboard | 1.10.1 |
Weave Scope | 1.11.4 |
nfs | v4 |
helm | 2.14.3 |
harbor | 1.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
更多推荐
已为社区贡献27条内容
所有评论(0)