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

예를 들어 다음과 같은 상황에 CLI를 사용할 수 있습니다.
  • CCI에 대한 사용자 액세스가 vSphere+를 사용하여 구성된 경우 사용자는 vSphere+에 의해 생성된 기본 프로젝트에만 액세스할 수 있습니다. CLI를 사용하여 추가 프로젝트 및 클라우드 계정에 대한 액세스를 구성할 수 있습니다.
  • 기존 VMware Aria Automation 인스턴스의 관리자인 경우 vSphere+를 통해 CCI를 시작하지 않고도 CLI를 사용하여 CCI에 액세스할 수 있습니다.

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

사전 요구 사항

  • vSphere 관리자가 vSphere+에서 개발자 환경을 활성화하여 사용자에게 VMware Aria Automation에 대한 액세스 권한을 부여했는지 확인합니다. 신규 Aria Automation 사용자를 위한 클라우드 소비 인터페이스에 대한 액세스 구성의 내용을 참조하십시오.
  • 감독자 클러스터가 vCenter 인스턴스에서 사용하도록 설정되어 있고 VMware Aria Automation에 등록되어 있는지 확인합니다.
  • VMware Aria Automation에서 Automation Assembler 또는 Automation Service Broker에 대한 관리자 서비스 역할 이상이 있는 조직 멤버인지 확인하십시오.
  • 다음 사항을 확인합니다.
    • CCI kubectl 플러그인을 다운로드했습니다.
    • 관리자에 대한 API 토큰을 얻었습니다.
    • 토큰을 사용하여 CCI 서버에 로그인하고 기본 컨텍스트를 CCI로 변경했습니다.
    명령줄 인터페이스를 사용하여 감독자 네임스페이스 작업 수행의 내용을 참조하십시오.

프로젝트 및 프로젝트 역할 바인딩 생성

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

  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]>

지역 생성

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

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

감독자를 지역과 연결

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

  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가 있는 감독자의 예입니다.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      labels:
        environment: testing
        fipsMode: strict
      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:
        - eu-west1

지역 바인딩 및 지역 바인딩 구성 생성

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

  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

감독자 네임스페이스 클래스 생성

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

  1. 감독자 네임스페이스 클래스를 생성합니다.
    kubectl create -f supervisornamespaceclass.yaml
    다음 예시 supervisornamespaceclass.yaml 파일에서 parameters 아래의 선택적 입력은 네임스페이스를 생성할 때 사용자가 제공하는 네임스페이스 클래스 매개 변수를 반영합니다. 모든 입력에는 기본값이 있어야 합니다. 이 값은 스토리지 클래스, 제한 및 추가 제약 조건을 사용자 지정하는 데 사용됩니다.
    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
    다음 예시 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
    

네임스페이스 클래스를 프로젝트와 연결

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

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