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

Harvester ノード ドライバー

Harvester ノード ドライバーは、Docker Machine ドライバーに似ており、SUSE Virtualization クラスター内で VM をプロビジョニングするために使用され、Rancher はそれを使用して Kubernetes クラスターを起動および管理します。

ノード ドライバーがホストするノード プールに Kubernetes をインストールする利点の一つは、ノードがクラスターとの接続を失った場合、Rancher が自動的に別のノードを作成してクラスターに参加させ、ノード プールの数が期待通りになることを保証することです。 さらに、Harvester ノード ドライバーはデフォルトでHarvester クラウド プロバイダーと統合されており、ビルトインのロード バランサー サポートや、ベアメタル クラスターからゲスト Kubernetes クラスターへのストレージ パススルーを提供し、ネイティブ ストレージ パフォーマンスを得ることができます。

このセクションでは、Harvester ノード ドライバーを使用して Kubernetes クラスターを起動および管理するためのRancherの構成方法を学びます。

Harvester ノード ドライバーはクラウド イメージのみをサポートしています。これは、ISOイメージは通常、クリーンなデプロイメント(ユーザーの介入を必要としない)を妨げる追加のセットアップを必要とし、クラウド環境では通常使用されないためです。

Harvester ノード ドライバー

Rancher v2.6.3 から、Harvester ノード ドライバーはデフォルトで有効になっています。クラスター管理 > ドライバー > ノード ドライバー ページに移動して、Harvester ノード ドライバーのステータスを確認できます。

edit-node-driver

Harvester ノード ドライバーが有効になっていると、SUSE Virtualization クラスターの上に Kubernetes クラスターを作成し、Rancher から管理できます。

harvester-node-driver
  • サポートされている RKE2 バージョンとゲスト OS バージョンについては、 Rancher ダウンストリーム クラスター サポート マトリックスを参照してください。

  • Harvester ノード ドライバーの設定に加えられた変更は永続化されません。適用された変更は、Rancher コンテナを再起動するとリセットされます。

  • Harvester ノード ドライバー v0.6.3 以降、バックエンドからの`qemu-guest-agent`の自動インジェクションが削除されました。使用しているイメージに`qemu-guest-agent`パッケージが含まれていない場合でも、`userdata`設定を介してインストールできます。そうでなければ、クラスターは正常にプロビジョニングされません。

     #cloud-config
     package_update: true
     packages:
     - qemu-guest-agent
     runcmd:
     - - systemctl
       - enable
       - '--now'
       - qemu-guest-agent.service

既知の問題

Rancherは、対応する API トークンが期限切れになると、ゲスト クラスターを管理またはスケールする能力を失います。

問題: #5827

説明: Rancherは、SUSE Virtualization上でゲスト Kubernetes クラスターをプロビジョニングするために埋め込まれた認証トークンを持つ kubeconfigs を使用します。これらのトークンが期限切れになると、Rancherは対応するRancher管理のゲスト Kubernetes クラスターに対する管理操作を実行する能力を失います。この問題は、SUSE Virtualization上で実行されているゲスト Kubernetes クラスターにのみ影響し、Rancher v2.8.xにアップグレードまたはインストールした後に作成されたクラウド認証情報を使用しており、 kubeconfig-default-token-ttl-minutes設定と auth-token-max-ttl-minutes設定をそれぞれ30日と90日に減少させました。

状態一時的な回避策が利用可能です。

最終更新日時:2024-05-21

RKE2 Kubernetes クラスター

RKE2 Kubernetes クラスターの作成を参照してください。

K3s Kubernetes クラスター

K3s Kubernetes クラスターの作成を参照してください。

トポロジー分散制約

ゲスト Kubernetes クラスター内では、 トポロジー分散制約を使用して、ワークロードがノード間でどのように分散されるかを管理できます。これは、リージョンやゾーンなど、障害ドメインに関する要因を考慮に入れたものです。これにより、SUSE Virtualizationクラスターリソースの高可用性と効率的なリソース利用が実現されます。

`v1.25.x`より前のRKE2バージョンでは、トポロジーラベル同期機能をサポートするために必要な最小バージョンは次のとおりです:

最小必要RKE2バージョン

>= v1.24.3+rke2r1

>= v1.23.9+rke2r1

>= v1.22.12+rke2r1

さらに、カスタムインストールの場合、Harvester Cloud Providerのバージョンは`>= v0.1.4`である必要があります。

ゲスト クラスター ノードにトポロジーラベルを同期する

クラスターのインストール中に、Harvester ノード ドライバーは自動的に VM ノードからゲスト クラスター ノードへのトポロジーラベルの同期を支援します。現在、`region`と`zone`のトポロジーラベルのみがサポートされています。

  1. SUSE Virtualizationノードの*ホスト* > 設定の編集 > *ラベル*ページでトポロジーラベルを設定します。例えば、次のようにトポロジーラベルを追加します:

    topology.kubernetes.io/region: us-east-1
    topology.kubernetes.io/zone: us-east-1a
    node add affinity labels
  2. Harvester クラウド プロバイダーを有効にした Harvester ノード ドライバーを使用して、ダウンストリーム RKE2 クラスターを作成します。VMの再構築後にノードが他のゾーンに移動するのを防ぐために、ノードアフィニティルールを追加することをお勧めします。

    create rke2 harvester cluster 3
  3. クラスターが準備完了になったら、ゲスト Kubernetes クラスターのノードにトポロジーラベルが正常に同期されていることを確認してください。

  4. 今、ゲスト Kubernetes クラスターにワークロードをデプロイし、 トポロジー分散制約を使用して管理できるはずです。

Harvester Cloud Provider >= v0.2.0の場合、VM(ゲストノードに対応)が移行または更新されると、SUSE Virtualizationノードのトポロジーラベルが自動的に再同期されます。

Harvester Cloud Provider < v0.2.0の場合、ラベルの同期はゲストノードの初期化中のみ発生します。ノードが異なるリージョンやゾーンに移動するのを防ぐために、クラスターのプロビジョニング中にノードアフィニティルールを追加することをお勧めします。これにより、再構築後も同じゾーンでVMをスケジュールできるようになります。