使用kubeadm将Kubernetes集群从1.6版本升级到1.7

本指南用于kubeadm将集群从1.6.x版本升级到1.7.x版本。低于1.6的群集不支持升级,如果使用kubeadm Beta版本时,也不支持升级。

说明:本次升级将覆盖由kubeadm管理的所有资源(静态pod manifest文件,kube-system namespace中的service accounts和RBAC规则等),集群安装后对资源的任何设置都可以在升级后重新复用,以确保升级不会影响kube-system namespace之外的其他静态pod manifest文件或对象 。

开始升级前

需要运行的Kubernetes集群版本是1.6.x

在Master上

1、升级system packages

升级OS packages : kubectl,kubeadm,kubelet和kubernetes-cni。

在Debian上,可以通过以下方法实现:

sudo apt-get update
sudo apt-get upgrade

在CentOS/Fedora上,可以运行:

sudo yum update

2、重新启动kubelet:

sudo systemctl restart kubelet

删除kube-proxy DaemonSet

虽然大部分组件会在下一步自动升级,但 kube-proxy目前需要手动删除,以便在正确的版本中重新创建:

sudo KUBECONFIG=/etc/kubernetes/admin.conf kubectl delete daemonset kube-proxy -n kube-system

4、执行kubeadm升级。

警告:当启动集群时,传递给第一个kubeadm init的所有参数必须在升级-kubeadm init-command中指定。这个问题计划在v1.8版本中解决。

sudo kubeadm init --skip-preflight-checks --kubernetes-version <DESIRED_VERSION>

例如,如果要升级到1.7.0,将运行:

sudo kubeadm init --skip-preflight-checks --kubernetes-version v1.7.0

5、升级CNI Provider

您的CNI Provider可能有自己的升级说明。查看附件页面查找你的CNI Provider,并查看是否需要额外的升级步骤。

在每个node上

1、升级system packages

升级OS packages : kubectl,kubeadm,kubelet和kubernetes-cni。

在Debian上,可以通过以下方式实现:

sudo apt-get update
sudo apt-get upgrade

在CentOS/Fedora上,可以运行:

sudo yum update

2、重新启动kubelet。

sudo systemctl restart kubelet

原文:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm-upgrade-1-7/