写在前面

kubernetes是目前最炙手火热的容器管理、调度、编排平台,不仅拥有全面的生态系统,而且还开源、开放自治,谁贡献的多,谁的话语权就大,云提供商都有专门的工程师来从事kubernetes开源项目,其软件的升级迭代非常快,今天我们就来谈谈如何使用kubeadm平滑地升级kubenetes集群到v1.10.3。

备注:kubeadm是一个快速构建kubernetes集群的工具。

查看目前集群版本



从上面可以看到,master节点kubelete版本低于woker节点,kubernetes的版本倾斜并不支持此情况,详细原因如下:



基于这两个原因,为了避免出现一些不必要的问题,所以决定立即升级集群。

检视集群

检查哪些版本可用于升级并验证当前群集是否可升级。

kubeadm upgrade plan [flags]



上图已经说得很清楚了,我们需要先升级kubeadm,然后才能升级control pannel,而kubeadm并不会自动安装和管理kubelet、kubectl,所以我们需要手工完成这三个组件的升级。

升级kubeadm kubelet kubectl

yum install -y kubelet kubeadm kubectl

升级集群组件

kubeadm upgrade apply v1.10.3

升级网络插件

kubernetes支持符合CNI规范的所有网络插件,生产环境一般建议使用calico,其他网络插件的升级大家可以自行去官网查看。

kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

再次检视集群





从上面可以看到,各个control pannel和组件都成功升级完成!!!

备注:命令执行后,可能一段时间kubectl get nodes看到的版本还是没有改变,dashboard也处于僵死状态,不要着急,等待大概20分钟左右就好了,不过服务会很快恢复,基本用户是无感知的。

延伸阅读

https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade

https://kubernetes.io/docs/tasks/tools/install-kubeadm

https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm

使用kubeadm平滑地升级kubenetes集群(v1.10.2到v1.10.3)的更多相关文章

  1. 使用Kubeadm搭建高可用Kubernetes集群

    1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...

  2. Kubernetes实践技巧:升级为集群

    高可用 前面我们课程中的集群是单 master 的集群,对于生产环境风险太大了,非常有必要做一个高可用的集群,这里的高可用主要是针对控制面板来说的,比如 kube-apiserver.etcd.kub ...

  3. 使用kubeadm安装kubernetes高可用集群

    kubeadm安装kubernetes高可用集群搭建  第一步:首先搭建etcd集群 yum install -y etcd 配置文件 /etc/etcd/etcd.confETCD_NAME=inf ...

  4. 升级 Elasticsearch 集群数量实战记录

    搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...

  5. wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群

    wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群 官方文档使用 kubeadm 创建一个单主集群 环境初始化 建议尽可能初始化环境,命令wsl --unregister Ub ...

  6. kubernetes教程第一章-kubeadm高可用安装k8s集群

    目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...

  7. kubeadm部署高可用K8S集群(v1.14.2)

    1. 简介 测试环境Kubernetes 1.14.2版本高可用搭建文档,搭建方式为kubeadm 2. 服务器版本和架构信息 系统版本:CentOS Linux release 7.6.1810 ( ...

  8. 1款开源工具,实现自动化升级K3S集群!

    即便你的集群能够平稳运行,Kubernetes升级依旧是一项艰难的任务.由于每3个月Kubernetes会发布一个新版本,所以升级是十分必要的.如果一年内你不升级你的Kubernetes集群,你就会落 ...

  9. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

随机推荐

  1. html5中让页面缩放的4种方法

    1.viewport 这种方法,不是所有的浏览器都兼容<meta name="viewport" content="width=640,minimum-scale= ...

  2. SSM-MyBatis-13:Mybatis中多条件查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...

  3. Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源

    项目中的资源一般我们打包成AssetBundle格式 方便我们加载和热更 而AssetBundle文件 一般保存在StreamingAssets文件夹或则PersistentData文件夹 首先我们看 ...

  4. CentOS 6.2+Nginx+Nagios,手机短信和qq邮箱提醒

    http://chenhao6.blog.51cto.com/6228054/1323192 标签:软件包 配置文件 nagios 服务端 监控 原创作品,允许转载,转载时请务必以超链接形式标明文章  ...

  5. [爬虫]Scrapy 错误ordinal not in range(128)

    报错了: UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(12 ...

  6. Quartz简单案例

    需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...

  7. 测试网页时需要添加等待的情形 (Selenium)

    测试网页时需要添加等待的情形: 1. 网页跳转 2. DOM结构发生改变.

  8. sonyflake.go

        time := id >> (BitLenSequence + BitLenMachineID)     sequence := id & maskSequence > ...

  9. Reactor和Proactor模式

    在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作.同步和异步 同步和异步是针对应用程序和内 ...

  10. 一个Java程序员的2018年展望与2017年总结

    回顾2017年,可以说是对我而言有重大转折的一年.我们选择放弃了北京,来到了杭州,开始了新的生活.房子的事情也基本上落实了,虽然其中经历了种种坎坷,但是结局还是美好的,现在在等贷款放贷.中国人嘛,没有 ...