codecamp

Kubernetes 升级Windows节点

在开始之前

你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:

您的 Kubernetes 服务器的版本必须为 1.17 或更高版本。 要检查版本,请输入 ​kubectl version​。

  • 熟悉更新 kubeadm 集群中的其余组件。 在升级你的 Windows 节点之前你会想要升级控制面节点。

升级工作节点 

升级 kubeadm 

  • 在 Windows 节点上升级 kubeadm:
  • # 将 v1.24.0 替换为你希望的版本
    curl.exe -Lo C:\k\kubeadm.exe https://dl.k8s.io//bin/windows/amd64/kubeadm.exe

腾空节点 

  • 在一个能访问到 Kubernetes API 的机器上,将 Windows 节点标记为不可调度并 驱逐其上的所有负载,以便准备节点维护操作:
  • # 将 <要腾空的节点> 替换为你要腾空的节点的名称
    kubectl drain <要腾空的节点> -ignore-daemonsets

    你应该会看到类似下面的输出:

    node/ip-172-31-85-18 cordoned
    node/ip-172-31-85-18 drained

升级 kubelet 配置 

  • 在 Windows 节点上,执行下面的命令来同步新的 kubelet 配置:
  • kubeadm upgrade node
    

升级 kubelet 

  • 在 Windows 节点上升级并重启 kubelet:
  • stop-service kubelet
    curl.exe -Lo C:\k\kubelet.exe https://dl.k8s.io//bin/windows/amd64/kubelet.exe
    restart-service kubelet

对节点执行 uncordon 操作 

  • 从一台能够访问到 Kubernetes API 的机器上,通过将节点标记为可调度,使之 重新上线:
  • # 将 <要腾空的节点> 替换为你的节点名称
    kubectl uncordon <要腾空的节点>

升级 kube-proxy 

  • 在一台可访问 Kubernetes API 的机器上和,将 v1.24.0 替换成你 期望的版本后再次执行下面的命令:
  • curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/kube-proxy.yml | sed 's/VERSION/v1.24.0/g' | kubectl apply -f -
    


Kubernetes 添加Windows节点
Kubernetes 手动生成证书
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Kubernetes 管理集群

Kubernetes Service

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }