vSphere with Tanzu で提供されている仮想マシン サービス機能を使用すると、DevOps エンジニアは一般的な共有 Kubernetes 環境でコンテナに加え、仮想マシンをデプロイして実行することができます。この仮想マシン サービスを使用して、vSphere 名前空間 内の仮想マシンのライフサイクルを管理できます。仮想マシン サービスは、スタンドアローン仮想マシンおよび Tanzu Kubernetes クラスタを構成する仮想マシンを管理します。
一般的に、コンテナではなく仮想マシンを使用したワークロードの実行は、ビジネスのニーズや目標に応じて決定されます。仮想マシンを実行する場合の詳細については、vSphere with Tanzu での仮想マシンの使用を参照してください。
仮想マシン サービスの概念
vSphere 名前空間 にデプロイする仮想マシンの状態を記述するには、仮想マシン クラス、仮想マシン イメージ、ストレージ クラスなどのパラメータを使用します。仮想マシン サービスは、これらの仕様を組み合わせて、スタンドアローン仮想マシンまたは Tanzu Kubernetes クラスタをサポートする仮想マシンを作成します。
- VM サービス
-
仮想マシン サービスは、仮想マシンおよび関連する vSphere リソースを管理するための Kubernetes スタイルの宣言型 API を提供する
vSphere with Tanzu コンポーネントです。仮想マシン サービスを使用すると、vSphere 管理者はリソースを提供し、仮想マシン クラスや仮想マシン イメージなどのテンプレートを Kubernetes に提供できるようになります。DevOps エンジニアは、これらのリソースを使用して、仮想マシンに目標とする状態を記述できます。DevOps エンジニアが仮想マシンの状態を指定すると、仮想マシン サービスは目標とする状態を、バッキング インフラストラクチャ リソースに対して実現された状態に変換します。
仮想マシン サービスを介して作成された仮想マシンを管理するには、kubectl コマンドを使用して Kubernetes 名前空間から管理する必要があります。vSphere 管理者は、仮想マシンを vSphere Client から管理することはできませんが、詳細を表示し、仮想マシンで使用されるリソースを監視することはできます。詳細については、『vSphere with Tanzu で利用可能な仮想マシンの監視』を参照してください。
- VM クラス
-
仮想マシン クラスは、仮想マシンの一連のリソースの要求に使用可能な仮想マシンの仕様です。仮想マシン クラスは vSphere 管理者によって制御および管理され、仮想 CPU の数、メモリ容量、予約設定などのパラメータを定義します。定義されたパラメータは、スーパーバイザー クラスタの基盤となるインフラストラクチャ リソースによってバッキングされて、保証されます。
vSphere 管理者はカスタムの仮想マシン クラスを作成できます。
また、ワークロード管理には、いくつかのデフォルトの仮想マシン クラスがあります。デフォルトのクラス タイプには、一般に、保証型とベスト エフォート型の 2 つのエディションがあります。保証型のエディションは、仮想マシンの仕様によって要求されるリソースを完全に予約します。ベスト エフォート型のクラス エディションは、リソースの予約を行いません。つまり、リソースのオーバーコミットが可能です。通常、保証型のタイプは本番環境で使用されます。
デフォルトの仮想マシン クラスの例を次に示します。
クラス CPU メモリ (GB) 予約済みの CPU とメモリ guaranteed-large
4 16 はい best-effort-large
4 16 なし guaranteed-small
2 4 はい best-effort-small
2 4 なし vSphere 管理者は既存の仮想マシン クラスを任意の数だけ割り当てて、特定の名前空間内で DevOps エンジニアがこれらを使用できるようにします。
仮想マシン クラスを使用すると、DevOps エンジニアの操作環境は簡素化されます。DevOps は、エンジニアが作成する各仮想マシンの構成全体を認識する必要はありません。代わりに、使用可能なオプションから仮想マシン クラスを選択することができ、仮想マシン サービスは仮想マシン構成を管理するようになります。
Kubernetes 側では、仮想マシン クラスが VirtualMachineClass および VirtualMachineClassBinding のリソースとして表示されます。
- 仮想マシン イメージ
-
仮想マシン イメージは、オペレーティング システム、アプリケーション、データなどのソフトウェア構成が含まれているテンプレートです。
DevOps エンジニアは仮想マシンを作成するときに、名前空間に関連付けられているコンテンツ ライブラリからイメージを選択できます。イメージは DevOps に VirtualMachineImage オブジェクトとして公開されます。
仮想マシン サービスは一部の仮想マシン イメージとゲスト OS をサポートします。互換性のある仮想マシン イメージは VMware Marketplace に OVF として表示されます。仮想マシン サービスでサポートされている仮想マシン イメージのみを使用してください。互換性のあるイメージを見つけるには、 VMware Cloud Marketplace Web サイトで仮想マシン サービス イメージを検索します。CentOS の仮想マシン サービス イメージの例については、「CentOS の仮想マシン サービス イメージ」を参照してください。
- コンテンツ ソース
- DevOps エンジニアは、仮想マシンを作成するためのイメージ ソースとしてコンテンツ ライブラリを使用します。vSphere 管理者は、仮想マシン クラスと同様に、DevOps エンジニアがこれらを使用できるように、既存のコンテンツ ライブラリを名前空間に割り当てることができます。
- ストレージ クラス
- 仮想マシン サービスはストレージ クラスを使用して仮想ディスクを配置し、パーシステント ボリュームを動的に接続します。ストレージ クラスの詳細については、 vSphere with Tanzu でのパーシステント ストレージの使用を参照してください。
- 仮想マシンの仕様
- DevOps エンジニアは、仮想マシン イメージ、仮想マシン クラス、およびストレージ クラスをまとめて記述する YAML ファイルで、仮想マシンの目標とする状態を記述します。
- ネットワーク
- 仮想マシン サービスには特定の要件が設定されていないため、 vSphere with Tanzu で使用可能なネットワーク構成を利用します。仮想マシン サービスは、vSphere ネットワークと NSX-T というネットワーク タイプを両方サポートしています。仮想マシンをデプロイすると、使用可能なネットワーク プロバイダによって仮想マシンに固定 IP アドレスが割り当てられます。詳細については、『 vSphere with Tanzu のネットワーク』を参照してください。
仮想マシンをプロビジョニングするための vSphere 管理者のワークフロー
vSphere 管理者は仮想マシンのポリシーとガバナンスの保護を設定し、仮想マシン クラスや仮想マシン テンプレートなどの仮想マシン リソースを DevOps エンジニアに提供します。仮想マシンのデプロイ後は、vSphere Client を使用して仮想マシンを監視できます。
手順 | 説明 | 方法 |
---|---|---|
1 | 仮想マシン クラスを作成および管理します。 |
|
2 | 一連の仮想マシン クラスを名前空間に関連付けます。 | 仮想マシン クラスと vSphere with Tanzu の名前空間の関連付け |
3 | コンテンツ ライブラリを作成および管理します。 |
|
4 | コンテンツ ライブラリを名前空間に関連付けます。 |
|
5 | ストレージ クラスを名前空間に関連付けます。 | vSphere 名前空間 の作成と設定 |
6 | デプロイされた仮想マシンを監視します。 | vSphere with Tanzu で利用可能な仮想マシンの監視 |
仮想マシンをプロビジョニングするための DevOps エンジニアのワークフロー
権限を持つ DevOps エンジニアは、使用可能な仮想マシン リソースを確認し、名前空間に仮想マシンをデプロイできます。これらのエンジニアは kubectl コマンドを使用して、以下のタスクを実行できます。
手順 | 説明 | 方法 |
---|---|---|
1 | 名前空間に関連付けられている仮想マシン クラス、イメージ、その他のリソースを一覧表示します。 | vSphere with Tanzu の名前空間で使用可能な仮想マシン リソースの表示 |
2 | 仮想マシンを作成します。 |
|