In qualità di amministratore del cloud di VMware Aria Automation, è possibile utilizzare un'interfaccia della riga di comando per abilitare l'accesso a Cloud Consumption Interface (CCI) e configurare costrutti di governance. L'interfaccia della riga di comando utilizza lo strumento della riga di comando Kubernetes o kubectl.
Per un elenco completo delle azioni che è possibile eseguire utilizzando la CLI, vedere Riferimento dell'API Kubernetes per Cloud Consumption Interface.
Prerequisiti
- Verificare che un cluster supervisore sia abilitato in un'istanza di vCenter e che sia registrato con VMware Aria Automation.
- Verificare di essere almeno un membro dell'organizzazione in VMware Aria Automation con il ruolo di servizio amministratore per Automation Assembler o Automation Service Broker.
- Verificare di aver:
- Scaricato il plug-in kubectl di CCI.
- Recuperato un token API per l'utente amministratore o definito una variabile per archiviare la password dell'utente.
- Utilizzato il token con l'opzione -t oppure utilizzato le credenziali di amministratore con l'opzione -u per accedere al server CCI e modificato il contesto predefinito in CCI.
- Verificare di aver aggiunto un account cloud vCenter in Automation Assembler.
Per ulteriori informazioni su tali prerequisiti, vedere Impostazione e configurazione di Cloud Consumption Interface
Passaggio 1: creazione di un progetto e dei binding del ruolo del progetto
Per raggruppare gli utenti di Automation e impostare l'accesso alle risorse dell'infrastruttura, creare un progetto e i binding del ruolo del progetto.
- Creare un progetto.
kubectl create -f project.yaml
Fileproject.yaml
di esempio.apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- Creare un binding del ruolo del progetto per assegnare ruoli a utenti o gruppi in un progetto creato.
kubectl create -f projectrolebinding.yaml
Il seguente fileprojectrolebinding.yaml
di esempio aggiunge un utente con il ruolo del progetto admin. I valori del ruolo del progetto sono: admin, view o edit.apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRoleBinding metadata: name: cci:user:vmware.com:<user_alias> namespace: <project_name> roleRef: apiGroup: authorization.cci.vmware.com kind: ProjectRole name: admin subjects: - kind: User name: <[email protected]>
Passaggio 2: creazione di una regione
È possibile creare una regione in modo da poter assegnare supervisori a tale regione.
kubectl create -f region.yaml
region.yaml
di esempio.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
Passaggio 3: associazione di un supervisore a una regione
Per associare un supervisore a una regione, trovare il supervisore che si desidera aggiornare, quindi aggiungere la regione e le etichette che verranno utilizzate per il posizionamento dello spazio dei nomi.
- Per individuare il supervisore che si desidera aggiornare, visualizzare l'elenco dei supervisori. Le risorse supervisore saranno visibili dopo la raccolta dei dati di vCenter.
kubectl -n cci-config get supervisors
Di seguito è riportato un risultato di esempio.NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- Aggiornare il supervisore denominato
adminannie-vcenter:domain-c8
.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
L'esempio seguente include le coppie chiave-valoremetadata.labels
e le regionispec.regionNames
. Le etichette environment: testing e fipsMode: strict possono essere utilizzate per le decisioni di posizionamento del supervisore.apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: Supervisor metadata: labels: environment: testing fipsMode: strict name: adminannie-vc:domain-c8 namespace: cci-config uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d spec: cloudAccountName: adminannie-vc externalId: domain-c8 externalName: wcp-test-dc-cluster regionNames: - <region_name>
- In alternativa, fare clic sulla scheda Regioni supervisore per un progetto che si trova in
Passaggio 4: creazione del binding di una regione e della configurazione del binding di una regione
È possibile creare il binding di una regione e la configurazione del binding della regione in modo che gli utenti di un progetto possano creare spazi dei nomi supervisore nei supervisori in una regione.
- Creare il binding di una regione.
kubectl create -f regionbinding.yaml
Fileregionbinding.yaml
di esempio.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
Il binding di una regione non include alcuna impostazione di posizionamento del supervisore, pertanto è necessario creare anche la configurazione del binding della regione.
- Creare la configurazione del binding della regione per ogni binding di regione creato. È possibile includere espressioni di corrispondenza utilizzate per filtrare ulteriormente i supervisori. Le etichette supervisore vengono utilizzate per consentire il posizionamento dello spazio dei nomi supervisore in un sottoinsieme dei supervisori in una regione.
kubectl create -f regionbindingconfig.yaml
Nel seguente fileregionbindingconfig.yaml
di esempio, tutti i supervisori che corrispondono all'etichetta di ambiente testing possono ospitare gli spazi dei nomi supervisore creati in tale progetto e regione.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Passaggio 5: creazione di una classe dello spazio dei nomi supervisore e aggiunta di una configurazione per la classe dello spazio dei nomi supervisore
Per definire modelli di spazio dei nomi con parametri facoltativi che possono essere utilizzati per personalizzare le impostazioni dello spazio dei nomi durante la creazione, creare una classe dello spazio dei nomi supervisore. È quindi possibile creare una configurazione della classe dello spazio dei nomi supervisore con espressioni di corrispondenza utilizzate per il filtro aggiuntivo dei supervisori utilizzati per il posizionamento dello spazio dei nomi supervisore.
- Creare una classe dello spazio dei nomi supervisore.
kubectl create -f supervisornamespaceclass.yaml
Nel seguente filesupervisornamespaceclass.yaml
di esempio, l'input facoltativo inparameters
riflette i parametri della classe dello spazio dei nomi forniti dagli utenti durante la creazione dello spazio dei nomi. Tutti gli input devono avere valori predefiniti. I valori vengono utilizzati per personalizzare le classi di storage, i limiti e i vincoli aggiuntivi.apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClass metadata: name: <class_name> spec: description: supervisor namespace class parameters: - name: podCountLimit type: Integer minimum: 100 maximum: 1000 default: 500
La classe dello spazio dei nomi supervisore non contiene alcuna impostazione di posizionamento del supervisore, pertanto è necessario creare anche una configurazione della classe dello spazio dei nomi supervisore.
- Creare una configurazione della classe dello spazio dei nomi supervisore.
kubectl create -f supervisornamespaceclassconfig.yaml
Il codice YAML è configurato con tutte le configurazioni dello spazio dei nomi supervisore che si desidera vengano ereditate dallo spazio dei nomi supervisore e può includere:- Librerie dei contenuti che includono le immagini utilizzate da Servizio macchina virtuale durante il provisioning delle macchine virtuali.
- Classi di macchine virtuali come t-shirt size.
- Limiti delle risorse imposti per CPU, memoria e storage.
- Classi di storage da utilizzare.
- SupervisorSelector per decidere quale supervisore utilizzare per la creazione dello spazio dei nomi supervisore.
Nel seguente filesupervisornamespaceclassconfig.yaml
di esempio,supervisorSelector
viene utilizzato per l'abbinamento alle etichette supervisore.apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassConfig metadata: name: <class_name> spec: storageClasses: - name: management-storage-policy-thin vmClasses: - name: big-vm-class - name: small-vm-class contentSources: - name: global-content-library type: ContentLibrary # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace # Either set reasonable limits, or remove the below section to get unlimited resources limits: - name: pod_count limit: "((parameters.podCountLimit))" supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Passaggio 6: associazione di una classe dello spazio dei nomi a un progetto
Per consentire la creazione di uno spazio dei nomi supervisore utilizzando la classe dello spazio dei nomi supervisore in un progetto, creare un binding della classe dello spazio dei nomi supervisore.
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
di esempio.
namespace
specifica il nome del progetto da associare alla classe dello spazio dei nomi supervisore.overrideParameters
sono facoltativi. Vengono utilizzati per forzare il valore di un parametro ignorando i valori dei parametri forniti dall'utente quando viene creato lo spazio dei nomi supervisore. I tipi validi sono Intero, Stringa e Booleano.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000