Aprenderá a cambiar un espacio de nombres predeterminado en Kubectl en esta publicación. Todos los recursos de Kubernetes están organizados en espacios de nombres, y los espacios de nombres le permiten separar las preocupaciones por los recursos compartidos por diferentes proyectos. Si no se especifica el espacio de nombres, todos los recursos se producen en el espacio de nombres predeterminado, y esto se aplica a todas las instrucciones dirigidas a su clúster. Si el argumento -n no se usa para un espacio de nombres en un comando kubectl, los kubernetes darán salida de los recursos en el espacio de nombres predeterminado.
Los espacios de nombres son una característica de Kubernetes que le permite dividir las agrupaciones de recursos dentro de un clúster. Dentro de un espacio de nombres, los nombres de recursos deben ser únicos, pero no entre espacios de nombres. El alcance basado en el espacio de nombres solo es aplicable a los elementos con nombrados (como implementaciones y servicios), no a objetos de todo el clúster (E.gramo., StorageClass, nodos, Volúmenes persistentes, etc.).
El espacio de nombres "predeterminado"
Fuera de la caja, la mayoría de las versiones de Kubernetes incluyen un espacio de nombres llamado "predeterminado" en el clúster. Hay tres espacios de nombres en Kubernetes: predeterminado, Kube-System y Kube Public. Kube-Public no se usa muy a menudo en este momento, y el sistema de kube generalmente se ignora, especialmente en un sistema regulado como Google Kubernetes Engine (GKE). Como resultado, el espacio de nombres predeterminado se utilizará para crear sus servicios y aplicaciones. No hay nada notable en este espacio de nombres que no sea que la herramienta Kubernetes esté configurada para usarla fuera de la caja y que no puede eliminarla. Es excelente para comenzar y para sistemas de producción más pequeños, pero no es adecuado para los más grandes. Esto se debe al hecho de que es bastante fácil para un equipo sobrescribir o interrumpir inadvertidamente otro servicio sin reconocerlo. En su lugar, divida sus servicios en bits digeribles creando múltiples espacios de nombres.
Antes de continuar:
Para comenzar, inicie el clúster de minikube, que ya está instalado en su Ubuntu 20.04 Sistema operativo LTS. Para ejecutar minikube, escriba el comando adjunto en la línea de comando:
$ minikube comienzo
Ver espacios de nombres
Puede obtener una lista de todos los espacios de nombres en un clúster escribiendo el siguiente comando.
Si un elemento no tiene otro espacio de nombres, este es el espacio de nombres predeterminado. El espacio de nombres del sistema kube incluye objetos diseñados específicamente por el sistema Kubernetes. Por otro lado, el espacio de nombres de Kube-Public existe automáticamente y está disponible para todos los tipos de usuarios. Este espacio de nombres es para uso del clúster si algunos recursos deben estar disponibles públicamente y legibles en todo el clúster. El aspecto público de este espacio de nombres es simplemente una recomendación, no un mandato. Los objetos de arrendamiento conectados con cada nodo se almacenan en el espacio de nombres de arrendamiento de nodo kube. El kubelet puede transmitir los latidos del plano de control a través de arrendamientos de nodo, lo que permite que el plano de control detecte la falla del nodo.
Definición del espacio de nombres de una solicitud
Tenga en cuenta que el parámetro -namespace se usa específicamente para establecer el espacio de nombres para una solicitud actual.
Usando el comando a continuación, puede obtener una lista de todas las cápsulas de cierto espacio de nombres.
Elegir un espacio de nombres preferido
Para cualquier comando adicional de Kubectl en ese contexto, puede guardar el espacio de nombres de forma permanente.
Este comando mostrará el espacio de nombres que se está utilizando actualmente.
No todos los objetos tienen un espacio de nombres
Las cápsulas, servicios, controladores de replicación y otros recursos de Kubernetes están organizados en espacios de nombres. Los recursos del espacio de nombres, por otro lado, no están contenidos en un espacio de nombres. Los nodos y los volúmenes persistentes son recursos de bajo nivel que no están en ningún espacio de nombres. Para ver qué recursos de Kubernetes se utilizan en un espacio de nombres, consulte el comando a continuación:
Utilice el siguiente comando para ver qué recursos de Kubernetes no se usan en un espacio de nombres:
Espacios de nombres de DNS
Se crea una entrada DNS para un servicio cuando se crea. El formato de esta entrada es . Si un contenedor usa únicamente el servicio de servicio>, se resolverá a un servicio local de espacio de nombres, según SVC.grupo.local. Si desea utilizar la misma configuración en múltiples espacios de nombres, como puesta en escena, desarrollo y producción, esto sería crítico. Debe usar el nombre de dominio totalmente calificado si desea alcanzar los espacios de nombres.
¿Cuándo deberías usar varios espacios de nombres??
Los espacios de nombres están diseñados para situaciones con una gran cantidad de usuarios repartidos en varios equipos o proyectos. No debería necesitar construir o pensar en espacios de nombres para clústeres con unos pocos a decenas de usuarios. Cuando necesite las funcionalidades que dan los espacios de nombres, comience a usarlos.
Los espacios de nombres proporcionan nombres para un lugar para ir. Dentro de un espacio de nombres, los nombres de recursos deben ser únicos, pero no entre espacios de nombres. Los espacios de nombres son un medio para que numerosos usuarios compartan recursos de clúster, y separan los recursos que tienen el mismo espacio de nombres.
Conclusión
Aprendió a cambiar el espacio de nombres de Kubernetes predeterminado usando la línea de comandos Kubectl en esta publicación. El espacio de nombres predeterminado se asigna al espacio de nombres predeterminado cuando crea un clúster AKS o Kubernetes local. Si todas sus cargas de trabajo no están en el espacio de nombres predeterminado, esto puede ser una molestia.