第12章 Container-native Virtualization を使用した仮想マシンのプロビジョニング

Container-native Virtualization は、Kubernetes を採用済みまたは採用予定ではあるものの、簡単にコンテナー化できない既存の仮想マシンワークロードもある開発チームのニーズに対応します。この技術を使用すると、開発プラットフォームを統一して、開発者はアプリケーションコンテナー内にあるアプリケーションや、共有環境にある仮想マシンをビルド、変更、デプロイできます。これらの機能は、オープンなハイブリッドクラウドで、迅速にアプリケーションの最新化を図るサポートをします。

Red Hat Satellite では、Container-native Virtualization 向けのコンピュートリソースを作成し、Satellite を使用して Kubernetes 仮想マシンをプロビジョニングおよび管理できます。

今回のリリースでは、テンプレートのプロビジョニングはサポートされていません。

重要

Container-native Virtualization のコンピュートリソースは、テクノロジープレビュー機能のみとなっています。テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • Red Hat Enterprise Linux の同期済みのコンテンツリポジトリー。詳細は、コンテンツ管理ガイドRed Hat リポジトリーの同期 を参照してください。
  • ホスト登録用のアクティベーションキー。詳細は、コンテンツ管理ガイドアクティベーションキーの作成 を参照してください。
  • Container-native Virtualization ユーザーを用意し、OpenShift Container Platform 仮想クラスターの cluster-admin パーミッションを割り当てる。詳細は、Openshift Container Platform ドキュメントの 認証 ガイドの RBAC を使用したパーミッションの定義および適用 を参照してください。
  • コンテナーネイティブ仮想化サーバーでネットワークを管理する Capsule Server。Capsule Server との競合を避けるために他の DHCP サービスがこのネットワーク上で実行されていないことを確認します。Capsule Server のネットワークサービス設定の詳細は、ネットワークの設定 を参照します。
  • 以下のロールが割り当てられた Satellite ユーザーアカウント:

  • 以下のパーミッションが指定された Satellite のカスタムロール

    • view_compute_resources
    • destroy_compute_resources_vms
    • power_compute_resources_vms
    • create_compute_resources_vms
    • view_compute_resources_vms
    • view_locations
    • view_subnets

      ロール作成に関する詳細は、Red Hat Satellite の管理 ガイドの ロールの作成 を参照してください。ロールにパーミッションを追加する方法については、Red Hat Satellite の管理 ガイドの ロールへのパーミッションの追加 を参照してください。

12.1. Satellite Server への Container-native Virtualization 接続の追加

この手順を使用して、Container-native Virtualization を Satellite のコンピュートリソースとして追加します。

手順

  1. 以下の satellite-installer コマンドを入力して、Satellite の Container-native Virtualization プラグインを有効にします。

    # satellite-installer --enable-foreman-plugin-kubevirt
  2. HTTP と HTTPs 認証に使用するベアラートークンを生成します。Container-native Virtualization サーバーで、トークンを含むシークレットを表示します。

    # kubectl get secrets
  3. シークレットのトークンをリストします。

    # kubectl get secrets YOUR_SECRET -o jsonpath='{.data.token}' | base64 -d | xargs

    このトークンを書き留めてください。この手順の後半で使用します。

  4. Satellite Web UI で インフラストラクチャー > コンピュートリソース に移動して、コンピュートリソースの作成 をクリックします。
  5. 名前 フィールドには、新規コンピュートリソースの名前を入力します。
  6. プロバイダー の一覧から KubeVirt を選択します。
  7. 説明 フィールドには、コンピュートリソースの説明を入力します。
  8. ホスト名 フィールドで、使用する Container-native Virtualization サーバーのアドレスを入力します。
  9. API ポート フィールドに、Satellite から Container-native Virtualization へのプロビジョニング要求に使用するポート番号を入力します。
  10. Namespace フィールドで、使用する Container-native Virtualization の仮想クラスターのユーザー名を入力します。
  11. トークン フィールドに、HTTP および HTTPs 認証向けのベアラートークンを入力します。
  12. オプション: X509 認証局 フィールドに、API サーバー呼び出しのクライアントの証明書認証を有効にする証明書を入力します。