Files
kuboard-press/install/upgrade-k8s/1.15.x-1.15.4.md
huanqing.shao 639101021f vssueId
2019-09-28 14:11:29 +08:00

141 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
vssueId: 92
description: Kubernete安装文档_使用kubeadm升级kubernetes集群
---
# Kubernetes从1.15.x升级到 1.15.4
参考文档: kubernetes 官网文档 [kubeadm upgrade](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/)
## 前提条件
* 您使用 kubeadm 安装了 kubernetes v1.15.0 / v1.15.1 / v1.15.2 / v1.15.3 集群
* 您想要将其升级到最新的版本 kubernetes v1.15.4
::: tip
www.kuboard.cn 是一款免费的基于 Kubernetes 的微服务管理界面,目前只能提供 kubernetes v1.15.0 / v1.15.1 / v1.15.2 / v1.15.3 到 kubernetes v1.15.4 的升级文档,其他版本的集群,请参考 kubernetes 官网文档 [kubeadm upgrade](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/)
:::
## 升级 kubeadm/kubelet/kubectl
在所有节点(包括 master、worker 节点)执行命令
``` sh
# 在所有节点执行(包括 master 和 worker 节点)
yum install -y kubelet-1.15.4 kubeadm-1.15.4 kubectl-1.15.4
systemctl daemon-reload
systemctl restart kubelet
```
## 查看集群配置
在第一个 master 节点执行命令
``` sh
# 只在第一个 master 节点执行
kubeadm config view
```
输入结果如下所示:(根据集群配置不一样,您的结果可能不同)
``` yaml {15,17}
apiServer:
extraArgs:
authorization-mode: Node,RBAC
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: apiserver.demo:6443
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.0
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
scheduler: {}
```
## 创建升级用的配置文件
**创建文件 kubeadm-config-upgrade.yaml**
文件内容如下所示,根据前面 `kubeadm config view` 的执行结果,修改了如下字段:
* imageRepository 的值修改为registry.cn-hangzhou.aliyuncs.com/google_containers
* kubernetesVersion 的值修改为: v1.15.4
``` yaml {15,17}
apiServer:
extraArgs:
authorization-mode: Node,RBAC
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: apiserver.demo:6443
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.15.4
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
scheduler: {}
```
## 执行 kubeadm upgrade 命令
在第一个 master 节点上执行:
查看升级后的变化
``` sh
# 只在第一个 master 节点执行
kubeadm upgrade diff --config kubeadm-config-upgrade.yaml
```
执行升级 dry-run
``` sh
# 只在第一个 master 节点执行
kubeadm upgrade apply --config kubeadm-config-upgrade.yaml --dry-run
```
执行升级动作
``` sh
# 只在第一个 master 节点执行
kubeadm upgrade apply --config kubeadm-config-upgrade.yaml
```
## 升级 worker 节点
针对所有的 worker 节点,执行
``` sh
# 只在 worker 节点执行(所有的 worker 节点)
kubeadm upgrade node
```
## 检查升级结果
在第一个 master 节点执行
``` sh
# 只在第一个 master 节点执行
kubectl get nodes -o wide
kubectl version
kubeadm config view
```