Vous apprendrez à modifier un espace de noms par défaut dans Kubectl dans cet article. Toutes les ressources de Kubernetes sont organisées en espaces de noms, et les espaces de noms vous permettent de séparer les préoccupations des ressources partagées par différents projets. Si l'espace de noms n'est pas spécifié, toutes les ressources sont produites dans l'espace de noms par défaut, et cela s'applique à toutes les instructions destinées à votre cluster. Si l'argument -N n'est pas utilisé pour un espace de noms dans une commande kubectl, les Kubernetes donneront la sortie des ressources dans l'espace de noms par défaut.
Les espaces de noms sont une fonctionnalité Kubernetes qui vous permet de diviser les groupements de ressources dans un cluster. Dans un espace de noms, les noms de ressources doivent être uniques, mais pas entre les espaces de noms. La portée basée sur l'espace de noms ne s'applique qu'aux éléments de nom (tels que les déploiements et les services), et non aux objets à l'échelle de la cluster (E.g., StorageClass, nœuds, persistentVolumes, etc.).
L'espace de noms «par défaut»
Hors de la boîte, la plupart des versions de Kubernetes incluent un espace de noms appelé «Par défaut» dans le cluster. Il y a trois espaces de noms à Kubernetes: par défaut, le système Kube et le Kube-Public. Kube-Public n'est pas utilisé très souvent en ce moment, et le système Kube est généralement ignoré, en particulier dans un système réglementé comme Google Kubernetes Engine (GKE). En conséquence, l'espace de noms par défaut sera utilisé pour créer vos services et applications. Il n'y a rien de remarquable dans cet espace de noms autre que que l'outillage Kubernetes est configuré pour l'utiliser hors de la boîte et que vous ne pouvez pas le supprimer. Il est excellent pour commencer et pour les petits systèmes de production, mais il ne convient pas aux plus grands. Cela est dû au fait qu'il est assez facile pour une équipe de remplacer ou de perturber par inadvertance un autre service sans le reconnaître. Au lieu de cela, divisez vos services en bits digestibles en créant plusieurs espaces de noms.
Avant de continuer:
Pour commencer, lancez le cluster Minikube, qui est déjà installé sur votre Ubuntu 20.04 Système d'exploitation LTS. Pour exécuter Minikube, tapez la commande jointe dans la ligne de commande:
$ minikube start
Afficher les espaces de noms
Vous pouvez obtenir une liste de toutes les espaces de noms dans un cluster en tapant la commande suivante.
Si un élément n'a pas d'autre espace de noms, c'est l'espace de noms par défaut. L'espace de noms du système Kube comprend des objets spécialement conçus par le système Kubernetes. D'un autre côté, l'espace de noms Kube-Public existe automatiquement et est disponible pour tous les types d'utilisateurs. Cet espace de noms est pour une utilisation en grappe si certaines ressources doivent être accessibles au public et lisibles dans l'ensemble du cluster. L'aspect public de cet espace n'est qu'une recommandation, pas un mandat. Les objets de location connectés à chaque nœud sont stockés dans l'espace de noms de bail kube. Le kubelet peut diffuser des battements cardiaques vers le plan de contrôle via des baux de nœud, permettant au plan de contrôle de détecter la défaillance du nœud.
Définir l'espace de noms d'une demande
Gardez à l'esprit que le paramètre -Namespace est spécifiquement utilisé pour définir l'espace de noms pour une demande actuelle.
En utilisant la commande ci-dessous, vous pouvez obtenir une liste de toutes les pods à partir d'un certain espace de noms.
Choisir un espace de noms préféré
Pour toute autre commande kubectl dans ce contexte, vous pouvez enregistrer l'espace de noms en permanence.
Cette commande affichera l'espace de noms qui est actuellement utilisé.
Tous les objets n'ont pas un espace de noms
Les pods, les services, les contrôleurs de réplication et les autres ressources de Kubernetes sont tous organisés en espaces de noms. Les ressources de l'espace de noms, en revanche, ne sont pas contenues dans un espace de noms. Les nœuds et lesvolumes persistants sont des ressources de bas niveau qui ne sont dans aucun espace de noms. Pour voir quelles ressources Kubernetes sont utilisées dans un espace de noms, reportez-vous à la commande ci-dessous:
Utilisez la commande suivante pour voir quelles ressources Kubernetes ne sont pas utilisées dans un espace de noms:
Espaces de noms DNS
Une entrée DNS est créée pour un service lors de sa création. Le format de cette entrée est . Si un conteneur utilise uniquement le nom de service>, il se résoudra à un service d'espace de noms, selon SVC.grappe.local. Si vous souhaitez utiliser la même configuration dans plusieurs espaces de noms, tels que la stadification, le développement et la production, ce serait critique. Vous devez utiliser le nom de domaine entièrement qualifié si vous souhaitez atteindre les espaces de noms.
Quand devriez-vous utiliser plusieurs espaces de noms?
Les espaces de noms sont conçus pour des situations avec un grand nombre d'utilisateurs répartis dans plusieurs équipes ou projets. Vous ne devriez pas avoir besoin de construire ou de penser aux espaces de noms pour les clusters avec quelques à des dizaines d'utilisateurs. Lorsque vous avez besoin des fonctionnalités que donnent les espaces de noms, commencez à les utiliser.
Les espaces de noms fournissent des noms pour un endroit où aller. Dans un espace de noms, les noms de ressources doivent être uniques, mais pas entre les espaces de noms. Les espaces de noms sont un moyen pour de nombreux utilisateurs de partager des ressources en grappes, et ils séparent des ressources qui détiennent le même espace de noms.
Conclusion
Vous avez appris à modifier l'espace de noms Kubernetes par défaut à l'aide de la ligne de commande Kubectl dans cet article. L'espace de noms par défaut est attribué à l'espace de noms par défaut lorsque vous créez un cluster AKS ou Kubernetes local. Si toutes vos charges de travail ne sont pas dans l'espace de noms par défaut, cela peut être un problème.