141 lines
3.4 KiB
Markdown
141 lines
3.4 KiB
Markdown
---
|
||
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
|
||
```
|