kops升级-1.11.1升级1.12.1&k8s升级1.12.10
升级Kops查看当前kops版本[root@ip-172-24-33-22 ~]# kops versionVersion 1.11.1 (git-0f2aa8d30)安装新kops命令替换旧版本kops命令#删除旧kopssudo rm -rf /usr/local/bin/kops#建议使用mv命令备份#mv /usr/local/bin/kops /usr/local/bin/kops-$(
升级Kops
查看当前kops版本
[root@ip-172-24-33-22 ~]# kops version
Version 1.11.1 (git-0f2aa8d30)
安装新kops命令替换旧版本kops命令
#删除旧kops
sudo rm -rf /usr/local/bin/kops
#建议使用mv命令备份
#mv /usr/local/bin/kops /usr/local/bin/kops-$(kops version | awk '{print $2}')
#安装最新版本kops
#wget -O kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
#安装1.12.3版本kops
wget -O kops https://github.com/kubernetes/kops/releases/download/1.12.3/kops-linux-amd64
#增加执行权限
chmod +x ./kops
sudo mv ./kops /usr/local/bin/
查看升级后kops版本
[root@ip-172-24-33-22 ~]# kops version
Version 1.12.3 (git-e55205471)
升级K8S集群
升级Kops认为稳定的kubernetes版本
其中包含内容有
1.kubernetes版本-启动EC2时使用的AMI镜像-对应关系
2.kubernetes小版本号对应推荐的补丁版本号
如选择1.11的kubernetes时,推荐安装1.11.10
3.kops小版本号对应推荐的补丁版本号
如选择kops1.11时,推荐安装kops1.11.1,对应kubernetes推荐1.11.10
Kops修改集群配置-升级K8S集群
使用 kOps 可以轻松升级 Kubernetes。可以使用kops edit命令修改kubernetesVersion参数,并将配置应用到整个集群。
#查看集群名称
kops get cluster
#修改集群配置
kops edit cluster $CLUSTER_NAME
#修改至 kubernetesVersion: 1.12.10
#查看&确认将会变更项
kops update cluster $NAME
#确认后,推送配置
kops update cluster $NAME --yes
#查看滚动更新集群将涉及哪些节点
kops rolling-update cluster $NAME
#执行滚动更新集群(POD会被从节点驱逐,节点将会被重建。谨慎操作)
kops rolling-update cluster $NAME --yes
执行kops rolling-update cluster $NAME时,会显示哪些节点需要更新。
第三列NEEDUPDATE是每个instancegroup中需要更新的节点数。其实可以看到是所有机器都需要被更新。
[root@ip-172-24-33-22 ~]# kops rolling-update cluster eukops-test-lq-auto.k8s.local
NAME STATUS NEEDUPDATE READY MIN MAX NODES
master-eu-west-3a-1 NeedsUpdate 1 0 1 1 1
master-eu-west-3a-2 NeedsUpdate 1 0 1 1 1
master-eu-west-3b-1 NeedsUpdate 1 0 1 1 1
nodes NeedsUpdate 1 0 1 1 1
Must specify --yes to rolling-update.
升级后集群的版本
[root@ip-172-24-33-22 centos]# kubectl get node
NAME STATUS ROLES AGE VERSION
ip-172-31-0-42.eu-west-3.compute.internal Ready node 2m39s v1.12.10
ip-172-31-0-5.eu-west-3.compute.internal Ready master 15m v1.12.10
ip-172-31-0-51.eu-west-3.compute.internal Ready master 6m41s v1.12.10
ip-172-31-0-7.eu-west-3.compute.internal Ready master 22m v1.12.10
业务影响
升级期间会将节点依次从集群中剔除,所以需要谨慎操作。如果集群的node节点,在业务层面有实现高可用,单个node上POD被驱逐,且节点下线时,对业务不造成影响的话。则可以实现理论上的无业务影响的升级。
示例:升级时,原本3master的集群,1个master被从集群里移除,其他节点都还在。然后在升级完成后,新版本集群被加入集群。下一台master被停止调度,开始升级。
[root@ip-172-24-33-22 centos]# kubectl get node
NAME STATUS ROLES AGE VERSION
ip-172-31-0-10.eu-west-3.compute.internal Ready node 41d v1.11.10
ip-172-31-0-28.eu-west-3.compute.internal Ready master 41d v1.11.10
ip-172-31-0-42.eu-west-3.compute.internal Ready master 41d v1.11.10
[root@ip-172-24-33-22 centos]# kubectl get node
NAME STATUS ROLES AGE VERSION
ip-172-31-0-10.eu-west-3.compute.internal Ready node 41d v1.11.10
ip-172-31-0-28.eu-west-3.compute.internal Ready,SchedulingDisabled master 41d v1.11.10
ip-172-31-0-42.eu-west-3.compute.internal Ready master 41d v1.11.10
ip-172-31-0-7.eu-west-3.compute.internal Ready master 1m v1.12.10
升级耗时
3master、1node的集群;单节更新平均耗时7分钟;总耗时30分钟。
更多推荐
所有评论(0)