标记是功能强大的元数据,可以将其与资源相关联并包括在模板中。您可以在各种管理场景中使用标记,包括工作负载放置和资源标记。

标记简介

本部分将简要介绍标记在所提供步骤中的应用。有关标记的更详细信息,请参见如何使用标记来管理 Cloud Assembly 资源和部署

  • 功能标记和限制标记

    可以使用标记根据资源功能控制部署。例如,作为云管理员,您希望将以迭代方式开发的云模板部署到特定于开发的资源池,而将适用于生产的模板部署到不同的资源池。

    • 功能标记添加到资源中,用于定义其功能。
    • 限制标记在云模板中使用,用于定义您希望部署的资源使用哪些资源。
  • 标签标记

    要管理资源,可以将标记添加为对象标签或描述。管理任务可能包括获得更好的资源搜索结果、区分类似对象、使用自定义信息注释对象,向第三方系统提供信息、创建安全分组成员资格条件以及确保链接 SDDC 域之间的一致性。

开始之前

使用标记管理工作负载放置

此简单示例使用开发和生产环境标记演示如何使用功能标记和限制标记。首先,在 vCenter Server 资源池计算资源上添加功能标记,然后将这些标记包含在云模板中。云模板示例展示如何使用输入让部署用户选择是将其部署到开发资源池还是生产资源池。

有关如何使用相同标记在多云环境中定义布置的示例,请参见教程:在 Cloud Assembly 中设置和测试多云基础架构和部署

  1. 向资源池添加功能标记。
    1. 选择基础架构 > 资源 > 计算资源
    2. 打开云区域并单击计算资源云区域“计算资源”选项卡屏幕截图,其中显示了没有标记的资源池。
    3. 找到并单击要部署开发工作负载的资源池。

      本教程使用以下示例值。请记住,这些值仅为示例而已。您的值将特定于您的环境。

      示例资源池 示例标记
      wid01-clu01 / Development env:dev
      wid01-clu01 / Production env:prod
    4. 添加标记 env:dev,然后单击保存
      用于添加标记的对话框屏幕截图。包括示例值 env:dev。
    5. 对要部署生产工作负载的资源池重复该过程,并添加 env:prod 标记。
  2. 验证是否已将功能标记添加到云区域中的资源池。
    1. 选择基础架构 > 配置 > 云区域
    2. 打开与项目关联的云区域,然后单击计算资源

      在此示例中,云区域是 vCenter 帐户云区域,标记已添加到以下两个资源池:wid01-clu01 / Development 和 wid01-clu01 / Production。

      vCenter Server 云区域屏幕截图,其中一个云区域具有 env:dev 标记,另一个云区域具有 env:prod 标记。
  3. 将限制标记添加到云模板。

    限制标记用于限制模板的部署位置。

    1. 选择设计 > 云模板,然后打开您的模板。

      在本教程中,模板名称为 Development Template。

    2. 在“代码”窗格中查看模板的 YAML。

      此 YAML 是本教程的起点。

      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
      
    3. 使用 ${input.placement} 作为变量,将限制标记添加到 Cloud_vSphere_Machine_1 资源。
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            constraints: 
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
    4. 在“输入”部分中定义布置变量。
      inputs:
        placement:
          type: string
          enum:
            - env:dev
            - env:prod
          default: env:dev
          title: Select Placement for Deployment
          description: Target Environment
    5. 验证最终 YAML 是否类似于以下示例。
      formatVersion: 1
      inputs:
        placement:
          type: string
          enum:
            - 'env:dev'
            - 'env:prod'
          default: 'env:dev'
          title: Select Placement for Deployment
          description: Target Environment
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
            constraints:
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
    6. 要尝试对可用资源使用标记变量,请单击测试,然后选择 env:dev
      测试对话框屏幕截图,其中包括“为部署选择布置”输入和值 env:dev。

      使用 env:prod 重复测试。两个测试均成功完成后,通过部署模板确认模板正常工作。

  4. 部署模板以测试工作负载布置。
    1. 在云模板设计器中,单击部署
    2. 输入 Deployment Tag Dev 作为部署名称,然后单击下一步
    3. 为部署选择布置下拉菜单中选择 env:dev,然后单击部署
  5. 验证模板是否已将资源部署到所选资源池。
    1. 选择资源 > 部署,然后找到“Deployment Tag Dev”部署。
    2. 打开部署详细信息,然后单击拓扑
    3. 单击vSphere计算机,并在右侧窗格中展开计算机信息。
    4. 常规部分中,找到计算主机,并验证值是否与 env:dev 标记匹配的资源池相匹配。

      在此示例中,值为 wid01-clu01 / Development,说明工作负载根据所选限制标记部署到了正确的资源池。


      部署拓扑页面屏幕截图,其中在右侧窗格的“计算主机”框中选中了 vSphere 计算机。
    5. 重复部署过程,这次选择 env:prod

将标记添加为可在 vCenter Server 和 NSX-T 中使用的标签

可以向部署中添加标记,然后可以使用这些标记管理资源。

在此示例中,将添加标记以标识 MySQL 计算机和网络。此外,还将添加标记以标识 Web 网络。根据标记在现有网络上的工作方式与在按需网络上的对比情况,您有两种选择。

  • 如果使用上一部分中使用的现有网络配置文件,则 NGINX:web 标记不会添加到 NSX-T 的现有对象中。因此,可以忽略 NSX-T 中有关此标记的验证步骤。
  • 如果创建按需网络配置文件,则可以更新 YAML 中的网络以使用路由/按需网络。此示例中使用了按需网络,以便我们可以在 NSX-T 的新对象上展示 NGINX:web 标记。

以下 YAML 来自前一个示例,不同之处在于使用了路由按需网络类型。它包括限制标记。

本教程使用以下示例值。请记住,这些值仅为示例而已。您的值将特定于您的环境。

formatVersion: 1
inputs:
  placement:
    type: string
    enum:
      - 'env:dev'
      - 'env:prod'
    default: 'env:dev'
    title: Select Placement for Deployment
    description: Target Environment
resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      flavor: small
      constraints:
        - tag: '${input.placement}'
      networks:
        - network: '${resource.Cloud_NSX_Network_1.id}'
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 5
  Cloud_NSX_Network_1:
    type: Cloud.NSX.Network
    properties:
      networkType: routed
      constraints:
        - tag: 'net:od'
      
  1. 选择设计 > 云模板,然后打开您的模板。
  2. 在 Cloud_vSphere_Machine_ 属性中,添加以下标记。
            tags: 
            - key: db
              value: mysql
        
  3. 添加虚拟机网卡标记。
            tags: 
            - key: db
              value: mysql
  4. 添加 NSX 逻辑交换机/分段标记。
            tags: 
            - key: NGINX
              value: web
  5. 验证 YAML 是否类似于以下示例。
    formatVersion: 1
    inputs:
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: centos
          flavor: small
          constraints:
            - tag: '${input.placement}'
          tags: 
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags: 
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 5
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: routed
          constraints:
            - tag: 'net:od'
          tags: 
            - key: NGINX
              value: web
  6. 部署模板。

    此示例使用名称 Development template w tags

  7. 要验证部署中的标记,请打开部署,然后单击拓扑选项卡。
    1. 单击拓扑中的计算机。
    2. 展开计算机的常规部分,并找到“标记”标签。

      标记值为 db:mysql

    3. 展开网络部分,并找到网络标记列。

      标记值为 db:mysql


      部署拓扑选项卡屏幕截图,其中在右侧窗格中选择了计算机并突出显示了标记。
    4. 单击拓扑中的网络,然后展开常规部分以找到“标记”标签。

      标记值为 NGINX:web


      部署拓扑选项卡屏幕截图,其中在右侧窗格中选择了网络并突出显示了标记。
  8. 要验证工作负载vCenter Server,请登录到部署了vCenter Server工作负载的实例。
    1. 找到虚拟机,然后找到“标记”窗格。
      vCenter Server 虚拟机屏幕截图,其中突出显示了“标记”窗格。
  9. 要在 NSX-T 中验证标记,请登录配置了此网络的 NSX-T 实例。

    网络标记和计算机标记将添加到 NSX-T。

    1. 单击右上角的策略
    2. 要找到与网卡关联的 db:mysql 标记,请搜索 mysql
    3. 单击逻辑端口并找到部署的 vSphere 计算机。
    4. 单击“标记”列中的数字。

      “范围”和“标记”分别为 dbmysql


      虚拟机逻辑端口屏幕截图,其中突出显示了标记。
    5. 要找到与分段关联的 NGINX:web 标记,请搜索网络。

      在此示例中,网络名称为 Cloud_NSX_Network_1-mcm1292-163799928607

    6. 找到“分段”行,然后单击标记列中的数字。

      “范围”和“标记”分别为 NGINXweb


      网络分段屏幕截图,其中突出显示了标记。