VMware Aria Automation 템플릿 내에서 CCI(클라우드 소비 인터페이스) 서비스를 사용하도록 CCI 요소를 추가할 수 있습니다. 그러면 사용자는 감독자 네임스페이스 내에서 가상 시스템 서비스와 Tanzu Kubernetes Grid 서비스를 사용하여 Kubernetes 기반 워크로드를 요청할 수 있습니다.
CCI 요소를 보려면 클라우드 템플릿의 리소스 라이브러리 내에서 클라우드 소비 인터페이스 섹션을 확장하거나 리소스 유형 검색 필드에 cci를 입력합니다.
감독자 네임스페이스 리소스
|
사용자가 애플리케이션 요구 사항에 따라 VM 및 TKG 리소스를 프로비저닝할 수 있도록 Kubernetes 기반 업무 공간에 리소스 제한, 사용자 액세스 및 사용 가능한 감독자 서비스를 제공하는 새 감독자 네임스페이스를 생성합니다. |
감독자 리소스
|
구성 중인 감독자 리소스에 전달된 Kubernetes 매니페스트에 따라 virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets 등 지원되는 감독자 Kubernetes 리소스를 감독자 네임스페이스 내에 생성합니다. |
TKG 리소스
|
TKG 클러스터 내에 지원되는 Kubernetes 리소스를 생성합니다. |
CCI.Supervisor.Namespace
캔버스에 직접 놓습니다.CCI.Supervisor.Resource
감독자 네임스페이스 리소스 또는 캔버스에 직접 놓습니다.CCI.TKG.Resource
다른 TKG 리소스, 감독자 리소스 또는 캔버스에 직접 놓습니다. CCI 리소스는 5개 중첩 수준으로 제한됩니다.
아래 캔버스 보기에서는 TKG 리소스를 cciTKGCluster라는 감독자 리소스로 끄는 것을 보여줍니다. TKG 리소스가 포함된 감독자 리소스가 있는 감독자 네임스페이스에는 세 가지 중첩 수준이 표시됩니다.
다음 예는 클라우드 템플릿의 YAML 코드에 cciNamespace 및 cciTKGCluster와 같은 CCI 리소스가 어떻게 나타나는지 보여줍니다. 각 예는 중요한 라인만 표시하도록 정리되어 있습니다.
감독자 네임스페이스 리소스 예
CCI.Supervisor.Namespace는 애플리케이션에 대한 사용자 관리 vSphere 감독자 IaaS 리소스가 생성되는 감독자 Kubernetes 기반 업무 공간을 나타냅니다.
이 예에서는 demo라는 감독자 네임스페이스를 프로비저닝하기 위해 cciNamespace라는 CCI 감독자 네임스페이스 리소스를 정의합니다.
name
속성에 대한 값을 입력해야 합니다.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
감독자 리소스 예
CCI.Supervisor.Resource를 사용하여 감독자 네임스페이스 컨텍스트 내에서 실행되도록 지원되는 Kubernetes 개체에 대한 Kubernetes 매니페스트를 전달합니다.
- 특정 감독자 네임스페이스 내에서 감독자 리소스를 프로비저닝하려면 템플릿 바인딩 식(예: context: ${resource.cciNamespace.id})을 사용하여 감독자 리소스 컨텍스트 속성을 감독자 네임스페이스 ID에 매핑하고 구성합니다.
- 프로비저닝할 개체를 지정하려면 생성 중인 Kubernetes 개체에 Kubernetes 매니페스트를 전달하여 감독자 리소스의 매니페스트 속성을 구성합니다.
formatVersion: 1 inputs: {} resources: cciTKGCluster: type: CCI.Supervisor.Resource properties: context: ${resource.cciNamespace.id} manifest: apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: ${input.tkg_Name} labels: tkg-cluster-selector: ${input.tkg_Name} spec: clusterNetwork: cni: name: antrea pods: cidrBlocks: - 192.168.156.0/20 services: cidrBlocks: - 10.96.0.0/12 serviceDomain: cluster.local topology: class: tanzukubernetescluster version: v1.24.9---vmware.1-tkg.4 variables: - name: storageClasses value: - tmm-kubernetes-storage-policy - name: defaultStorageClass value: tmm-kubernetes-storage-policy - name: vmClass value: ${input.controlPlaneVmClassName} - name: storageClass value: tmm-kubernetes-storage-policy controlPlane: replicas: ${input.controlPlaneCount} metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=photon workers: machineDeployments: - class: node-pool name: ${input.tkg_Name}-nodepool replicas: ${input.workerCount} metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=photon variables: overrides: - name: vmClass value: ${input.workerVmClassName}
formatVersion: 1 inputs: {} resources: vm: type: CCI.Supervisor.Resource properties: context: ${resource.cciNamespace.id} manifest: apiVersion: vmoperator.vmware.com/v1alpha1 kind: VirtualMachine metadata: finalizers: - virtualmachine.vmoperator.vmware.com generation: 1 labels: vm-selector: vm-2rfx name: vm-2rfx spec: className: best-effort-xsmall imageName: vmi-c3d184be88e1af1cd networkInterfaces: - networkType: nsx-t powerOffMode: hard powerState: poweredOn restartMode: hard storageClass: vsan-default-storage-policy suspendMode: hard wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true
캔버스에서, 감독자 네임스페이스 cciNamespace에 두 개의 감독자 리소스 cciTKGCluster 및 vm이 포함됩니다.
TKG 리소스 예
- TKG 리소스를 TKG 클러스터에 바인딩하려면 감독자 TKG 클러스터 리소스의 ID를 컨텍스트 속성(예: context: ${resource.cciTKGCluster.id})에 매핑합니다.
- 예를 들어 cciTKGNamespace라는 TKG 리소스 내에 네임스페이스를 생성하는 경우 컨텍스트 속성(context: ${resource.cciTKGNamespace.id})에 TKG 리소스의 이름을 삽입하여 TKG 리소스를 네임스페이스에 바인딩할 수 있습니다.
- 리소스 속성 내에 전달되는 Kubernetes 매니페스트는 프로비저닝할 Kubernetes 개체의 유형을 지정합니다.
... tkgSecret: type: CCI.TKG.Resource properties: context: ${resource.cciTKGCluster.id} manifest: apiVersion: v1 kind: Secret metadata: name: nvaie-apikey type: Opaque data: username: KM9hdCCodG9rZW4= password: ${base64_encode(input.password)} ...
캔버스에서, TKG 리소스 tkgSecret이 TKG 리소스 cciTKGCluster 내에 중첩된 것으로 나타납니다.
대기 속성 추가
- 필드 대기: 각 필드를 속성 경로 및 값으로 구성할 수 있는 필드 목록입니다. 리소스를 완료된 것으로 간주하려면 우선 값이 일치해야 합니다.
- 조건 대기: 리소스 생성의 성공 또는 실패를 나타내는 조건 목록입니다.
... wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true ...
UI를 사용하여 선택적 매개 변수를 추가하려면 [코드] 패널에서 리소스 이름 옆에 있는 전구를 클릭합니다.