可以添加 Cloud Consumption Interface (CCI) 元素,以在 VMware Aria Automation 模板中使用 CCI 服务,这样您的用户可以在主管命名空间中使用虚拟机服务和 Tanzu Kubernetes Grid Service 请求基于 Kubernetes 的工作负载。
要查看 CCI 元素,请展开云模板中资源库内的 Cloud Consumption Interface 部分,或在搜索资源类型字段中键入 cci。
主管命名空间资源
|
创建新的主管命名空间,该主管命名空间可为基于 Kubernetes 的工作区提供资源限制、用户访问和可用的主管服务,以便用户可以根据应用程序需求置备虚拟机和 TKG 资源。 |
主管资源
|
根据传递给正在配置的主管资源的 Kubernetes 清单,在主管命名空间中创建任何受支持的主管 Kubernetes 资源,例如 virtualmachines 、virtualmachineservices 、tanzukubernetesclusters 、persistentvolumeclaims 、secrets 等。 |
TKG 资源
|
在 TKG 集群中创建任何受支持的 Kubernetes 资源。 |
CCI.Supervisor.Namespace
直接放置在画布上。CCI.Supervisor.Resource
放置在主管命名空间资源上或直接放置在画布上。CCI.TKG.Resource
放置在另一个 TKG 资源、主管资源上或直接放置在画布上。CCI 资源最多支持五级嵌套。
在下面的画布视图中,您会看到某个 TKG 资源拖到名为 cciTKGCluster 的主管资源中。主管命名空间包含主管资源,该主管资源包含 TKG 资源,这显示了三级嵌套。
以下示例展示了 CCI 资源(如 cciNamespace 和 cciTKGCluster)如何在云模板的 YAML 代码中呈现。每个示例已经过修剪,仅显示重要行。
主管命名空间资源示例
CCI.Supervisor.Namespace 表示基于主管 Kubernetes 的工作区,可在其中为应用程序创建用户管理的 vSphere 主管 IaaS 资源。
此示例定义了一个名为 cciNamespace 的 CCI 主管命名空间资源,以置备一个名为 demo 的主管命名空间。
name
属性的值。
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
主管资源示例
您使用 CCI.Supervisor.Resource 传递支持在主管命名空间上下文中运行的 Kubernetes 对象的 Kubernetes 清单。
- 要在特定的主管命名空间中置备主管资源,可以通过使用模板绑定表达式将主管资源上下文属性映射到主管命名空间 ID 来配置该属性,例如,context: ${resource.cciNamespace.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 资源中创建命名空间,可以通过在上下文属性中插入 TKG 资源的名称(即 context: ${resource.cciTKGNamespace.id}),将 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 添加可选参数,请在“代码”面板中单击资源名称旁边的灯泡。