このドキュメントは、Anthos clusters on bare metal を実行するアプリケーション オーナーを対象としています。このドキュメントでは、Anthos VM ランタイムを使用する仮想マシン(VM)のディスク リソースを作成し、管理する方法について説明します。
準備
このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。
- Anthos clusters on bare metal バージョン 1.12.0(
anthosBareMetalVersion: 1.12.0
)以降のクラスタへのアクセス権。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on bare metal を試すか、クラスタ作成の概要をご覧ください。 kubectl
のプラグインとしてインストールされたvirtctl
クライアント ツール。必要に応じて、virtctl クライアント ツールをインストールします。
ディスクがアタッチされた VM を作成する
VM を作成するときに、既存のブートディスクまたはデータディスクをアタッチできます。また、イメージからディスクを作成(ブートディスクなど)することも、空のディスクを作成することもできます。
空のディスク
このシナリオでは、空のディスクを作成して VM にアタッチします。このシナリオでは、アプリケーション データを保存するためのデータディスクを作成できます。
選択したエディタで
VirtualMachineDisk
とVirtualMachine
を定義するマニフェスト(my-vm.yaml など)を作成します。nano my-vm.yaml
次の YAML 定義をコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
この例では、
DISK_NAME
という名前の空の10Gi
(10 ギビバイト)ディスクを作成します。VM のspec.disks
セクションで、次のセクションに示すように、イメージなどからブートディスクをアタッチする必要もあります。マニフェスト ファイルをエディタに保存して閉じます。
kubectl
を使用して VM とディスクを作成します。kubectl apply -f my-vm.yaml
イメージから作成
このシナリオでは、イメージからディスクを作成して VM にアタッチします。このシナリオでは、イメージなどからブートディスクを作成できます。イメージからデータディスクを作成してアタッチすることもできます。
選択したエディタで
VirtualMachineDisk
とVirtualMachine
を定義するマニフェスト(my-vm.yaml など)を作成します。nano my-vm.yaml
次の YAML 定義をコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 20Gi source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv
この例では、公開 Ubuntu イメージを使用して、
VM_NAME-boot-dv
という名前の20Gi
(20 ギビバイト)ディスクを作成します。VM のspec.disks
セクションで、ディスクがboot: true
に設定されています。マニフェストをエディタに保存して閉じます。
kubectl
を使用して VM とディスクを作成します。kubectl apply -f my-vm.yaml
既存のディスク
このシナリオでは、空のディスクを作成して VM にアタッチします。このシナリオでは、アプリケーション データを保存するためのデータディスクを作成できます。
選択したエディタで
VirtualMachine
マニフェスト(my-vm.yaml など)を作成します。nano my-vm.yaml
次の YAML 定義をコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: EXISTING_DISK_NAME
この例では、
EXISTING_DISK_NAME
という名前の既存のディスクをアタッチします。VM の
spec.disks
セクションで、前のセクションで示したように、イメージなどからブートディスクをアタッチする必要もあります。VM マニフェストをエディタに保存して閉じます。
kubectl
を使用して VM を作成します。kubectl apply -f my-vm.yaml
ディスクを作成して既存の VM にアタッチする
既存の VM がある場合は、ディスクを作成してアタッチし、アプリケーションのライフサイクルをサポートできます。ディスクをアタッチする前に、VM が停止状態になっている必要があります。
空のディスク
このシナリオでは、空のディスクを作成して VM にアタッチします。このシナリオでは、アプリケーション データを保存するためのデータディスクを作成できます。
必要に応じて、
kubectl
を使用して VM を停止します。kubectl virt stop vm VM_NAME
VM_NAME
は、停止する VM の名前に置き換えます。既存の VM リソース(
my-vm
など)を編集します。kubectl edit gvm VM_NAME
VirtualMachine
YAML マニフェストを更新して、先頭にVirtualMachineDisk
セクションを追加し、VM のspec.disks
セクションの最後にディスクをアタッチします。apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
この例では、
DISK_NAME
という名前の空の10Gi
(10 ギビバイト)ディスクを作成します。更新した VM マニフェストをエディタに保存して閉じます。
kubectl
を使用して VM を起動します。kubectl virt start vm VM_NAME
VM_NAME
は、起動する VM の名前に置き換えます。
イメージから作成
このシナリオでは、ソースイメージからディスクを作成し、VM にアタッチします。
必要に応じて、
kubectl
を使用して VM を停止します。kubectl virt stop vm VM_NAME
VM_NAME
は、停止する VM の名前に置き換えます。既存の VM リソース(
my-vm
など)を編集します。kubectl edit gvm VM_NAME
VirtualMachine
マニフェストを更新して、先頭にVirtualMachineDisk
セクションを追加し、VM のspec.disks
セクションの最後にディスクをアタッチします。apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi source: http: url: http://example.com/my-disk-img.qcow2 --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
この例では、
http://example.com/my-disk-img.qcow2
HTTP ソースからDISK_NAME
という名前の10Gi
(10 ギビバイト)ディスクを作成します。更新した VM マニフェストをエディタに保存して閉じます。
kubectl
を使用して VM を起動します。kubectl virt start vm VM_NAME
VM_NAME
は、起動する VM の名前に置き換えます。
ディスクの作成
このシナリオでは、VM リソースとは別にディスク リソースを作成します。このシナリオでは、事前にディスクを作成してから、必要に応じて VM にアタッチできます。
空のディスク
空のディスクを作成するには、次の手順を行います。
選択したエディタで、
VirtualMachineDisk
マニフェスト(my-disk.yaml など)を作成します。nano my-disk.yaml
次の YAML 定義をコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi
この例では、
DISK_NAME
という名前の空の10Gi
(10 ギビバイト)ディスクを作成します。ディスク マニフェストをエディタに保存して閉じます。
kubectl
を使用してディスクを作成します。kubectl apply -f my-disk.yaml
イメージから作成
イメージからディスクを作成するには、次の手順を実行します。
選択したエディタで、
VirtualMachineDisk
マニフェスト(my-disk.yaml など)を作成します。nano my-disk.yaml
次の YAML 定義をコピーして貼り付けます。
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 20Gi source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
この例では、公開 Ubuntu イメージを使用して、
DISK_NAME
という名前の20Gi
(20 ギビバイト)ディスクを作成します。ディスク マニフェストをエディタに保存して閉じます。
kubectl
を使用してディスクを作成します。kubectl apply -f my-disk.yaml
次のステップ
- 認証情報を作成し、使用して Cloud Storage からイメージをインポートする。
- Anthos clusters on bare metal でストレージ クラスを作成して使用する。
- VM または VM の仮想ディスク リソースが不要になった場合、ベアメタル版 Anthos クラスタの VM を削除する。