本指南用于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
例如,如果要升级到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/