要能够在 vSphere with Tanzu 中部署独立虚拟机,DevOps 工程师必须有权访问特定虚拟机资源。作为 DevOps 工程师,请确认可以访问这些资源,并查看环境中可用的虚拟机类和虚拟机模板。还可以列出虚拟机自助服务所需的存储类和其他项目。

此任务涵盖用于访问可用于部署独立虚拟机的资源的命令。有关部署 Tanzu Kubernetes 集群和构成集群的虚拟机所需资源的信息,请参见 用于 Tanzu Kubernetes 集群的虚拟机类

前提条件

vSphere 管理员已执行以下步骤:

过程

  1. 在 Kubernetes 环境中访问命名空间。
  2. 要查看命名空间中的可用虚拟机类,请运行以下命令。
    kubectl get virtualmachineclassbindings
    将看到以下输出。
    注: 由于最大努力虚拟机类类型允许超额分配资源,因此,如果对要置备虚拟机的命名空间设置了限制,资源可能会耗尽。因此,请在生产环境中使用保证虚拟机类类型。
    NAME                       VIRTUALMACHINECLASS        AGE
    
    best-effort-large          best-effort-large          44m
    best-effort-medium         best-effort-medium         44m
    best-effort-small          best-effort-small          44m
    best-effort-xsmall         best-effort-xsmall         44m
    custom                     custom                     44m
  3. 要查看特定虚拟机类的详细信息,请运行以下命令。
    • kubectl describe virtualmachineclasses name_vm_class

      如果虚拟机类包括 vGPU 设备,则可以在 spec: hardware: devices: vgpuDevices 下看到其配置文件。

      ......
      spec:
        hardware:
          cpus: 4
          devices:
            vgpuDevices:
            - profileName: grid_v100-q4
      ......
      
    • kubectl get virtualmachineclasses -o wide

      如果虚拟机类包含 vGPU 或直通设备,输出会在 VGPUDevicesProfileNamesPassthroughDeviceIDs 列中显示该设备。

  4. 查看虚拟机映像。
    kubectl get virtualmachineimages​
    显示的输出类似以下内容:
    NAME                                              VERSION  OSTYPE                FORMAT  IMAGESUPPORTED  AGE
    centos-stream-8-vmservice-v1alpha1-xxxxxxxxxxxxx           centos8_64Guest       ovf     true            4d3h
  5. 要描述特定映像,请使用以下命令。
    kubectl describe virtualmachineimage/centos-stream-8-vmservice-v1alpha1-xxxxxxxxxxxxx

    具有 vGPU 设备的虚拟机需要将引导模式设置为 EFI 的映像,例如 CentOS。确保有权访问这些映像。有关受支持映像的信息,请在 VMware Cloud Marketplace 网站上搜索虚拟机服务映像

  6. 验证您是否有权访问存储类。
    kubectl get resourcequotas
    NAME                        AGE   REQUEST                                                                                         LIMIT
    my-ns-ubuntu-storagequota   24h   wcpglobal-storage-profile.storageclass.storage.k8s.io/requests.storage: 0/9223372036854775807
  7. 如果要将 vSphere Distributed Switch 用于工作负载网络连接,请获取网络的名称。
    注:networkTypevsphere-distributed 时,可以使用此信息在虚拟机 YAML 文件中指定 networkName 参数。如果使用 VMware NSX-T,无需获取和指定网络名称。
    kubectl get network
    NAME      AGE
    primary   7d2h

下一步做什么

现在,可以部署虚拟机。请参见 在 vSphere with Tanzu 中部署虚拟机