Anthos VM ランタイムで VM 構成を編集

このドキュメントは、Anthos clusters on bare metal を実行するアプリケーション オーナーを対象としています。このドキュメントでは、Anthos VM ランタイムを使用して実行する仮想マシン(VM)を編集する方法について説明します。たとえば、CPU やメモリなどのリソース割り当ての編集や、VM の接続先ネットワークの変更を行うことができます。

VirtualMachine リソースの spec セクションに存在する任意のフィールドを変更できます。VM のラベルを編集することもできます。VM 名(metadata.name)など他のフィールドは編集できません。リソースを編集する前に、VM が Stopped 状態になっている必要があります。

VirtualMachine リソースへの編集の保存時にエラーが含まれる場合、変更は拒否され、通知が表示されます。エラーを修正して、もう一度 VirtualMachine リソースを保存してみてください。変更後に VM が起動しない場合は、kubectl describe gvm VM_NAME コマンドを使用してトラブルシューティング情報を表示し、エラーを修正します。

準備

このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。

コンピューティング リソースを編集

コンピューティング ワークロードに変更が必要な場合は、VM に割り当てる仮想 CPU の数と仮想メモリの量を更新できます。コンピューティング ワークロードを編集するには、次の手順を行います。

  1. 編集する VM を停止します。

    kubectl virt stop VM_NAME
    

    VM_NAME は、停止する VM の名前に置き換えます。

  2. kubectl を使用して VM を編集します。

    kubectl edit gvm VM_NAME
    

    VM_NAME は、編集する VM の名前に置き換えます。

  3. エディタで、変更するコンピューティング リソースの値を更新します。

    たとえば、次の VirtualMachine マニフェストの例は、VM リソースに 2 個の vCPU が割り当てられていることを示しています。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 2
    ...
    

    割り当てられている vCPU の数を更新する場合は、次の例に示すように、エディタでその値を変更します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 4
    ...
    
  4. VM マニフェストを保存して閉じます。

  5. 編集した VM を起動します。

    kubectl virt start VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

  6. VM の STATUS を確認します。

    kubectl get gvm VM_NAME
    

    VM が Running 状態になっていることを確認します。VM がホストが提供できるよりも多くのコンピューティング リソースをリクエストすると、VM は起動できません。VM が Running 状態でない場合は、VirtualMachine リソース マニフェストとホストのコンピューティング リソースの可用性を確認します。

    次の出力例では、Running 状態の VM を示します。

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. kubectl describe gvm を使用して、VM に関する詳細情報を表示します。

    kubectl describe gvm VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

    次の出力例では、vCPU の数が正常に変更された VM の要約情報を示します。

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
        Cpu:
          Vcpus:  4
    ...
    

詳細については、特定の vCPU とメモリ コンピューティング構成を持つ VM を作成するをご覧ください。

ディスク リソースを編集

ストレージ要件が変わった場合は、VM の仮想ディスクを追加または削除できます。VM にアタッチされているディスクを編集するには、次の手順を行います。

  1. 編集する VM を停止します。

    kubectl virt stop VM_NAME
    

    VM_NAME は、停止する VM の名前に置き換えます。

  2. kubectl を使用して VM を編集します。

    kubectl edit gvm VM_NAME
    

    VM_NAME は、編集する VM の名前に置き換えます。

  3. エディタで、spec.disks セクションを更新してディスクのアタッチや切断を行います。

    たとえば、次の VirtualMachine マニフェストの例は、ブートディスクのみが VM にアタッチされていることを示しています。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
      ...
    

    既存の空のディスクを追加する場合は、次の例に示すように、エディタでディスク構成を更新します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
        - virtualMachineDiskName: DISK_NAME
      ...
    

    DISK_NAME は、アタッチするディスクの名前に置き換えます。

  4. VM マニフェストを保存して閉じます。

  5. 編集した VM を起動します。

    kubectl virt start VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

  6. VM の STATUS を確認します。

    kubectl get gvm VM_NAME
    

    VM が Running 状態になっていることを確認します。VM がホストが提供できない StorageClass またはディスクの割り当てをリクエストすると、VM は起動できません。VM が Running 状態でない場合は、VirtualMachineVirtualMachineDisk のリソース マニフェストとホスト ストレージのサポートを確認します。

  7. kubectl describe gvm を使用して、VM に関する詳細情報を表示します。

    kubectl describe gvm VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

    次の出力例では、アタッチされたディスクの変更が正常に適用された、VM の情報を抜粋して示します。

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Disks:
        Name:  vm1-boot-dv
        Name:  data-disk-01
    ...
    

詳細については、ディスクの作成と管理をご覧ください。

ネットワーク リソースの編集

インフラストラクチャが変更されると、VM のネットワーク構成を変更できます。たとえば、VM を別の仮想ネットワークに接続できます。または、IP アドレスを手動で割り当てることもできます。VM のネットワーク構成を編集するには、次の手順を行います。

  1. 編集する VM を停止します。

    kubectl virt stop VM_NAME
    

    VM_NAME は、停止する VM の名前に置き換えます。

  2. kubectl を使用して VM を編集します。

    kubectl edit gvm VM_NAME
    

    VM_NAME は、編集する VM の名前に置き換えます。

  3. エディタで、変更するネットワーク構成設定を更新します。

    たとえば、次の VirtualMachine マニフェストの例では、IP アドレスが定義されていないため、VM が backend-vlan100 という名前のネットワークに接続して DHCP を使用することを示します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: backend-vlan100
          default: true
    ...
    

    VM が接続するネットワークを変更する場合や、手動の IP アドレスを割り当てる場合は、次の例に示すように、エディタでネットワーク構成を更新します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
            ipAddresses:
              - IP_ADDRESS
          default: true
    ...
    

    NETWORK_NAME は、接続するネットワークの名前に置き換えます。または、ipAddresses セクションを追加して、VM に使用する IP_ADDRESS を指定します。

  4. VM マニフェストを保存して閉じます。

  5. 編集した VM を起動します。

    kubectl virt start VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

  6. VM の STATUS を確認します。

    kubectl get gvm VM_NAME
    

    VM が Running 状態になっていることを確認します。VM がホストが提供できないネットワーク接続をリクエストすると、VM は起動できません。VM が Running 状態でない場合は、VirtualMachine リソース マニフェストとホスト ネットワークのサポートを確認します。

  7. kubectl describe gvm を使用して、VM に関する詳細情報を表示します。

    kubectl describe gvm VM_NAME
    

    VM_NAME は、編集した VM の名前に置き換えます。

    次の出力例では、ネットワークと IP アドレスの構成に対する変更内容が正常に適用された VM の情報を抜粋して示します。

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
      Interfaces:
        Name:          eth0
        Network Name:  backend-vlan200
    ...
    Status:
      ...
      Interfaces:
        Dns Config:
          Nameservers:
            8.8.8.8
        gateway4:  10.200.0.9
        Ip Addresses:
          10.200.0.22/24
        Mac Address:    22:b4:e3:d2:ef:fb
        Name:           eth0
        Resource Name:  vm1-eth0-f2468
    ...
    

詳細については、仮想ネットワークを作成して管理する方法をご覧ください。

次のステップ