VMware Aria Automation 클라우드 관리자는 명령줄 인터페이스를 사용하여 CCI(클라우드 소비 인터페이스) 액세스가 가능하도록 설정하고 거버넌스 구조를 구성할 수 있습니다. 명령줄 인터페이스는 Kubernetes 명령줄 도구 또는 kubectl을 사용합니다.
CLI를 사용하여 수행할 수 있는 전체 작업 목록은 클라우드 소비 인터페이스에 대한 Kubernetes API 참조 항목을 참조하십시오.
사전 요구 사항
- 감독자 클러스터가 vCenter 인스턴스에서 사용하도록 설정되어 있고 VMware Aria Automation에 등록되어 있는지 확인합니다.
- VMware Aria Automation에서 Automation Assembler 또는 Automation Service Broker에 대한 관리자 서비스 역할 이상이 있는 조직 멤버인지 확인하십시오.
- 다음 사항을 확인합니다.
- CCI kubectl 플러그인을 다운로드했습니다.
- 관리자에 대한 API 토큰을 얻거나 사용자 암호를 저장하기 위한 변수를 정의했습니다.
- 토큰을 -t 옵션과 함께 사용하거나 관리 자격 증명을 -u 옵션과 함께 사용하여 CCI 서버에 로그인하고 기본 컨텍스트를 CCI로 변경했습니다.
- Automation Assembler에 vCenter 클라우드 계정을 추가했는지 확인합니다.
이러한 사전 요구 사항에 대한 자세한 내용은 클라우드 소비 인터페이스 설정 및 구성 항목을 참조하십시오.
1단계: 프로젝트 및 프로젝트 역할 바인딩 생성
Automation 사용자를 그룹화하고 인프라 리소스에 대한 액세스를 설정하려면 프로젝트 및 프로젝트 역할 바인딩을 생성합니다.
- 프로젝트를 생성합니다.
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
- 생성된 프로젝트 내의 사용자 또는 그룹에 역할을 할당하기 위해 프로젝트 역할 바인딩을 생성합니다.
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단계: 감독자를 지역과 연결
감독자를 지역과 연결하려면 업데이트할 감독자를 찾은 다음 네임스페이스 배치에 사용될 지역 및 레이블을 추가합니다.
- 업데이트할 감독자를 찾으려면 감독자를 나열합니다. 감독자 리소스는 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
- 이름이
adminannie-vcenter:domain-c8
인 감독자를 업데이트합니다.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
다음 예에는metadata.labels
키-값 쌍과 지역spec.regionNames
가 포함됩니다. environment: testing 및 fipsMode: strict 레이블을 사용하여 감독자 배치 결정을 도울 수 있습니다.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: - <region_name>
- 또는 감독자 지역 탭을 클릭합니다. 에 있는 프로젝트에 대해
4단계: 영역 바인딩 및 지역 바인딩 구성 생성
프로젝트의 사용자가 지역의 감독자에 대한 감독자 네임스페이스를 생성할 수 있도록 지역 바인딩 및 지역 바인딩 구성을 생성합니다.
- 지역 바인딩을 생성합니다.
kubectl create -f regionbinding.yaml
예시regionbinding.yaml
파일입니다.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
지역 바인딩에는 감독자 배치 설정이 포함되지 않으므로 지역 바인딩 구성도 생성해야 합니다.
- 생성한 모든 지역 바인딩에 대해 지역 바인딩 구성을 생성합니다. 감독자의 추가 필터링에 사용되는 일치 표현식을 포함할 수 있습니다. 감독자 레이블은 지역의 감독자 하위 집합에 대한 감독자 네임스페이스 배치를 허용하는 데 사용됩니다.
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단계: 감독자 네임스페이스 클래스 생성 및 감독자 네임스페이스 클래스 구성 추가
생성 중에 네임스페이스 설정을 사용자 지정하는 데 사용할 수 있는 선택적 매개 변수를 사용하여 네임스페이스 템플릿을 정의하려면 감독자 네임스페이스 클래스를 생성합니다. 그런 다음 감독자 네임스페이스 배치에 사용되는 감독자의 추가 필터링에 사용되는 일치 표현식으로 감독자 네임스페이스 클래스 구성을 생성할 수 있습니다.
- 감독자 네임스페이스 클래스를 생성합니다.
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
감독자 네임스페이스 클래스에는 감독자 배치 설정이 포함되어 있지 않으므로 감독자 네임스페이스 클래스 구성도 생성해야 합니다.
- 감독자 네임스페이스 클래스 구성을 생성합니다.
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단계: 네임스페이스 클래스를 프로젝트와 연결
프로젝트에서 감독자 네임스페이스 클래스를 사용하여 감독자 네임스페이스를 생성하도록 허용하려면 감독자 네임스페이스 클래스 바인딩을 생성합니다.
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