L'amministratore di vSphere può creare uno spazio dei nomi supervisore, impostare limiti di CPU, memoria e storage per lo spazio dei nomi, assegnare autorizzazioni e attivare il servizio dello spazio dei nomi in un cluster come modello. Di conseguenza, i tecnici DevOps possono creare uno spazio dei nomi supervisore in modalità self-service e distribuire i carichi di lavoro in tale spazio dei nomi.

Workflow di creazione e configurazione dello spazio dei nomi self-service

L'amministratore vSphere di può creare uno spazio dei nomi supervisore, impostare limiti di CPU, memoria e storage per lo spazio dei nomi, assegnare autorizzazioni ed eseguire il provisioning o attivare il servizio dello spazio dei nomi in un cluster come modello.
Figura 1. Workflow di provisioning del modello di spazio dei nomi self-service
""
Un ingegnere DevOps può creare uno spazio dei nomi supervisore in modo self-service e distribuire i carichi di lavoro al suo interno. È possibile condividerlo con altri ingegneri DevOps o eliminarlo quando non è più necessario. Per condividere lo spazio dei nomi con altri tecnici di DevOps, contattare l'amministratore di vSphere.
Figura 2. Workflow di creazione dello spazio dei nomi self-service
""

Creazione e configurazione di un modello di spazio dei nomi self-service

L'amministratore di vSphere può creare e configurare uno spazio dei nomi supervisore come modello dello spazio dei nomi self-service. I tecnici di DevOps possono quindi creare ed eliminare spazi dei nomi supervisore utilizzando la riga di comando kubectl.

Prerequisiti

Configurare un cluster con vSphere IaaS control plane.

Procedura

  1. In vSphere Client, passare a Supervisore.
  2. Fare clic sulla scheda Configura e selezionare Generale in Supervisore.
  3. Selezionare Servizio spazio dei nomi.
  4. Attivare o disattivare l'opzione Stato per abilitare la funzionalità.
    Viene visualizzata la pagina Crea modello spazio dei nomi.
  5. Nel riquadro Configurazione, configurare le risorse per lo spazio dei nomi.
    Opzione Descrizione
    CPU Quantità di risorse della CPU da riservare per lo spazio dei nomi.
    Memoria Quantità di memoria da riservare per lo spazio dei nomi.
    Storage Quantità totale di spazio di storage da riservare per lo spazio dei nomi.
    Criterio di storage Criteri di storage da utilizzare con i carichi di lavoro che richiedono storage persistente.
    Network Dal menu a discesa Rete, selezionare una rete per lo spazio dei nomi.
    Classi di macchine virtuali Classi di macchine virtuali per distribuire macchine virtuali autonome.
    Librerie dei contenuti Librerie di contenuti con immagini della macchina virtuale da utilizzare per le distribuzioni delle macchine virtuali.
  6. Fare clic su Avanti.
  7. Nel riquadro Autorizzazioni, aggiungere tecnici e gruppi di DevOps per consentire loro di utilizzare il modello per creare spazi dei nomi.
    Selezionare una fonte di identità, un utente o un gruppo e fare clic su Avanti.
  8. Nel riquadro Rivedi e conferma, vengono visualizzate le proprietà configurate.
    Rivedere le proprietà e fare clic su Fine.

risultati

È configurato un modello di spazio dei nomi con stato attivo. L'amministratore di vSphere può modificare il modello. I tecnici di DevOps possono utilizzare il modello per creare spazi dei nomi.

Disattivazione di uno spazio dei nomi self-service

L'amministratore di vSphere può disattivare uno spazio dei nomi self-service nel cluster.

Quando si disattiva un modello di spazio dei nomi self-service, i tecnici di DevOps non possono utilizzare il modello per creare nuovi spazi dei nomi nel cluster. Possono eliminare gli spazi dei nomi già creati.

Procedura

  1. In vSphere Client, passare a Supervisore.
  2. Fare clic sulla scheda Configura e selezionare Generale in Supervisore.
  3. Nel riquadro Servizio spazio dei nomi, attivare o disattivare l'opzione Stato per disattivare il modello.
  4. Per riattivare il modello, attivare o disattivare l'opzione Stato.
    È possibile creare un altro spazio dei nomi self-service o utilizzare quello esistente.

Creazione di un di spazio dei nomi self-service

Il tecnico di DevOps può creare uno spazio dei nomi self-service ed eseguire carichi di lavoro al suo interno. Dopo aver creato lo spazio dei nomi, è possibile condividerlo con altri tecnici di DevOps oppure eliminarlo quando non è più necessario.

Prerequisiti

  • Verificare che un amministratore di vSphere abbia creato e attivato un modello di spazio dei nomi self-service nel cluster. Vedere Creazione e configurazione di un modello di spazio dei nomi self-service.
  • Verificare di essere stati aggiunti all'elenco delle autorizzazioni nel modello dello spazio dei nomi self-service singolarmente o come membro di un gruppo.
  • Ottenere l'indirizzo IP del piano di controllo Supervisore.

Procedura

  1. Utilizzando Plug-in vSphere per kubectl, eseguire l'autenticazione con il Supervisore. Vedere Connessione al supervisore come utente vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto del Supervisore.
    kubectl config use-context SUPERVISOR-CLUSTER-IP
  3. Creare uno spazio dei nomi self-service nel cluster.
    kubectl create namespace NAMESPACE NAME
    Ad esempio
    kubectl create namespace test-ns
    Nota: Le autorizzazioni di proprietario sono disponibili per i tecnici di DevOps dopo aver abilitato vSphere IaaS control plane ed eseguito l'upgrade del cluster. Se è stato effettuato l'upgrade del solo vCenter Server e non del cluster, i tecnici di DevOps avranno solo autorizzazioni di modifica per gli spazi dei nomi.
    Lo spazio dei nomi creato viene visualizzato nel cluster. Per condividere lo spazio dei nomi con altri tecnici di DevOps, contattare l'amministratore di vSphere.

Creazione di uno spazio dei nomi self-service con annotazioni ed etichette

I tecnici di DevOps possono creare spazi dei nomi self-service con annotazioni ed etichette utilizzando la riga di comando kubectl.

I tecnici di DevOps possono utilizzare un manifesto YAML con annotazioni ed etichette definite dall'utente.

Procedura

  1. Accedere al Supervisore.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Creare un file manifesto YAML dello spazio dei nomi con annotazioni ed etichette.
    kubectl create -f ns-create.yaml
    Ad esempio, creare il file ns-create.yaml seguente:
    apiVersion: v1
    kind: Namespace
    metadata:
      name: test-ns-yaml
      labels:
        my-label: "my-label-val-yaml"
      annotations:
        my-ann-yaml: "my-ann-val-yaml"
  3. Applicare il manifesto YAML.
    kubectl create -f ns-create.yaml

    Oppure

    kubectl apply -f ns-create.yaml
  4. Descrivere lo spazio dei nomi creato per visualizzare le modifiche.
    root@localhost [ /tmp ]# kubectl describe ns test-ns-yaml
    Name:         test-ns-yaml
    Labels:       my-label=my-label-val-yaml
                  vSphereClusterID=domain-c50
    Annotations:  my-ann-yaml: my-ann-val-yaml
                  vmware-system-namespace-owner-count: 1
                  vmware-system-resource-pool: resgroup-171
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v172
    Status:       Active
     
    Resource Quotas
     Name:             test-ns-yaml
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     Name:                                                                           test-ns-yaml-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
    No LimitRange resource.

Aggiornamento di uno spazio dei nomi self-service mediante l'annotazione kubectl e l'etichetta kubectl

I tecnici di DevOps possono aggiornare o eliminare annotazioni ed etichette di spazi dei nomi self-service utilizzando i comandi kubectl annotate e kubectl label.

Prerequisiti

Assicurarsi di disporre delle autorizzazioni di proprietario per lo spazio dei nomi che si desidera aggiornare.

Procedura

  1. Accedere al Supervisore.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Descrivere lo spazio dei nomi che si desidera aggiornare.
    root@localhost [ /tmp ]# kubectl describe ns testns
    Name:         testns
    Labels:       my-label=test-label-2
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-2
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
  3. Aggiornare le annotazioni utilizzando il comando kubectl annotate.
    Ad esempio, kubectl annotate --overwrite ns testns my-ann="test-ann-3".
    Per eliminare un'annotazione, eseguire il comando kubectl annotate --overwrite ns testns my-ann-
  4. Aggiornare le etichette utilizzando il comando kubectl label.
    Ad esempio, kubectl label --overwrite ns testns my-label="test-label-3".
    Per eliminare un'etichetta, eseguire il comando kubectl label --overwrite ns testns my-label-
  5. Descrivere lo spazio dei nomi per visualizzare gli aggiornamenti.
    root@localhost [ /tmp ]# kubectl describe ns testns
    Name:         testns
    Labels:       my-label=test-label-3
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-3
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
     
    No LimitRange resource.

Aggiornamento di uno spazio dei nomi self-service utilizzando kubectl edit

I tecnici di DevOps possono aggiornare gli spazi dei nomi self-service utilizzando il comando kubectl edit.

Prerequisiti

Assicurarsi di disporre delle autorizzazioni di proprietario per lo spazio dei nomi che si desidera aggiornare.

Procedura

  1. Accedere al Supervisore.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Descrivere lo spazio dei nomi che si desidera aggiornare.
    kubectl describe ns testns-1
    Name:         testns
    Labels:       vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann-2
                  vmware-system-namespace-owner-count: 2
                  vmware-system-resource-pool: resgroup-153
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v154
    Status:       Active
     
     
    Resource Quotas
     Name:             testns-1
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-1-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
  3. Modificare lo spazio dei nomi utilizzando il comando kubectl edit.
    Ad esempio, kubectl edit ns testns-1.
    Il comando kubectl edit apre il manifesto dello spazio dei nomi nell'editor di testo definito dalla variabile di ambiente KUBE_EDITOR o EDITOR.
  4. Aggiornare le etichette.
    Ad esempio, my-label=test-label.
  5. Aggiornare le annotazioni.
    Ad esempio, my-ann: test-ann.
  6. Descrivere lo spazio dei nomi per visualizzare gli aggiornamenti.
    root@localhost [ /tmp ]# kubectl describe ns testns-1
    Name:         testns-1
    Labels:       my-label=test-label
                  vSphereClusterID=domain-c50
    Annotations:  my-ann: test-ann
                  vmware-system-namespace-owner-count: 1
                  vmware-system-resource-pool: resgroup-173
                  vmware-system-resource-pool-cpu-limit: 0.4770
                  vmware-system-resource-pool-memory-limit: 2000Mi
                  vmware-system-self-service-namespace: true
                  vmware-system-vm-folder: group-v174
    Status:       Active
     
     
    Resource Quotas
     Name:             testns-1
     Resource          Used  Hard
     --------          ---   ---
     requests.storage  0     5000Mi
     
     
     Name:                                                                           testns-1-storagequota
     Resource                                                                        Used  Hard
     --------                                                                        ---   ---
     namespace-service-storage-profile.storageclass.storage.k8s.io/requests.storage  0     9223372036854775807
     
     
    No LimitRange resource.
    

Eliminazione di uno spazio dei nomi self-service

Il tecnico di DevOps può eliminare uno spazio dei nomi self-service creato.

Prerequisiti

Verificare di aver creato uno spazio dei nomi self-service utilizzando il Plug-in vSphere per kubectl.

Procedura

  1. Utilizzando Plug-in vSphere per kubectl, eseguire l'autenticazione con il Supervisore. Vedere Connessione al supervisore come utente vCenter Single Sign-On.
  2. Eliminare lo spazio dei nomi self-service dal cluster.
    kubectl delete namespace NAMESPACE NAME
    Ad esempio:
    kubectl delete namespace test-ns