標籤是功能強大的中繼資料,您可以將其與資源關聯並納入範本中。可以在各種管理案例中使用標記,包括工作負載放置和資源標籤。

標籤的簡單介紹

本節簡單介紹了適用於所提供步驟的標籤。如需有關標籤的更深入的資訊,請參閱如何使用標籤來管理 Cloud Assembly 資源和部署

  • 功能與限制標籤

    可以使用標籤根據資源功能控制部署。例如,身為雲端管理員,您想要將反覆開發的雲端範本部署至特定於開發的資源集區,並且將值得生產的範本部署到其他資源集區。

    • 功能標籤將會新增至資源,以定義其功能。
    • 限制標籤將用於雲端範本,以定義您希望已部署的資源耗用哪些資源。
  • 標籤 (label) 標記

    若要管理資源,您可以新增標記以作為物件標籤或說明。管理可能性包括改進資源搜尋結果、在類似物件之間進行區分、使用自訂資訊為物件設定註解、將資訊提供給第三方系統、建立安全分組成員資格準則、確保連結 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 來自先前的範例,但使用的是路由隨選 networkType。其中包括限制標籤。

本教學課程使用了以下範例值。請注意,這些值都只是範例而已。您的值將特定於您的環境。

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. 新增虛擬機器 NIC 標籤。
            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. 展開機器的一般區段,並找到 [標記] 標籤 (label)。

      標籤值為 db:mysql

    3. 展開網路區段,並找到 [網路標籤] 資料行。

      標籤值為 db:mysql


      部署拓撲索引標籤的螢幕擷取畫面,其中在右窗格中選取了機器並反白顯示了標籤。
    4. 按一下拓撲中的網路,然後展開一般區段以找到 [標記] 標籤 (label)。

      標籤值為 NGINX:web


      部署拓撲索引標籤的螢幕擷取畫面,其中在右窗格中選取了網路並反白顯示了標籤。
  8. 若要驗證 vCenter Server 中的標籤,請登入已部署此工作負載的 vCenter Server 執行個體。
    1. 找到虛擬機器,並找到 [標籤] 窗格。
      vCenter Server 中虛擬機器的螢幕擷取畫面,其中反白顯示了 [標籤] 窗格。
  9. 若要驗證 NSX-T 中的標籤,請登入已設定此網路的 NSX-T 執行個體。
    1. 按一下右上角的原則
    2. 若要找到與 NIC 相關聯的 db:mysql 標籤,請搜尋 mysql
    3. 按一下邏輯連接埠,然後找到已部署的 vSphere 機器。
    4. 按一下 [標籤] 資料行中的號碼。

      [範圍] 和 [標籤] 分別為 dbmysql


      虛擬機器之邏輯連接埠的螢幕擷取畫面,其中反白顯示了標籤。
    5. 若要找到與區段相關聯的 NGINX:web 標籤,請搜尋網路。

      在此範例中,網路名稱為 Cloud_NSX_Network_1-mcm1292-163799928607

    6. 找到 [區段] 資料列,然後按一下 [標籤] 資料行中的號碼。

      [範圍] 和 [標籤] 分別為 NGINXweb


      網路區段的螢幕擷取畫面,其中反白顯示了標籤。