Puede agregar elementos de la interfaz de consumo de nube (CCI) para utilizar el servicio CCI dentro de una plantilla de VMware Aria Automation para que los usuarios puedan solicitar cargas de trabajo basadas en Kubernetes utilizando el servicio de máquina virtual y Tanzu Kubernetes Grid Service dentro de un espacio de nombres de supervisor.
Para ver los elementos CCI, amplíe la sección Interfaz de consumo de nube dentro de la biblioteca de recursos de su plantilla de nube o escriba cci en el campo Buscar tipos de recursos.
Recurso Espacio de nombres de supervisor
|
Cree un nuevo espacio de nombres de supervisor, que proporciona un espacio de trabajo basado en Kubernetes con límites de recursos, acceso de usuarios y servicios de supervisor disponibles, para que los usuarios puedan aprovisionar recursos de VM y TKG en función de las necesidades de las aplicaciones. |
Recurso Supervisor
|
Cree cualquier recurso Supervisor de Kubernetes compatible dentro de un espacio de nombres de supervisor, como virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets , etc., en función del manifiesto Kubernetes pasado al recurso Supervisor que se esté configurando. |
Recurso TKG
|
Cree cualquier recurso Kubernetes compatible dentro de un clúster TKG. |
CCI.Supervisor.Namespace
Soltar directamente en el lienzo.CCI.Supervisor.Resource
Soltar en un recurso de espacio de nombres de supervisor o directamente en el lienzo.CCI.TKG.Resource
Soltar en otro recurso de TKG, un recurso de supervisor o directamente en el lienzo. Los recursos de CCI están limitados a cinco niveles de anidamiento.
En la vista de lienzo que aparece a continuación, verá que se arrastra un recurso de TKG a un recurso de supervisor denominado cciTKGCluster. Un espacio de nombres de supervisor que contiene un recurso de supervisor que contiene un recurso de TKG muestra tres niveles de anidamiento.
Los siguientes ejemplos muestran cómo aparecen los recursos de CCI, como cciNamespace y cciTKGCluster, en el código YAML de su plantilla de nube. Cada ejemplo está resumido para mostrar únicamente las líneas importantes.
Ejemplo de recurso Espacio de nombres de supervisor
CCI.Supervisor.Namespace representa el espacio de trabajo basado en Supervisor de Kubernetes en el que se crean los recursos de IaaS de supervisor de vSphere gestionados por el usuario para la aplicación.
Este ejemplo define un recurso de espacio de nombres de supervisor de CCI denominado cciNamespace para aprovisionar un espacio de nombres de supervisor denominado demo.
name
en el código YAML.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Ejemplo de recurso Supervisor
Se usa CCI.Supervisor.Resource para pasar el manifiesto de Kubernetes para los objetos Kubernetes admitidos de forma que se ejecuten en un contexto de espacio de nombres de supervisor.
- Para aprovisionar el recurso Supervisor dentro de un espacio de nombres de supervisor concreto, configure la propiedad de contexto del recurso Supervisor asignándola al ID del espacio de nombres de supervisor mediante una expresión de enlace de plantilla, por ejemplo context: ${resource.cciNamespace.id}.
- Para especificar los objetos que desea aprovisionar, configure la propiedad de manifiesto del recurso Supervisor pasando el manifiesto de Kubernetes al objeto Kubernetes que está creando.
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
En el lienzo, el espacio de nombres de supervisor cciNamespace contiene dos recursos de supervisor: cciTKGCluster y vm.
Ejemplo de recurso TKG
- Para vincular un recurso TKG a un clúster TKG, debe asignar el ID del recurso de clúster TKG supervisor con la propiedad context, por ejemplo, context: ${resource.cciTKGCluster.id}.
- Si está creando un espacio de nombres dentro de un recurso TKG llamado cciTKGNamespace, por ejemplo, puede vincular un recurso TKG al espacio de nombres insertando el nombre del recurso TKG en la propiedad context o context: ${resource.cciTKGNamespace.id}.
- El manifiesto de Kubernetes que se pasa dentro de las propiedades del recurso especifica el tipo de objeto Kubernetes que se debe aprovisionar.
... 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)} ...
En el lienzo, el recurso de TKG tkgSecret aparece anidado dentro del recurso de TKG cciTKGCluster.
Agregar una propiedad de espera
- Campo Wait: Lista de campos donde cada campo puede configurarse con una ruta de propiedad y un valor. El valor debe ser verificado antes de que el recurso se considere completado.
- Condición Wait: Lista de condiciones que indican el éxito o el fracaso de la creación del recurso.
... wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true ...
Para agregar parámetros opcionales mediante la interfaz de usuario, haga clic en la bombilla junto al nombre del recurso en el panel Código.