kubernetes-集群升级

笔者今天讲的升级方式为官方推荐的方法:使用 kubeadm 升级集群;

为什么要写?

笔者最近发现kubernetes的从版本12.1开始,加入了证书轮换的功能;这意味着使用kubeadm安装也能不用顾忌证书过期的问题;

之前的策略是需要至少每半年升级一次,在升级的过程中,如果证书小于180天,会自动替换新的证书;

但是实际生产环境中,大多不会保持这个频率升级生产环境,所以证书过期的隐患;

这也是很多人选择手动安装的原因之一;

 

据笔者自己体验,从1.8开始,kubeadm的部署过程已经比其他方式的安装过程要更有效率的多;

且笔者更偏向于将kubernetes组件以容器的方式跑在kubernetes内部(etcd除外,笔者更偏向于跑在集群外部,实际生产环境也是这样运行的);

kubeadm部署的环境刚好能满足笔者的需求(支持自定义配置文件部署,很好的满足了个性化的需求),所以在这里推荐大家也使用这种方式部署集群,且日后的升级也十分的方便(kubeadm安装高可用集群的文章点击这里---哈哈哈,暂时没写,没空);

 

升级过程

现有集群的版本如下图所示,为10.5的版本;

先从master开始升级;

执行

kubectl cordon master其中一台的节点名

可再次通过get nodes 的命令看到该节点已被标记不可调度;

 

然后执行

kubectl drain master节点名 --ignore-daemonsets

如下图所示,可以看到提示:忽略了所有的daemonset的pod,并且将剩余的pod驱逐;

 

接下来需要升级kubeadm到1.11.X版本(kubeadm升级不能跳版本,比如10.x不能直接升级至12.X,需要先升级到11.X版本)

准备好11.3的镜像

gcr.io/google_containers/kube-apiserver-amd64:v1.11.3

gcr.io/google_containers/kube-proxy-amd64:v1.11.3

gcr.io/google_containers/kube-scheduler-amd64:v1.11.3

gcr.io/google_containers/kube-controller-manager-amd64:v1.11.3

coredns/coredns:v1.1.3

quay.io/coreos/flannel:v0.10.0-amd64

k8s.gcr.io/pause-amd64:3.1

 

导出集群的master配置后,使用该配置文件进行升级;

执行

kubeadm upgrade apply v1.11.3 --config kubeadm-config.yaml

如下图所示,开始升级;

结果如下图所示:

 

此时,该master节点的api等组件已升级至11.3;

将kubelet与kubectl也升级至11.3(笔者使用的是yum安装升级);

注意kubelet此时的配置文件为初始默认的配置文件,所以可将其他master节点上的kubelet配置文件复制过来;

文件路径:/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

重启kubelet,执行

systemctl daemon-reload

systemctl restart kubelet

最后恢复master的调度,执行

kubectl uncordon master节点名称

至此,该台master的升级已经全部完成

同样方式,操作其余master与node即可完成集群的全部11.X的升级;

再同样的操作可继续升级至12.X;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值