En tant qu'administrateur vSphere, vous pouvez créer un espace de noms du superviseur, définir des limites de CPU, de mémoire et de stockage sur l'espace de noms, attribuer des autorisations et activer le service d'espace de noms sur un cluster en tant que modèle. Par conséquent, les ingénieurs DevOps peuvent créer un espace de noms de superviseur en libre-service et y déployer des charges de travail.

Workflow de création et de configuration d'un espace de noms en libre-service

En tant qu'administrateur vSphere, vous pouvez créer un espace de noms de superviseur, définir des limites de CPU, de mémoire et de stockage sur l'espace de noms, attribuer des autorisations, et provisionner ou activer le service d'espace de noms sur un cluster en tant que modèle.
Figure 1. Workflow de provisionnement de modèle d'espace de noms en libre-service
""
En tant qu'ingénieur DevOps, vous pouvez créer un espace de noms de superviseur en libre-service et y déployer des charges de travail. Vous pouvez le partager avec d'autres ingénieurs DevOps ou le supprimer lorsqu'il n'est plus requis. Pour partager l'espace de noms avec d'autres ingénieurs DevOps, contactez l'administrateur vSphere.
Figure 2. Workflow de création d'espace de noms en libre-service
""

Créer et configurer un modèle d'espace de noms en libre-service

En tant qu'administrateur vSphere, vous pouvez créer et configurer un espace de noms superviseur en tant que modèle d'espace de noms en libre-service. Les ingénieurs DevOps peuvent ensuite créer et supprimer des espaces de noms de superviseur à l'aide de la ligne de commande kubectl.

Conditions préalables

Configurez un cluster avec vSphere IaaS control plane.

Procédure

  1. Dans vSphere Client, naviguer vers le Superviseur.
  2. Dans l'onglet Configurer, sélectionnez Général sous Superviseur.
  3. Sélectionnez Service d'espace de noms.
  4. Faites basculer le commutateur État pour activer cette fonctionnalité.
    La page Créer un modèle d'espaces de noms s'affiche.
  5. Dans le volet Configuration, configurez les ressources de l'espace de noms.
    Option Description
    CPU Quantité de ressources de CPU à réserver pour l'espace de noms.
    Mémoire Quantité de mémoire à réserver pour l'espace de noms.
    Stockage Quantité totale d'espace de stockage à réserver pour l'espace de noms.
    Stratégie de stockage Stratégies de stockage à utiliser avec les charges de travail qui nécessitent un stockage persistant.
    Réseau Dans le menu déroulant Réseau, sélectionnez un réseau pour l'espace de noms.
    Classes de VM Classes de machine virtuelle pour déployer des machines virtuelles autonomes.
    Bibliothèques de contenu Bibliothèques de contenu avec images de machine virtuelle à utiliser pour les déploiements de machines virtuelles.
  6. Cliquez sur Suivant.
  7. Dans le volet Autorisations, ajoutez des ingénieurs et des groupes DevOps pour leur permettre d'utiliser le modèle afin de créer des espaces de noms.
    Sélectionnez une source d'identité et un utilisateur ou un groupe, puis cliquez sur Suivant.
  8. Les propriétés que vous configurez s'affichent dans le volet Vérifier et confirmer.
    Examinez-les, puis cliquez sur Terminé.

Résultats

Un modèle d'espace de noms est configuré et est à l'état Actif. En tant qu'administrateur vSphere, vous pouvez modifier le modèle. Les ingénieurs DevOps peuvent utiliser le modèle pour créer des espaces de noms.

Désactiver un espace de noms en libre-service

En tant vSphere, vous pouvez désactiver un espace de noms en libre-service sur le cluster.

Lorsque vous désactivez un modèle d'espace de noms en libre-service, les ingénieurs DevOps ne peuvent pas utiliser le modèle pour créer de nouveaux espaces de noms sur le cluster. Ils peuvent supprimer les espaces de noms qu'ils ont déjà créés.

Procédure

  1. Dans vSphere Client, naviguer vers le Superviseur.
  2. Dans l'onglet Configurer, sélectionnez Général sous Superviseur.
  3. Dans le volet Service d'espace de noms, basculez le commutateur État pour désactiver le modèle.
  4. Pour le réactiver, basculez le commutateur État.
    Vous pouvez créer un autre espace de noms en libre-service ou utiliser l'espace existant.

Créer un espace de noms en libre-service

En tant qu'ingénieur DevOps, vous pouvez créer un espace de noms en libre-service et y exécuter des charges de travail. Une fois que vous avez créé l'espace de noms, vous pouvez le partager avec d'autres ingénieurs DevOps ou le supprimer lorsqu'il n'est plus requis.

Conditions préalables

  • Vérifiez qu'un administrateur vSphere a créé et activé un modèle d'espace de noms en libre-service sur le cluster. Reportez-vous à la section Créer et configurer un modèle d'espace de noms en libre-service.
  • Vérifiez que vous êtes ajouté à la liste d'autorisations dans le modèle d'espace de noms en libre-service individuellement ou en tant que membre d'un groupe.
  • Obtenez l'adresse IP du plan de contrôle du Superviseur.

Procédure

  1. À l'aide du Plug-in vSphere pour kubectl, authentifiez-vous dans le Superviseur. Reportez-vous à la section Se connecter au superviseur en tant qu'utilisateur vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Basculez le contexte sur le Superviseur cible.
    kubectl config use-context SUPERVISOR-CLUSTER-IP
  3. Créez un espace de noms en libre-service sur le cluster.
    kubectl create namespace NAMESPACE NAME
    Par exemple
    kubectl create namespace test-ns
    Note : Les autorisations de propriétaire sont disponibles pour les ingénieurs DevOps après avoir activé vSphere IaaS control plane et mis à niveau le cluster. Si vous avez uniquement mis à niveau vCenter Server et non le cluster, les ingénieurs DevOps disposeront uniquement des autorisations de modification sur les espaces de noms.
    L'espace de noms que vous créez s'affiche dans le cluster. Pour partager l'espace de noms avec d'autres ingénieurs DevOps, contactez l'administrateur vSphere.

Créer un espace de noms en libre-service avec des annotations et des étiquettes

Les ingénieurs DevOps peuvent créer des espaces de noms en libre-service avec des annotations et des étiquettes à l'aide de la ligne de commande kubectl.

Les ingénieurs DevOps peuvent utiliser un manifeste YAML avec des annotations et des étiquettes définies par l'utilisateur.

Procédure

  1. Connectez-vous à Superviseur.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Créez un fichier manifeste YAML d'espace de noms avec des annotations et des étiquettes.
    kubectl create -f ns-create.yaml
    Par exemple, créez le fichier ns-create.yaml suivant :
    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. Appliquez le manifeste YAML.
    kubectl create -f ns-create.yaml

    Ou

    kubectl apply -f ns-create.yaml
  4. Décrivez l'espace de noms que vous avez créé pour voir les modifications.
    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.

Mettre à jour un espace de noms en libre-service à l'aide de kubectl annotate et kubectl label

En tant qu'ingénieur DevOps, vous pouvez mettre à jour ou supprimer des annotations et des étiquettes d'espace de noms en libre-service à l'aide des commandes kubectl annotate et kubectl label

Conditions préalables

Vérifiez que vous disposez des autorisations de propriétaire sur l'espace de noms que vous souhaitez mettre à jour.

Procédure

  1. Connectez-vous à Superviseur.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Décrivez l'espace de noms que vous souhaitez mettre à jour.
    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. Mettez à jour les annotations à l'aide de la commande kubectl annotate.
    Par exemple, kubectl annotate --overwrite ns testns my-ann="test-ann-3"
    Pour supprimer une annotation, exécutez la commande kubectl annotate --overwrite ns testns my-ann-.
  4. Mettez à jour les étiquettes à l'aide de la commande kubectl label.
    Par exemple, kubectl label --overwrite ns testns my-label="test-label-3"
    Pour supprimer une étiquette, exécutez la commande kubectl label --overwrite ns testns my-label-.
  5. Décrivez l'espace de noms pour voir les mises à jour.
    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.

Mettre à jour un espace de noms en libre-service à l’aide de kubectl edit

En tant qu'ingénieur DevOps, vous pouvez mettre à jour des espaces de noms en libre-service à l'aide de la commande kubectl edit.

Conditions préalables

Vérifiez que vous disposez des autorisations de propriétaire sur l'espace de noms que vous souhaitez mettre à jour.

Procédure

  1. Connectez-vous à Superviseur.
    kubectl vsphere login --server IP-ADDRESS-SUPERVISOR-CLUSTER --vsphere-username VCENTER-SSO-USERNAME
  2. Décrivez l'espace de noms que vous souhaitez mettre à jour.
    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. Modifiez l'espace de noms à l'aide de la commande kubectl edit.
    Par exemple, kubectl edit ns testns-1
    La commande kubectl edit ouvre le manifeste du cluster dans l'éditeur de texte défini par votre variable d'environnement KUBE_EDITOR ou EDITOR.
  4. Mettez à jour les étiquettes.
    Par exemple, my-label=test-label
  5. Mettez à jour les annotations.
    Par exemple, my-ann: test-ann
  6. Décrivez l'espace de noms pour voir les mises à jour.
    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.
    

Supprimer un espace de noms en libre-service

En tant qu'ingénieur DevOps, vous pouvez supprimer un espace de noms en libre-service que vous créez.

Conditions préalables

Vérifiez que vous avez créé un espace de noms en libre-service à l'aide de Plug-in vSphere pour kubectl.

Procédure

  1. À l'aide du Plug-in vSphere pour kubectl, authentifiez-vous dans le Superviseur. Reportez-vous à la section Se connecter au superviseur en tant qu'utilisateur vCenter Single Sign-On.
  2. Supprimez l'espace de noms en libre-service du cluster.
    kubectl delete namespace NAMESPACE NAME
    Par exemple :
    kubectl delete namespace test-ns