È 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. |
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.
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
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)} ...
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: fields: - path: status.loadBalancer.ingress[0].ip value: "*" ...