写在前面

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. 《Hadoop金融大数据分析》读书笔记

    <Hadoop金融大数据分析> Hadoop for Finance Essentials 使用Hadoop,是因为数据量大数据量如此之多,以至于无法用传统的数据处理工具和应用来处理的数据 ...

  2. 怎么轻松学习JavaScript

    js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习js的途径.我试着总结自己学习多年js的经验,希望能给后来的学习者探索出一条“轻松学习js之路”.js给人那种感觉的原因多半是因为它 ...

  3. fastdfs group通过添加硬盘扩容

    通过给group的机器添加硬盘的方式,实现某个group的扩容. fastdfs在一台服务器支持多个store_path,每个store_path指向一个存储路径.url "M00/3F/E ...

  4. RabbitMQ (四) 路由选择 (Routing)

    上一篇博客我们建立了一个简单的日志系统,我们能够广播日志消息给所有你的接收者,如果你不了解,请查看:RabbitMQ (三) 发布/订阅.本篇博客我们准备给日志系统添加新的特性,让日志接收者能够订阅部 ...

  5. Python hashlib 无法打印

    # !/user/bin/python # -*- coding: utf-8 -*- import hashlib # 可提供MD5算法 , 防止内页被篡改 (若内页未被篡改, MD5的值是不变的) ...

  6. distinct的用法

    1.  Distinct 位置 单独的distinct只能放在开头,否则报错,语法错误 例:SELECT Sid,DISTINCT(Sscore) score from t_student; [SQL ...

  7. C++中memset()函数的作用

    memset()函数可以对大内存的分配进行很方便的操作(初始化),所谓“初始化”,当然是指将你定义的变量或申请的空间赋予你所期望的值, 例如语句int i=0;就表明定义了一个变量i,并初始化为0: ...

  8. nginx用户认证与htpasswd命令

    最近在搭建ELK,然后ELK的kibana界面想添加一个访问限制,看到kibana有个插件x-pack,本来想用用,发现是收费的,就放弃了,然后就想着想配置下nginx的认证访问来实现简单的访问登陆. ...

  9. python之算法排序模块

    这是一个能够随时学习重要算法的Python模块,记录在案,方便查看 特点 易于使用 容易理解的文档 快速获取算法的源代码 随时获取时间复杂度 安装 仅需在终端中执行以下命令: pip3 install ...

  10. Redis in .NET Core 入门:(2) String

    第1篇:https://www.cnblogs.com/cgzl/p/10294175.html‘ 本文简单介绍一下Redis的常用数据类型String. 基本上都是文档上的内容,所以比较无聊.... ...