태그는 리소스와 연결하고 템플릿에 포함할 수 있는 강력한 메타데이터입니다. 워크로드 배치 및 리소스 레이블 지정을 비롯한 다양한 관리 시나리오에서 태그를 사용할 수 있습니다.

태그에 대한 간단한 소개

이 섹션은 제공된 단계에 적용되는 태그에 대한 간단한 소개입니다. 태그에 대한 자세한 내용은 태그를 사용하여 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 계정 클라우드 영역이고 태그는 리소스 풀 2개(wid01-clu01 / Development 및 wid01-clu01 / Production)에 추가되었습니다.

      한 클라우드 영역에는 env:dev 태그가 있고 다른 클라우드 영역에는 env:prod 태그가 있는 vCenter Server 클라우드 영역의 스크린샷.
  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 시스템 및 네트워크를 식별하는 태그를 추가합니다. 또한 웹 네트워크를 식별하는 태그를 추가합니다. 주문형 네트워크 대비 기존 네트워크에서 태그가 작동하는 방식 때문에 두 가지 중 선택할 수 있습니다.

  • 이전 섹션에서 사용한 기존 네트워크 프로파일을 사용하는 경우 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. VM 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. 시스템의 일반 섹션을 확장하고 태그 레이블을 찾습니다.

      태그 값은 db:mysql입니다.

    3. 네트워크 섹션을 확장하고 네트워크 태그 열을 찾습니다.

      태그 값은 db:mysql입니다.


      시스템이 선택되고 오른쪽 창에 태그가 강조 표시되어 있는 배포 토폴로지 탭의 스크린샷.
    4. 토폴로지에서 네트워크를 클릭하고 일반 섹션을 확장하여 태그 레이블을 찾습니다.

      태그 값은 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입니다.


      태그가 강조 표시되어 있는 네트워크 세그먼트의 스크린샷.