Utilice los archivos kubeconfig para organizar la información acerca de los clústeres, los
usuarios, los Namespaces y los mecanismos de autenticación. La herramienta de
línea de comandos kubectl
utiliza los archivos kubeconfig para hallar la información que
necesita para escoger un clúster y comunicarse con el servidor API de un clúster.
Nota: Un archivo utilizado para configurar el acceso a los clústeres se denomina archivo kubeconfig. Esta es una forma genérica de referirse a los archivos de configuración. Esto no significa que exista un archivo llamadokubeconfig
.
Por defecto, kubectl
busca un archivo llamado config
en el directorio $HOME/.kube
.
Puedes especificar otros archivos kubeconfig mediante la configuración de la variable
de entorno KUBECONFIG
o mediante la configuracion del flag
--kubeconfig
.
Para obtener instrucciones paso a paso acerca de cómo crear y especificar los archivos kubeconfig, consulte el recurso Configurar El Acceso A Múltiples Clústeres.
Suponga que tiene diversos clústeres y que sus usuarios y componentes se autentican de diversas maneras. Por ejemplo:
Con los archivos kubeconfig puedes organizar tus clústeres, usuarios y Namespaces. También puedes definir diferentes contextos para realizar de forma rápida y fácil cambios entre clústeres y Namespaces.
Un elemento context en un archivo kubeconfig se utiliza para agrupar los parámetros de
acceso bajo un nombre apropiado. Cada contexto tiene tres parámetros: clúster, Namespace
y usuario.
Por defecto, la herramienta de línea de comandos kubectl
utiliza los parámetros del
contexto actual para comunicarse con el clúster.
Para seleccionar el contexto actual:
kubectl config use-context
La variable de entorno KUBECONFIG
contiene una lista de archivos kubeconfig.
En el caso de Linux y Mac, la lista está delimitada por dos puntos. Si se trata
de Windows, la lista está delimitada por punto y coma. La variable de entorno
KUBECONFIG
no es indispensable. Si la variable de entorno KUBECONFIG
no existe,
kubectl
utiliza el archivo kubeconfig por defecto $HOME/.kube/config
.
Si la variable de entorno KUBECONFIG
existe, kubectl
utiliza una
configuración eficiente que es el resultado de la fusión de los archivos
listados en la variable de entorno KUBECONFIG
.
Para poder ver su configuración, escriba el siguiente comando:
kubectl config view
Como se ha descrito anteriormente, la respuesta de este comando podría resultar a partir de un solo archivo kubeconfig, o podría ser el resultado de la fusión de varios archivos kubeconfig.
A continuación se muestran las reglas que usa kubectl
cuando fusiona archivos kubeconfig:
--kubeconfig
está activado, usa solamente el archivo especificado. Sin fusionar.
Sólo se permite una instancia con este flag.En caso contrario, si la variable de entorno KUBECONFIG
está activada, sera usada
como un listado de los archivos a ser fusionados.
Fusionar los archivos listados en la variable de entorno KUBECONFIG
de acuerdo
con estas reglas:
contexto actual
.
Ejemplo: Si dos archivos especifican un red-user
, utilice sólo los valores del primer archivo.
Incluso desechar el segundo archivo aunque tenga registros que no tengan conflictos.Para obtener un ejemplo de configuración de la variable de entorno KUBECONFIG
, consulte la sección
Configuración de la variable de entorno KUBECONFIG.
En caso contrario, utilice el archivo kubeconfig predeterminado $HOME/.kube/config
, sin fusionar.
Determinar el contexto a utilizar con base en el primer acierto en esta secuencia:
---contexto
de la línea de comandos.contexto actual
procedente de los archivos kubeconfig fusionados.En este punto se permite un contexto vacío.
Determinar el clúster y el usuario. En este caso, puede o no haber un contexto. Determine el clúster y el usuario con base en el primer acierto que se ejecute dos veces en esta secuencia: una para el usuario y otra para el clúster:
--user
o --cluster
de la línea de comandos.En este caso el usuario y el clúster pueden estar vacíos.
Determinar la información del clúster a utilizar. En este caso, puede o no haber información del clúster. Se construye cada pieza de la información del clúster con base en esta secuencia, el primer acierto se impone:
--server
, --certificate-authority
, --insecure-skip-tls-verify
en la línea de comandos.Determinar la información del usuario a utilizar. Cree información de usuario utilizando las mismas reglas que la información de clúster, con la excepción de permitir sólo un mecanismo de autenticación por usuario:
--client-certificate
, --client-key
, --username
, --password
, --token
de la línea de comandos.user
de los archivos kubeconfig fusionados.Si todavía falta información, utilice los valores predeterminados y solicite información de autenticación.
Las referencias, así también como, las rutas de un archivo kubeconfig son relativas a la ubicación del archivo kubeconfig.
Las referencias de un archivo en la línea de comandos son relativas al directorio actual de trabajo.
Dentro de $HOME/.kube/config
, las rutas relativas se almacenan de manera relativa a la ubicación del archivo kubeconfig , al igual que las rutas absolutas
se almacenan absolutamente.
¿Esta página le ha sido de ayuda?
Muchas gracias por el feedback. Si tienes alguna pregunta específica sobre como usar Kubernetes, puedes preguntar en Stack Overflow. Abre un issue en el repositorio de GitHub si quieres reportar un problema o sugerir alguna mejora.