VMware Aria Automation 클라우드 관리자는 명령줄 인터페이스를 사용하여 CCI(클라우드 소비 인터페이스) 액세스를 설정하고 거버넌스 구조를 구성할 수 있습니다. 명령줄 인터페이스는 Kubernetes 명령줄 도구 또는 kubectl을 사용합니다.

CLI를 사용하여 수행할 수 있는 전체 작업 목록은 클라우드 소비 인터페이스에 대한 Kubernetes API 참조 항목을 참조하십시오.

참고: UI를 사용하여 다음 단계 중 일부를 수행할 수도 있습니다. 해당 단계와 함께 UI에 대한 설명서 링크가 제공됩니다.

사전 요구 사항

  • 감독자 클러스터가 vCenter 인스턴스에서 사용하도록 설정되어 있고 VMware Aria Automation에 등록되어 있는지 확인합니다.
  • VMware Aria Automation에서 Automation Assembler 또는 Automation Service Broker에 대한 관리자 서비스 역할 이상이 있는 조직 멤버인지 확인하십시오.
  • 다음 사항을 확인합니다.
    • CCI kubectl 플러그인을 다운로드했습니다.
    • 관리자에 대한 API 토큰을 얻거나 사용자 암호를 저장하기 위한 변수를 정의했습니다.
    • 토큰을 -t 옵션과 함께 사용하거나 관리 자격 증명을 -u 옵션과 함께 사용하여 CCI 서버에 로그인하고 기본 컨텍스트를 CCI로 변경했습니다.
  • Automation AssemblervCenter 클라우드 계정을 추가했는지 확인합니다.
  • vCenter 클라우드 계정 이름에 공백이나 대문자가 포함되어 있지 않은지 확인합니다. 예: my-vcenter-cloud-account.

이러한 사전 요구 사항에 대한 자세한 내용은 클라우드 소비 인터페이스 설정 및 구성 항목을 참조하십시오.

1단계: 프로젝트 및 프로젝트 역할 바인딩 생성

Automation 사용자를 그룹화하고 인프라 리소스에 대한 액세스를 설정하려면 프로젝트 및 프로젝트 역할 바인딩을 생성합니다.

UI를 사용하여 프로젝트 및 프로젝트 역할 바인딩을 생성하려면 Automation Assembler 개발 팀용 프로젝트를 추가하는 방법. 항목을 참조하십시오.

  1. 프로젝트를 생성합니다.
    kubectl create -f project.yaml
    예시 project.yaml 파일입니다.
    apiVersion: project.cci.vmware.com/v1alpha1
    kind: Project
    metadata:
      name: <project_name>
    spec:
      description: <description_of_project>
      sharedResources: true
    
  2. 생성된 프로젝트 내의 사용자 또는 그룹에 역할을 할당하기 위해 프로젝트 역할 바인딩을 생성합니다.
    kubectl create -f projectrolebinding.yaml
    다음 예시 projectrolebinding.yaml 파일은 admin 프로젝트 역할을 가진 사용자를 추가합니다. 프로젝트 역할 값은 admin, view 또는 edit입니다.
    apiVersion: authorization.cci.vmware.com/v1alpha1
    kind: ProjectRoleBinding
    metadata:
      name: cci:user:vmware.com:<user_alias>
      namespace: <project_name>
    roleRef:
      apiGroup: authorization.cci.vmware.com
      kind: ProjectRole
      name: admin
    subjects:
    - kind: User
      name: <[email protected]>

2단계: 지역 생성

감독자를 지역에 할당할 수 있도록 지역을 생성합니다.

kubectl create -f region.yaml
예시 region.yaml 파일입니다.
apiVersion: topology.cci.vmware.com/v1alpha1
kind: Region
metadata:
  name: <region_name>
spec:
  description: <description_of_region>

3단계: 감독자를 지역과 연결

감독자를 지역과 연결하려면 업데이트할 감독자를 찾은 다음 네임스페이스 배치에 사용될 지역 및 레이블을 추가합니다.

  1. 업데이트할 감독자를 찾으려면 감독자를 나열합니다. 감독자 리소스는 vCenter 데이터 수집 후에 표시됩니다.
    kubectl -n cci-config get supervisors
    다음은 결과 예입니다.
    NAME                             AGE
    demo-self-service:domain-c50     75d
    adminannie-vcenter:domain-c8     5d18h
    scale-test-vc-01:domain-c8       56d
  2. 이름이 adminannie-vcenter:domain-c8인 감독자를 업데이트합니다.
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    다음 예에는 metadata.labels 키-값 쌍과 지역 spec.regionNames가 포함됩니다. environment: testingfipsMode: strict 레이블을 사용하여 감독자 배치 결정을 도울 수 있습니다.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      labels:
        environment: testing
      name: adminannie-vc:domain-c8
      namespace: cci-config
      uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d
    spec:
      cloudAccountName: adminannie-vc
      externalId: domain-c8
      externalName: wcp-test-dc-cluster
      regionNames:
        - <region_name>
Automation Assembler 또는 Automation Service Broker UI에서 감독자 지역 목록을 보려면 다음으로 이동합니다.
  • 인프라 > 구성 > 감독자 지역
  • 또는 인프라 > 관리자 > 프로젝트에 있는 프로젝트에 대해 감독자 지역 탭을 클릭합니다.
관리자 구성체 보기의 내용을 참조하십시오.

4단계: 영역 바인딩 및 지역 바인딩 구성 생성

프로젝트의 사용자가 지역의 감독자에 대한 감독자 네임스페이스를 생성할 수 있도록 지역 바인딩 및 지역 바인딩 구성을 생성합니다.

  1. 지역 바인딩을 생성합니다.
    kubectl create -f regionbinding.yaml
    예시 regionbinding.yaml 파일입니다.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    지역 바인딩에는 감독자 배치 설정이 포함되지 않으므로 지역 바인딩 구성도 생성해야 합니다.

  2. 생성한 모든 지역 바인딩에 대해 지역 바인딩 구성을 생성합니다. 감독자의 추가 필터링에 사용되는 일치 표현식을 포함할 수 있습니다. 감독자 레이블은 지역의 감독자 하위 집합에 대한 감독자 네임스페이스 배치를 허용하는 데 사용됩니다.
    kubectl create -f regionbindingconfig.yaml
    다음 예시 regionbindingconfig.yaml 파일에서 testing 환경 레이블과 일치하는 모든 감독자는 해당 프로젝트 및 지역에서 생성된 감독자 네임스페이스를 호스팅할 수 있습니다.
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBindingConfig
    metadata:
      name: <region_name>
      namespace: <project_name>
    spec:
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing

5단계: 감독자 네임스페이스 클래스 생성 및 감독자 네임스페이스 클래스 구성 추가

생성 중에 네임스페이스 설정을 사용자 지정하는 데 사용할 수 있는 선택적 매개 변수를 사용하여 네임스페이스 템플릿을 정의하려면 감독자 네임스페이스 클래스를 생성합니다. 그런 다음 감독자 네임스페이스 배치에 사용되는 감독자의 추가 필터링에 사용되는 일치 표현식으로 감독자 네임스페이스 클래스 구성을 생성할 수 있습니다.

UI를 사용하여 감독자 네임스페이스 클래스 구성으로 감독자 네임스페이스 클래스를 생성하려면 UI를 사용하여 네임스페이스 클래스, 네임스페이스 클래스 구성 및 네임스페이스 클래스 바인딩을 생성 및 구성하는 방법 항목을 참조하십시오.

  1. 감독자 네임스페이스 클래스를 생성합니다.
    kubectl create -f supervisornamespaceclass.yaml
    다음 예시 supervisornamespaceclass.yaml 파일에서 parameters 아래의 선택적 입력은 네임스페이스를 생성할 때 사용자가 제공하는 네임스페이스 클래스 매개 변수를 반영합니다. 모든 입력에는 기본값이 있어야 합니다. 이 값은 스토리지 클래스, 제한 및 추가 제약 조건을 사용자 지정하는 데 사용됩니다. name 값은 모두 소문자이고 공백이 없어야 합니다.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClass
    metadata:
      name: <class_name>
    spec:
      description: supervisor namespace class
      parameters:
        - name: podcountlimit
          type: Integer
          minimum: 100
          maximum: 1000
          default: 500

    감독자 네임스페이스 클래스에는 감독자 배치 설정이 포함되어 있지 않으므로 감독자 네임스페이스 클래스 구성도 생성해야 합니다.

  2. 감독자 네임스페이스 클래스 구성을 생성합니다.
    kubectl create -f supervisornamespaceclassconfig.yaml
    YAML은 감독자 네임스페이스가 상속할 모든 감독자 네임스페이스 구성으로 구성되며 다음을 포함할 수 있습니다.
    • 가상 시스템을 프로비저닝할 때 VM 서비스에서 사용하는 이미지가 포함된 컨텐츠 라이브러리입니다.
    • T-Shirt 크기와 같은 가상 시스템 클래스.
    • CPU, 메모리 및 스토리지가 적용된 리소스 제한.
    • 사용할 스토리지 클래스입니다.
    • 감독자 네임스페이스 생성에 사용할 감독자를 결정하는 SupervisorSelector.
    다음 예시 supervisornamespaceclassconfig.yaml 파일에서 supervisorSelector는 감독자 레이블을 일치시키는 데 사용됩니다.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: SupervisorNamespaceClassConfig
    metadata:
      name: <class_name>
    spec:
      storageClasses:
        - name: management-storage-policy-thin
      vmClasses:
        - name: big-vm-class
        - name: small-vm-class
      contentSources:
        - name: global-content-library
          type: ContentLibrary
      # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace
      # Either set reasonable limits, or remove the below section to get unlimited resources
      limits:
        - name: pod_count
          limit: "((parameters.podCountLimit))"
      supervisorSelector:
        matchExpressions:
          - key: environment
            operator: In
            values:
              - testing
    

6단계: 네임스페이스 클래스를 프로젝트와 연결

프로젝트에서 감독자 네임스페이스 클래스를 사용하여 감독자 네임스페이스를 생성하도록 허용하려면 감독자 네임스페이스 클래스 바인딩을 생성합니다.

UI를 사용하여 네임스페이스 클래스를 프로젝트와 연결하려면 UI를 사용하여 네임스페이스 클래스, 네임스페이스 클래스 구성 및 네임스페이스 클래스 바인딩을 생성 및 구성하는 방법 항목을 참조하십시오.

kubectl create -f supervisornamespaceclassbinding.yaml
예시 supervisornamespaceclassbinding.yaml 파일입니다.
  • namespace는 감독자 네임스페이스 클래스와 연결할 프로젝트 이름의 이름을 지정합니다.
  • overrideParameters는 선택 사항입니다. 감독자 네임스페이스가 생성될 때 사용자가 제공한 매개 변수 값을 무시하면서 매개 변수 값을 강제로 적용하는 데 사용됩니다. 올바른 유형은 Integer, String 또는 Boolean입니다. name 값은 모두 소문자이고 공백이 없어야 합니다.
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podcountlimit
      type: Integer
      const: 1000