この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

RKE1からSUSE® Rancher Prime: RKE2 Windowsへの移行ガイダンス

この文書の内容は、RancherサポートのSLAの対象外です。注意して進めてください。

この文書では、エンドユーザーがRKE1からRKE2にWindowsワークロードを移行する方法について説明します。

RKE1 Windowsスケジューリング

RKE1 Windowsワークロードのスケジューリングは、テイントとトレランスに基づいています。

RKE1 Windowsクラスター内のすべてのLinuxノードは、割り当てられた役割に関係なく、デフォルトのテイントを持ち、ワークロードにトレランスが設定されていない限り、スケジュールされることはありません。これは、Windowsワークロードのみを実行するように設計されたRKE1 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専用デプロイメント

ノードセレクターとノードアフィニティを利用する際は、以下の点に注意してください:

  • `nodeSelector`と`nodeAffinity`の両方が指定されている場合、`Pod`がノードにスケジュールされるためには両方を満たす必要があります。

  • 単一の`nodeSelectorTerms`に関連付けられた複数の`matchExpressions`を指定した場合、すべての`matchExpressions`が満たされている場合にのみ`Pod`がノードにスケジュールされることができます。

  • 移行前の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

RKE1 WindowsがサポートするWindows Serverのバージョン

長期サービスチャネル(LTSC)

  • Windows Server 2019 LTSC ✅は2024年1月9日にメインストリームEOLに達し、2029年1月9日に延長EOLに達します。

セミアニュアルチャネル(SAC)

  • Windows Server 20H2 SAC ❌は2022年8月9日にEOLに達しました。

  • Windows Server 2004 SAC ❌は2021年12月14日にEOLに達しました。

  • Windows Server 1909 SAC ❌は2021年5月11日にEOLに達しました。

  • Windows Server 1903 SAC ❌は2020年12月8日にEOLに達しました。

  • Windows Server 1809 SAC ❌は2020年11月10日にEOLに達しました。

SUSE® Rancher Prime: RKE2 WindowsがサポートするWindows Serverのバージョン

長期サービスチャネルSUSE® Rancher Prime: RKE2

  • Windows Server 2019 LTSC ✅は2024年1月9日にメインストリームEOLに達し、2029年1月9日に延長EOLに達します。

  • Windows Server 2022 LTSC ✅は、2026年10月13日にメインストリームEOLに達し、2031年10月13日に延長EOLに達します。

RKE2ではSACはサポートされていません。

詳細については、以下の参考文献をご覧ください:

Kubernetesバージョンサポート

以下に示すすべてのバージョンは、 Rancher v2.6.7サポートマトリックスに基づいてSLAサポートされています。リストにないバージョンは、EOLと見なされ、SUSEによるSLAのサポートはありません。

Rancher 2.5 対Windowsクラスター用のRancher 2.6サポートマトリックス

RKE1 対RKE2 WindowsクラスターでサポートされているKubernetesバージョン:

Kubernetesバージョン RKE1 RKE2

1.18

1.19

1.20

1.21

1.22

1.23

1.24

1.25+

Rancher 2.5 対Rancher 2.6がRKE1およびSUSE® Rancher Prime: RKE2 WindowsクラスターのプロビジョニングにサポートするKubernetesバージョン

Rancherバージョン Kubernetesバージョン RKE1 RKE2

2.5 - RKE1 プロビジョニング

1.18 1.19 1.20

2.6 - RKE1 プロビジョニング

1.18 1.19 1.20 1.21 1.22

2.6 - RKE2 プロビジョニング

1.22 1.23 1.24 1.25+

SUSE® Rancher Prime: RKE2Windows へのワークロードの移行をガイドする

Rancher 2.5 と比較した表を参照する。Windows クラスターのための Rancher 2.6 サポートマトリックスRancher 2.5 と比較する。RKE1 および RKE2 Windows クラスターのプロビジョニングのための Rancher 2.6 対応 Kubernetes バージョン、RKE1 と RKE2 の間の Kubernetes バージョンの重複は 1.22 で発生します。これは、Rancher が推奨するアプローチに従って RKE1 Windows ワークロードを移行するために必要なベースバージョンです。

Rancher 2.5 のインプレースアップグレード

  1. Rancher バージョンを v2.6.5+ にアップグレードします。

  2. 最新のパッチバージョンを使用して RKE1 Windows ダウンストリームクラスターを RKE1 v1.22 にアップグレードします。

  3. RKE1 Windows クラスターと一致するパッチバージョンを使用して RKE2 v1.22 の新しい RKE2 Windows ダウンストリームクラスターをプロビジョニングします。

  4. RKE1 から RKE2 クラスターへの Windows ワークロードの移行を開始します。

  5. アプリケーションを RKE1 から RKE2 に移行する際に機能の喪失や変更がないことを確認するために、検証テストを実施します。

  6. 成功した検証テストが行われた後、RKE2 1.22.x クラスターを 1.23 や 1.24 などの新しいマイナーバージョンにアップグレードすることができます。

新しい Rancher 環境への Windows ワークロードの移行

以下のいずれかのオプションを実行するには、Rancher v2.6.5 以上が必要です。

RKE1 と RKE2 の一致する Kubernetes パッチバージョンを使用する場合:

  1. RKE1 Windows クラスターと一致するパッチバージョンを使用して RKE2 v1.22 の新しい RKE2 Windows ダウンストリームクラスターをプロビジョニングします。

  2. RKE1 から RKE2 クラスターへの Windows ワークロードの移行を開始します。

  3. アプリケーションを RKE1 から RKE2 に移行する際に機能の喪失や変更がないことを確認するために、検証テストを実施します。

  4. 成功した検証テストが行われた後、RKE2 1.22.x クラスターを 1.23 や 1.24 などの新しいマイナーバージョンにアップグレードすることができます。

RKE2 の新しい Kubernetes パッチバージョンを使用する場合:

  1. RKE2 v1.23 または v1.24 を使用して、新しい RKE2 Windows ダウンストリーム クラスターをプロビジョニングします。

  2. RKE1 から RKE2 クラスターへの Windows ワークロードの移行を開始します。

  3. アプリケーションを RKE1 から RKE2 に移行する際に機能の喪失や変更がないことを確認するために、検証テストを実施します。