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.
- Se l'accesso degli utenti a CCI è configurato utilizzando vSphere+, gli utenti possono accedere solo ai progetti predefiniti creati da vSphere+. È possibile utilizzare la CLI per configurare l'accesso a progetti e account cloud aggiuntivi.
- In qualità di amministratore di istanze esistenti di VMware Aria Automation, è possibile utilizzare la CLI per accedere a CCI senza avviarlo tramite vSphere+.
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 amministratore vSphere abbia concesso agli utenti l'accesso a VMware Aria Automation attivando l'esperienza sviluppatore in vSphere+. Vedere Configurazione dell'accesso a Cloud Consumption Interface per i nuovi utenti di Aria Automation.
- 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 disporre di quanto segue:
- Download del plug-in kubectl di CCI.
- Recupero di un token API per l'utente amministratore.
- Utilizzo del token per accedere al server CCI e modifica del contesto predefinito in CCI.
Creazione di un progetto e dei binding del ruolo del progetto
Per raggruppare gli utenti di VMware Aria 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]>
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>
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
Esempio di supervisore con coppie chiave-valoremetadata.labels
e regionispec.regionNames
.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: - eu-west1
Creazione del binding di una regione e di una 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
Creazione di una 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
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
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