kops升级-1.11.1升级1.12.1&k8s升级1.12.10

升级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版本

对应关系在:kops/stable at master · kubernetes/kops · GitHubKubernetes Operations (kops) - Production Grade K8s Installation, Upgrades, and Management - kops/stable at master · kubernetes/kopshttps://github.com/kubernetes/kops/blob/master/channels/stable

其中包含内容有

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值