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

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

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

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

重要

Container-native Virtualization のコンピュートリソースは、テクノロジープレビュー機能のみとなっています。テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、実稼働環境での使用は推奨していません。これらの機能は、近日発表予定の製品機能をリリースに先駆けてご提供することで、お客様は開発プロセス時に、機能をテストして、フィードバックをお寄せいただくことができます。Red Hat テクノロジープレビュー機能のサポート範囲に関する情報は、「https://access.redhat.com/ja/support/offerings/techpreview」を参照してください。

10.1. Container-native Virtualization のプロビジョニングの前提条件

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

Satellite の Container-native Virtualization プラグインの有効化

Satellite の Container-native Virtualization プラグインを有効にするには、以下のオプションを指定して satellite-installer コマンドを実行する必要があります。

# satellite-installer --enable-foreman-plugin-kubevirt

Container-native Virtualization を使用してプロビジョニングするユーザーロールとパーミッション

Satellite に Container-native Virtualization の仮想マシンをプロビジョニングするには、以下のロールを割り当てたユーザーアカウントが必要です。

  • ホストの編集
  • ホストの表示

詳しい情報は、『Red Hat Satellite 管理ガイド』の「ユーザーへのロールの割り当て」を参照してください。

また、以下のパーミッションを指定したカスタムロールを作成する必要があります。

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

ベアラートークン認証

Container-native Virtualization のコンピュートリソースを作成する前に、HTTP と HTTPS 認証に使用するベアラートークンを生成する必要があります。

  1. Container-native Virtualization サーバーで、トークンを含むシークレットを表示するには以下のコマンドを入力します。

    # kubectl get secrets
  2. シークレットのトークンを表示するには、次のコマンドを入力します。

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

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

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

手順

Container-native Virtualization 接続を Satellite に追加するには、以下の手順を行います。

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