È possibile aggiungere elementi di CCI (Cloud Consumption Interface) per utilizzare il servizio CCI in un modello di VMware Aria Automation in modo che gli utenti possano richiedere carichi di lavoro basati su Kubernetes utilizzando il servizio Macchina virtuale e il servizio Tanzu Kubernetes Grid in uno spazio dei nomi supervisore.
Per visualizzare gli elementi di CCI, espandere la sezione Cloud Consumption Interface all'interno della libreria di risorse nel modello cloud o digitare cci nel campo Cerca tipi di risorse.
Risorsa spazio dei nomi supervisore
|
Creare un nuovo spazio dei nomi supervisore, che fornisca a un'area di lavoro basata su Kubernetes limiti delle risorse, accesso utente e servizi supervisore disponibili, in modo che gli utenti possano eseguire il provisioning delle risorse della macchina virtuale e di TKG in base alle esigenze dell'applicazione. |
Risorsa supervisore
|
Creare una risorsa Kubernetes supervisore supportata qualsiasi in uno spazio dei nomi supervisore, ad esempio virtualmachines , virtualmachineservices , tanzukubernetesclusters , persistentvolumeclaims , secrets e così via in base al manifesto Kubernetes passato alla risorsa supervisore in fase di configurazione. |
Risorsa TKG
|
Creare una risorsa Kubernetes supportata qualsiasi in un cluster TKG. |
CCI.Supervisor.Namespace
: trascinarla direttamente nella tela.CCI.Supervisor.Resource
: trascinarla in una risorsa spazio dei nomi supervisore o direttamente nella tela.CCI.TKG.Resource
: trascinarla in un'altra risorsa TKG, in una risorsa supervisore o direttamente nella tela. Le risorse CCI sono limitate a cinque livelli di nidificazione.
Nella vista della tela seguente, è presente una risorsa TKG trascinata in una risorsa supervisore denominata cciTKGCluster. Uno spazio dei nomi supervisore che contiene una risorsa supervisore che contiene una risorsa TKG include tre livelli di nidificazione.
Gli esempi seguenti illustrano in che modo le risorse di CCI, ad esempio cciNamespace e cciTKGCluster, vengono visualizzate nel codice YAML del modello cloud. Ogni esempio è stato tagliato in modo da mostrare solo le righe importanti.
Esempio di risorsa spazio dei nomi supervisore
CCI.Supervisor.Namespace rappresenta l'area di lavoro supervisore basata su Kubernetes in cui vengono create le risorse IaaS supervisore vSphere gestite dall'utente per l'applicazione.
In questo esempio viene definita una risorsa spazio dei nomi supervisore di CCI denominata cciNamespace per eseguire il provisioning di uno spazio dei nomi supervisore denominato demo.
name
nel codice YAML.
formatVersion: 1 inputs: {} resources: cciNamespace: type: CCI.Supervisor.Namespace properties: name: demo className: default regionName: dev-us-west
Esempio di risorsa supervisore
Utilizzare CCI.Supervisor.Resource per passare il manifesto di Kubernetes per gli oggetti Kubernetes supportati per l'esecuzione nel contesto dello spazio dei nomi supervisore.
- Per eseguire il provisioning della risorsa supervisore all'interno di uno spazio dei nomi supervisore specifico, configurare la proprietà del contesto della risorsa supervisore mappandola all'ID dello spazio dei nomi supervisore tramite un'espressione di binding del modello, ad esempio context: ${resource.cciNamespace.id}.
- Per specificare gli oggetti di cui eseguire il provisioning, configurare la proprietà manifesto della risorsa supervisore passando il manifesto di Kubernetes all'oggetto Kubernetes che si sta 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
Nella tela, lo spazio dei nomi supervisore cciNamespace contiene due risorse supervisore, ovvero cciTKGCluster e vm.
Esempio di risorsa TKG
- Per associare una risorsa TKG a un cluster TKG, mappare l'ID della risorsa cluster TKG supervisore alla proprietà del contesto, ad esempio context: ${resource.cciTKGCluster.id}.
- Se ad esempio si crea uno spazio dei nomi all'interno di una risorsa TKG denominato cciTKGNamespace, è possibile associare una risorsa TKG allo spazio dei nomi inserendo il nome della risorsa TKG nella proprietà del contesto o context: ${resource.cciTKGNamespace.id}.
- Il manifesto di Kubernetes passato all'interno delle proprietà della risorsa specifica il tipo dell'oggetto Kubernetes di cui eseguire il provisioning.
... 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)} ...
Nella tela, la risorsa TKG tkgSecret è nidificata all'interno della risorsa TKG cciTKGCluster.
Aggiunta di una proprietà di attesa
- Attesa del campo: elenco di campi in cui ogni campo può essere configurato con un percorso di proprietà e un valore. Il valore deve corrispondere affinché la risorsa venga considerata completata.
- Attesa della condizione: elenco di condizioni che indicano l'esito positivo o negativo della creazione delle risorse.
... wait: conditions: - type: VirtualMachinePrereqReady status: "False" reason: VirtualMachineImageNotReady indicatesFailure: true ...
Per aggiungere parametri facoltativi utilizzando l'interfaccia utente, fare clic sulla lampadina accanto al nome della risorsa nel pannello Codice.