跳至内容

更新和升级

更新 kOps

MacOS

从 Homebrew

brew update && brew upgrade kops

从 Github

sudo rm -rf /usr/local/bin/kops
wget -O kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-darwin-amd64
chmod +x ./kops
sudo mv ./kops /usr/local/bin/

您也可以重新运行 这些步骤,如果您之前是从源代码构建的。

Linux

从 Github

sudo rm -rf /usr/local/bin/kops
wget -O kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x ./kops
sudo mv ./kops /usr/local/bin/

您也可以重新运行 这些步骤,如果您之前是从源代码构建的。

您可能希望运行以下命令以在更新 kOps 后包含修复程序/功能

kops update cluster $NAME --yes
kops rolling-update cluster $NAME --yes

升级 Kubernetes

使用 kOps 升级 Kubernetes 很容易。集群规范包含一个 kubernetesVersion,因此您可以使用 kops edit 轻松地对其进行编辑,并将更新的配置应用到您的集群。

kops upgrade 命令还自动执行检查和应用更新的操作。

建议运行最新版本的 kOps 以确保与目标 kubernetesVersion 兼容。在应用 Kubernetes 次要版本升级(例如 v1.5.3v1.6.0)时,您应该确认目标 kubernetesVersion 与 当前 kOps 版本 兼容。

手动更新

  • kops edit cluster $NAME
  • 将 kubernetesVersion 设置为目标版本(例如 v1.3.5)。请注意,下面使用的动词是 update,而不是 upgrade
  • kops update cluster $NAME 预览,然后 kops update cluster $NAME --yes
  • kops rolling-update cluster $NAME 预览,然后 kops rolling-update cluster $NAME --yes

自动更新

  • kops upgrade cluster $NAME 预览,然后 kops upgrade cluster $NAME --yes

将来,升级步骤可能会立即执行更新(甚至可能无需节点重启),但目前您必须

  • kops update cluster $NAME 预览,然后 kops update cluster $NAME --yes
  • kops rolling-update cluster $NAME 预览,然后 kops rolling-update cluster $NAME --yes

升级使用 kOps 认为稳定的最新 Kubernetes 版本,在 https://github.com/kubernetes/kops/blob/master/channels/stable 中定义。

Terraform 用户

  • kops edit cluster $NAME
  • 将 kubernetesVersion 设置为目标版本(例如 v1.3.5
  • 注意:以下 3 个步骤必须都在同一目录中运行。此处,--out=. 指定 Terraform 文件将写入当前目录。它应该指向 kops create cluster 创建的 Terraform 文件所在的目录。默认值为 out/terraform
  • kops update cluster $NAME --target=terraform --out=.
  • terraform plan
  • terraform apply
  • kops rolling-update cluster $NAME 预览,然后 kops rolling-update cluster $NAME --yes

其他说明:

  • 一般来说,我们建议您一次升级一个次要版本(1.17 --> 1.18 --> 1.19)。尽管跳过次要版本可能会在您没有启用 alpha 功能的情况下有效,但由于版本弃用,您可能会遇到更多问题。