k8s升级,此次升级是1.12.0 至1.13.2

准备

# 首先升级master节点的基础组件kubeadm、kubelet、kubectl
apt policy kubeadm
找到相应的版本,如果没有,可以去github上面下载binary包进行安装:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md#changelog-since-v1131
然后替换之前的包,如果之前是用apt-get install安装的,都是在/usr/bin下面 apt-get update && apt-get upgrade kubeadm # 更新到1.13.2后,在master执行,执行一次 kubeadm upgrade plan

[upgrade/versions] Latest version in the v1.12 series: v1.13.2

External components that should be upgraded manually before you upgrade the control plane with 'kubeadm upgrade apply':

COMPONENT CURRENT AVAILABLE

Etcd 3.2.22 3.2.24

Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':

COMPONENT CURRENT AVAILABLE

Kubelet 1 x v1.12.0 v1.13.2

Upgrade to the latest version in the v1.12 series:

COMPONENT CURRENT AVAILABLE

API Server v1.12.0 v1.13.2

Controller Manager v1.12.0 v1.13.2

Scheduler v1.12.0 v1.13.2

Kube Proxy v1.12.0 v1.13.2

CoreDNS 1.2.2 1.2.6

You can now apply the upgrade by executing the following command:

kubeadm upgrade apply v1.13.2

需要先升级etcd服务,我们的版本是3.2.22,需要升级到3.2.24

# 更新
kubeadm upgrade apply v1.13.2
# 备份etcd数据(以防万一)
etcdctl snapshot save backup.db # 查看备份的状态
etcdctl --write-out=table snapshot status backup.db # 下载新的etcd,这里我们部署1.13.2的kubernetes需要的是3.2.24
# (https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz) wget https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz #由于之前部署的是三节点的etcd集群,所以可以做到无缝升级,一个节点一个节点进行升级,每个节点恢复正常后在升级下一个节点;
# 停掉当前节点
systemctl stop etcd # 将下载好的文件解压,然后替换之前的etcd和etcdctl,替换完成后启动etcd systemctl start etcd # 每个节点替换完成后检查服务状态 etcdctl endpoint health

Upgrade master and node packages

kubectl drain node_name --ignore-daemonsets

#master节点需要加上--ignore-daemonsets,node节点不用

#更新
apt-get update
apt-get upgrade -y kubeadm #更新过程中要保证服务不中断,轮询替换更新

Upgrade kubelet on each node

# On each node except the master node, upgrade the kubelet config:

kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d  ' '  -f 2) 

# Restart the kubelet process:

systemctl restart kubelet

# Verify that the new version of the kubelet is running on the node:

systemctl status kubelet

# Bring the node back online by marking it schedulable:

kubectl uncordon $NODE

# verify that all nodes are available again by running the following command from anywhere kubectl can access the cluster:

kubectl get nodes

#The STATUS column should show Ready for all your nodes, and the version number should be updated.

QA

使用calico+ipip的模式,升级到1.13.1的时候出现一个请求长度的限制,超过1400就会被拒绝掉.

解决方式有两种:

1、修改mtu的值,ipip模式回家一个ip头部,20字节。所以calico的mtu+20 必须小于 物理机网卡的mtu,也要小于1500.

2、切换到BGP模式就解决了这个问题

k8s升级,HA集群1.12.0~HA集群1.13.2的更多相关文章

  1. kubeadm部署kubernetes-1.12.0 HA集群-ipvs

    一.概述 主要介绍搭建流程及使用注意事项,如果线上使用的话,请务必做好相关测试及压测. 1.基础环境准备 系统:ubuntu TLS 16.04  5台 docker-ce:17.06.2 kubea ...

  2. VMware15安装MAC(MAC OS 10.13)(OS X 10.14)原版可升级最新可解锁macOS Unlocker3.0(OS X 10.13)

      目录树 1.1.2安装环境: 1.1.3所需资源: 1.1.4 Unlocker 3.0解锁 1.1.5 配置环境 1.1.6开始安装 1.1.7开启虚拟机进入MAC安装界面 1.1.8 macO ...

  3. 第一篇 HTML5打包APP之VMware15安装MAC(MAC OS 10.13)(OS X 10.14)原版可升级最新可解锁macOS Unlocker3.0(OS X 10.13)

    1.1.2安装环境: 1.1.3所需资源: 1.1.4 Unlocker 3.0解锁 1.1.5 配置环境 1.1.6开始安装 1.1.7开启虚拟机进入MAC安装界面 1.1.8 macOS 10.1 ...

  4. ubuntu18.04 基于Hadoop3.1.2集群的Hbase2.0.6集群搭建

    前置条件: 之前已经搭好了带有HDFS, MapReduce,Yarn 的 Hadoop 集群 链接: ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式 ...

  5. Kubernetes-v1.12.0基于kubeadm部署

    1.主机规划 #master节点(etcd/apiserver/scheduler/controller manager)master.example.cometh0: 192.168.0.135et ...

  6. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  7. Hadoop2.0 HA集群搭建步骤

    上一次搭建的Hadoop是一个伪分布式的,这次我们做一个用于个人的Hadoop集群(希望对大家搭建集群有所帮助): 集群节点分配: Park01 Zookeeper NameNode (active) ...

  8. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  9. cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台

    目录 [TOC] 1.基本概念 ​ 既然是对Docker的容器进行监控,我们就不自己单独搭建cAdvisor.InfluxDB.Grarana了,本文中这三个实例,主要以Docker容器方式运行. 本 ...

随机推荐

  1. 3H - 进制转换

    输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...

  2. Spring 系列目录

    Spring(https://spring.io/) 系列目录 第一篇:Spring 系列 第一章 Spring Core (1) Convert 1.1.1 Spring ConversionSer ...

  3. rapidjson 的练习

    // JsonCpp.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string> #include < ...

  4. maven学习三

    做项目时使用maven构建项目已经是现在的流行做法了.那么maven的作用是什么呢?maven中的几个常用的命令都有什么用?下面我们来看一下. maven最大的作用就是用于对项目中jar包依赖的统一管 ...

  5. HTML中Meta标签中http-equiv属性小结

    HTML中Meta标签中http-equiv的用法: <meta http-equiv="这里是参数" content="这里是参数值"> 1.Ex ...

  6. Forward团队-爬虫豆瓣top250项目-模块开发过程

    项目托管平台地址:https://github.com/xyhcq/top250 开发模块功能: 爬虫对信息的处理部分 开发时间:5天的下午空余时间(每天大约1小时,边学模块的使用边开发) 实现了:爬 ...

  7. java技术突破要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  8. [smf]论坛实现编辑器附件插入的插件

    smf论坛代码的相关介绍,可以参见博客园的其他文章,这里不再详细说明了. 插件功能: 在帖子里的任何位置插入附件图片. 关于安装: 该插件已经经过“维尼熊的百宝箱”的修改,在新版本SMF 2.0.14 ...

  9. Swagger相关配置记录

    1.SwaggerConfig文件配置 public class SwaggerConfig { protected static string GetXmlCommentsPath() { retu ...

  10. 【转】vim 命令

    Vim命令合集 建议直接看原文:(排版有些乱) 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接 ...