Dans cet article, les capacités, les limitations, comment configurer des espaces de noms et comment obtenir une liste d'espaces de noms seront discutés. Commençons par la définition des espaces de noms Kubectl.
Que sont les espaces de noms Kubectl?
Un espace de noms Kubectl est un objet de Kubernetes qui divise un seul cluster physique kubernetes en plusieurs clusters virtuels. Chaque objet d'espace de noms définit les limites des noms qui y sont inclus. En d'autres termes, chaque objet d'espace de noms dans le cluster a une identité unique qui est l'objet fondamental et est utilisé pour séparer et administrer les grappes de Kubernetes.
Les espaces de noms Kubectl sont utilisés pour distinguer logiquement et allouer les ressources à un programme, une équipe, une application, un groupe d'utilisateurs ou des individus spécifiques. L'efficacité des ressources peut être stimulée à l'aide des espaces de noms car un cluster est utilisé pour plusieurs collections de charges de travail.
Maintenant, allons de l'avant et voyons comment obtenir une liste d'espaces de noms et ce qui doit être rempli pour être rempli.
Prérequis:
Afin d'utiliser l'objet Kubernetes espaces, le cluster Minikube doit être installé. Dans notre cas, Ubuntu 20.04 est utilisé pour exécuter les commandes d'objet d'espace de noms. Deux techniques différentes sont utilisées pour démarrer un terminal de cluster minikube. La première technique consiste à accéder au terminal à l'aide de la barre d'application du système d'exploitation. La deuxième technique consiste à accéder à la fenêtre du terminal en appuyant sur Ctrl + Alt + T.
Après avoir accédé à la fenêtre du terminal, démarrez le minikube en utilisant la commande de démarrage Minikube. Lorsque la commande 'MINIKUBE START' est exécutée, la sortie suivante sera affichée:
Voyons maintenant comment et quand utiliser les espaces de noms Kubectl.
Comment utiliser les espaces de noms Kubectl?
L'objet Kubernetes Names Namespaces donne un mécanisme pour séparer le groupe de ressources en un seul cluster. Le nom de chaque ressource doit être unique dans un espace de noms mais pas à travers les espaces de noms. Cependant, la portée des espaces de noms ne s'applique qu'aux objets d'espace de noms comme les services et les déploiements, mais pas pour les objets à l'échelle des cluster comme les volumes persistants, les nœuds, les classes de stockage, etc.
Pour répertorier les espaces de noms existants dans un cluster «Kubectl Get Namespace» est utilisée. Après avoir exécuté la commande, la sortie suivante sera générée:
Observez que l'objet Kubernetes commence par quatre espaces de noms initiaux: par défaut, kube-node-bail, kube-public et kube-system.
Défaut: Espace de noms pour les objets sans aucun autre objet.
Kube-node-bail: Il détient un objet de location associé à tous les nœuds.
Kube-publique: Il est créé automatiquement et peut être lisible par les utilisateurs authentifiés et non authentifiés.
Système de Kube: Il est créé par le système de Kubernetes.
Comment définir l'espace de noms pour une demande?
L'indicateur «-Namesapace» est utilisé pour définir l'espace de noms pour une demande. Voici le code pour définir l'espace de noms pour une demande:
Après avoir exécuté la commande 'kubectl run nginx', le serveur a lancé l'erreur car le pod nginx existe déjà. Cependant, exécutons la commande get pod pour obtenir les espaces de noms. La commande 'kubectl get pods' est exécutée pour obtenir les espaces de noms. Ci-dessous, vous pouvez voir le résultat de la commande get pods.
Comment définir les préférences pour les espaces de noms Kubectl?
Les espaces de noms de toutes les commandes Kubectl suivantes peuvent être enregistrées en permanence en utilisant la commande set-context. Voici la commande pour définir la préférence de l'espace de noms «par défaut». Notez que '-Namespace = Default' est fourni pour définir la préférence Kubectl à par défaut.
De même, la commande 'View' doit être exécutée pour afficher l'espace de noms. Voir le code ci-dessous:
La relation entre DNS et espaces de noms
Lorsqu'un service est créé, son entrée DNS correspondante est également créée. L'entrée DNS fournit le nom du service, le nom de l'espace de noms et le cluster local, ce qui signifie que si un conteneur utilise simplement le nom du service, il se connectera à l'espace de noms de cluster local.
Cela devient utile lors du déploiement de la même configuration sur divers espaces de noms comme la production, la mise en scène et le développement. Lorsque les utilisateurs doivent atteindre les espaces de noms, ils doivent spécifier le nom de domaine entièrement qualifié (FQDN).
Objets qui ne sont pas la partie de l'espace de noms:
L'objet Kubernetes ou les ressources font partie d'un espace de noms, je.e., Contrôleur de réplication, services, gousses, etc. Cependant, l'objet d'espace de noms lui-même ne fait partie d'aucun espace de noms. De plus, les volumes persistants, les nœuds et autres ressources de bas niveau ne font partie d'aucun espace de noms.
Afin de voir quelles ressources sont dans un espace de noms et quelles ressources ne sont dans aucun espace de noms, la commande API Resource est utilisée. Voir le code ci-dessous.
Lorsque les espaces -Names sont définis sur «vrai», il affichera les noms de la partie des ressources d'un espace de noms. D'un autre côté, lorsque les espaces-names sont définis sur «False», il affichera le nom de ces ressources qui ne sont dans aucun des espaces de noms. La «Kubectl api-Resource -Namespace = Namespace Préférence» est utilisée pour voir les ressources de l'espace de noms.
Comme vous pouvez l'observer dans les sorties données ci-dessus, les préférences vraies et fausses sont données pour voir quelle ressource est dans un espace de noms et lequel n'est pas.
Conclusion:
Cet article concerne la gestion des systèmes complexes comme Kubernetes peut être un grand défi même pour les utilisateurs experts. Cependant, une solide connaissance et la commande d'un espace de noms peuvent faciliter les tâches difficiles et compliquées. Un espace de noms est un outil puissant qui définit la hiérarchie, les performances et la sécurité du système Kubernetes.