|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
RKE1 到 SUSE® Rancher Prime: RKE2 Windows 的迁移指南
| 本文件的内容不在 Rancher 支持的 SLA 范围内。请谨慎操作。 |
本文件介绍了最终用户如何将其 Windows 工作负载从 RKE1 迁移到 RKE2。
RKE1 Windows 调度
RKE1 Windows 工作负载调度基于污点和容忍。
在 RKE1 Windows 集群中,每个 Linux 节点,无论其分配的角色如何,都将具有默认污点,除非工作负载配置了容忍,否则无法在其上调度工作负载。这是 RKE1 Windows 集群的一个主要设计特性,旨在仅运行 Windows 工作负载。
-
默认 RKE1 Linux 节点
NoSchedule污点:
apiVersion: v1
kind: Node
spec:
...
taints:
- effect: NoSchedule
key: cattle.io/os
value: linux
-
RKE1 Linux
NoSchedule工作负载的容忍
以下容忍将允许最终用户工作负载在 RKE1 Windows 集群的任何 Linux 节点上调度。这些容忍用于各种内核 Rancher 服务和工作负载。
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
tolerations:
- effect: NoSchedule
key: cattle.io/os
operator: Equal
value: linux
-
根据最佳实践,任何在 Linux 节点上运行的最终用户工作负载将仅在具有工作角色的节点上调度:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
tolerations:
- effect: NoSchedule
key: cattle.io/os
operator: Equal
value: linux
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: node-role.kubernetes.io/worker
operator: In
values:
- "true"
weight: 100
...
SUSE® Rancher Prime: RKE2 Windows 调度
根据反馈和对混合工作负载支持的请求,RKE2 Windows 被设计为默认支持 Linux 和 Windows 工作负载。RKE2 调度默认依赖于节点选择器。这与 RKE1 有显著变化,因为 RKE2 中未包含污点和容忍。节点选择器是 RKE1 Windows 集群的关键部分,这使得您的工作负载迁移变得简单。
示例迁移
RKE1 到 SUSE® Rancher Prime: RKE2 Windows 工作负载
-
迁移前 RKE1 Windows 部署:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: NotIn
values:
- linux
-
使用
NodeAffinity迁移的 RKE2 Windows 部署:
apiVersion: apps/v1
kind: Deployment
...
spec:
...
template:
...
spec:
...
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- windows
RKE1 Windows 集群的仅限 Linux 部署
|
在使用节点选择器和节点亲和性时,请注意以下事项:
|
-
迁移前 RKE1 Windows 集群的仅限 Linux 部署,目标为 RKE1 Linux 工作节点:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
tolerations:
- effect: NoSchedule
key: cattle.io/os
operator: Equal
value: linux
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: node-role.kubernetes.io/worker
operator: In
values:
- "true"
-
使用节点选择器迁移的 RKE2 混合集群的仅限 Linux 部署,目标为 RKE2 Linux 工作节点:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
nodeSelector:
kubernetes.io/os: "linux"
node-role.kubernetes.io/worker: "true"
-
使用节点亲和性迁移的 RKE2 混合集群的仅限 Linux 部署,目标为 RKE2 Linux 工作节点:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: node-role.kubernetes.io/worker
operator: In
values:
- "true"
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
SUSE® Rancher Prime: RKE2 Windows 支持的 Windows Server 版本
Kubernetes 版本支持
| 以下列出的所有版本均根据 Rancher v2.6.7 支持矩阵 受到 SLA 支持。未列出的任何版本应视为已达到 EOL,并且不受 SUSE 的 SLA 支持。 |
将工作负载迁移到 SUSE® Rancher Prime: RKE2 Windows
参考 Rancher 2.5 与的表格。Rancher 2.6 Windows 集群支持矩阵 和 Rancher 2.5 与。Rancher 2.6 支持的 Kubernetes 版本用于配置 RKE1 和 RKE2 Windows 集群,您会发现 RKE1 和 RKE2 之间的 Kubernetes 版本重叠发生在 1.22。这是在遵循 Rancher 推荐的方法时迁移 RKE1 Windows 工作负载所需的基础版本。
Rancher 2.5 的就地升级
-
将 Rancher 版本升级到 v2.6.5 及以上。
-
将 RKE1 Windows 下游集群升级到 RKE1 v1.22,使用最新可用的补丁版本。
-
使用 RKE2 v1.22 配置一个新的 RKE2 Windows 下游集群,使用与 RKE1 Windows 集群相匹配的补丁版本。
-
开始将 Windows 工作负载从 RKE1 迁移到 RKE2 集群。
-
执行验证测试,以确保在将应用程序从 RKE1 迁移到 RKE2 时没有功能丧失或变化。
-
在成功进行验证测试后,您可以选择将 RKE2 1.22.x 集群升级到新的次要版本,例如 1.23 或 1.24。
将 Windows 工作负载迁移到新的 Rancher 环境
| 执行以下任一选项需要 Rancher v2.6.5 或更高版本。 |
当使用 RKE1 和 RKE2 的匹配 Kubernetes 补丁版本时:
-
使用 RKE2 v1.22 配置一个新的 RKE2 Windows 下游集群,使用与 RKE1 Windows 集群相匹配的补丁版本。
-
开始将 Windows 工作负载从 RKE1 迁移到 RKE2 集群。
-
执行验证测试,以确保在将应用程序从 RKE1 迁移到 RKE2 时没有功能丧失或变化。
-
在成功进行验证测试后,您可以选择将 RKE2 1.22.x 集群升级到新的次要版本,例如 1.23 或 1.24。
当使用 RKE2 的较新 Kubernetes 补丁版本时:
-
使用 RKE2 v1.23 或 v1.24 配置一个新的 RKE2 Windows 下游集群。
-
开始将 Windows 工作负载从 RKE1 迁移到 RKE2 集群。
-
执行验证测试,以确保在将应用程序从 RKE1 迁移到 RKE2 时没有功能丧失或变化。