Als VMware Aria Automation-cloudbeheerder kunt u een commandoregelinterface gebruiken om CCI-toegang (Cloud Consumption Interface) in te schakelen en governanceconstructs te configureren. De commandoregelinterface gebruikt het Kubernetes-commandoregelprogramma of kubectl.
Zie Kubernetes API-referentie voor de Cloud Consumption Interface voor een volledige lijst met acties die u kunt uitvoeren met de CLI.
Vereisten
- Controleer of een supervisorcluster is ingeschakeld op een vCenter-instantie en is geregistreerd met VMware Aria Automation.
- Controleer of u ten minste een organisatielid bent van VMware Aria Automation met de servicerol van beheerder voor Automation Assembler of Automation Service Broker.
- Controleer of u over het volgende beschikt:
- De CCI kubectl-invoegtoepassing is gedownload.
- Een API-token voor de admingebruiker is verkregen of een variabele is gedefinieerd om uw gebruikerswachtwoord op te slaan.
- Heeft uw token gebruikt met de optie -t of heeft uw beheerdersinloggegevens gebruikt met de optie -u om u aan te melden bij de CCI-server en de standaardcontext gewijzigd in CCI.
- Controleer of u een vCenter-cloudaccount heeft toegevoegd in Automation Assembler.
Zie Cloud Consumption Interface instellen en configureren voor meer informatie over een van deze vereisten.
Stap 1: Een project en projectrolbindingen maken
Om Automation-gebruikers te groeperen en toegang tot infrastructuurresources in te stellen, maakt u project en projectrolbindingen.
- Maak een project.
kubectl create -f project.yaml
project.yaml
-voorbeeldbestand.apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- Maak een projectrolbinding om rollen toe te wijzen aan gebruikers of groepen in een gemaakt project.
kubectl create -f projectrolebinding.yaml
In het volgende voorbeeld voegtprojectrolebinding.yaml
een gebruiker met de projectrol beheerder toe. Projectrolwaarden zijn: beheerder, weergeven of bewerken.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]>
Stap 2: Een regio maken
U maakt een regio zodat u supervisors aan die regio kunt toewijzen.
kubectl create -f region.yaml
region.yaml
-voorbeeldbestand.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
Stap 3: Een supervisor aan een regio koppelen
Als u een supervisor aan een regio wilt koppelen, vindt u de supervisor die u wilt bijwerken en voegt u vervolgens de regio en labels toe die worden gebruikt voor de plaatsing van naamruimten.
- Vermeld de supervisors om de supervisor te vinden die u wilt bijwerken. Supervisorresources zijn zichtbaar na vCenter-gegevensverzameling.
kubectl -n cci-config get supervisors
Het volgende is een voorbeeldresultaat.NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- Werk de supervisor met de naam
adminannie-vcenter:domain-c8
bij.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
Het volgende voorbeeld bevat sleutelwaardeparenmetadata.labels
en regio'sspec.regionNames
. De labels omgeving: testen en fipsMode: strict kunnen worden gebruikt om te helpen bij het nemen van plaatsingsbeslissingen over supervisors.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>
- Of klik op het tabblad Supervisorregio's voor een project in
Stap 4: Een regiobinding en een configuratie voor regiobinding maken
U maakt een regiobinding en configuratie voor regiobinding zodat gebruikers in een project supervisornaamruimten op supervisors in een regio kunnen maken.
- Maak een regiobinding.
kubectl create -f regionbinding.yaml
regionbinding.yaml
-voorbeeldbestand.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
Een regiobinding bevat geen instellingen voor plaatsing van de supervisor, dus u moet ook een configuratie voor regiobinding maken.
- Maak een configuratie voor regiobinding voor elke gemaakte regiobinding. U kunt overeenkomstexpressies opnemen die worden gebruikt voor extra filtering van supervisors. Supervisorlabels worden gebruikt om plaatsing van supervisornaamruimten op een subset van de supervisors in een regio toe te staan.
kubectl create -f regionbindingconfig.yaml
In het volgende voorbeeldbestandregionbindingconfig.yaml
kunnen supervisors die overeenkomen met het omgevingslabel testen de supervisornaamruimten hosten die in dat project en die regio zijn gemaakt.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Stap 5: Een supervisornaamruimteklasse maken en een configuratie voor de supervisornaamruimteklasse toevoegen
Om naamruimtesjablonen met optionele parameters te definiëren die kunnen worden gebruikt om de naamruimte-instellingen aan te passen tijdens het maken, maakt u een supervisornaamruimteklasse. Vervolgens kunt u een configuratie voor de supervisornaamruimteklasse maken met overeenkomstexpressies die worden gebruikt voor extra filtering van supervisors die worden gebruikt voor plaatsing van supervisornaamruimten.
- Maak een supervisornaamruimteklasse.
kubectl create -f supervisornamespaceclass.yaml
In het volgende voorbeeldbestandsupervisornamespaceclass.yaml
geeft de optionele invoer onderparameters
de parameters van de naamruimteklasse weer die gebruikers opgeven bij het maken van de naamruimte. Alle invoer moet standaardwaarden hebben. De waarden worden gebruikt om de opslagklassen, limieten en aanvullende beperkingen aan te passen.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
De supervisornaamruimteklasse bevat geen instellingen voor plaatsing van supervisors, dus u moet ook een configuratie voor de supervisornaamruimteklasse maken.
- Maak een configuratie voor de supervisornaamruimteklasse.
kubectl create -f supervisornamespaceclassconfig.yaml
Het YAML-bestand is geconfigureerd met alle configuraties voor supervisornaamruimte die u door de supervisornaamruimte wilt laten overnemen en kan het volgende bevatten:- Inhoudsbibliotheken die de images bevatten die de VM-service gebruikt bij het inrichten van virtuele machines.
- VM-klassen zoals T-shirtmaten.
- Resourcelimieten afgedwongen voor CPU, geheugen en opslag.
- Te gebruiken opslagklassen.
- SupervisorSelector om te bepalen welke supervisor moet worden gebruikt voor het maken van supervisornaamruimten.
In het volgende voorbeeldbestandsupervisornamespaceclassconfig.yaml
wordt desupervisorSelector
gebruikt om overeenkomsten te vinden voor supervisorlabels.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
Stap 6: Een naamruimteklasse aan een project koppelen
Om het maken van een supervisornaamruimte met de supervisornaamruimteklasse in een project mogelijk te maken, maakt u een binding voor supervisornaamruimteklassen.
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
-voorbeeldbestand.
namespace
geeft de naam op van het project dat u aan de supervisornaamruimteklasse wilt koppelen.overrideParameters
zijn optioneel. Ze worden gebruikt om een parameterwaarde af te dwingen, terwijl de door de gebruiker opgegeven parameterwaarden worden genegeerd wanneer de supervisornaamruimte wordt gemaakt. Geldige typen zijn Geheel getal, Tekenreeks of Booleaans.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000