|
| 1 | +--- |
| 2 | +title: Organizar el acceso a los clústeres utilizando archivos kubeconfig |
| 3 | +content_template: templates/concept |
| 4 | +weight: 60 |
| 5 | +--- |
| 6 | + |
| 7 | +{{% capture overview %}} |
| 8 | + |
| 9 | +Utilice los archivos kubeconfig para organizar la información acerca de los clústeres, los |
| 10 | +usuarios, los Namespaces y los mecanismos de autenticación. La herramienta de |
| 11 | +línea de comandos `kubectl` utiliza los archivos kubeconfig para hallar la información que |
| 12 | +necesita para escoger un clúster y comunicarse con el servidor API de un clúster. |
| 13 | + |
| 14 | +{{< note >}} |
| 15 | +Un archivo utilizado para configurar el acceso a los clústeres se denomina |
| 16 | +*archivo kubeconfig*. Esta es una forma genérica de referirse a los archivos de |
| 17 | +configuración. Esto no significa que exista un archivo llamado `kubeconfig`. |
| 18 | +{{< /note >}} |
| 19 | + |
| 20 | +Por defecto, `kubectl` busca un archivo llamado `config` en el directorio `$HOME/.kube`. |
| 21 | +Puedes especificar otros archivos kubeconfig mediante la configuración de la variable |
| 22 | +de entorno `KUBECONFIG` o mediante la configuracion del flag |
| 23 | +[`--kubeconfig`](/docs/reference/generated/kubectl/kubectl/). |
| 24 | + |
| 25 | +Para obtener instrucciones paso a paso acerca de cómo crear y especificar los archivos kubeconfig, |
| 26 | +consulte el recurso |
| 27 | +[Configurar El Acceso A Múltiples Clústeres](/docs/tasks/access-application-cluster/configure-access-multiple-clusters). |
| 28 | + |
| 29 | +{{% /capture %}} |
| 30 | + |
| 31 | +{{% capture body %}} |
| 32 | + |
| 33 | +## Compatibilidad con múltiples clústeres, usuarios y mecanismos de autenticación |
| 34 | + |
| 35 | +Suponga que tiene diversos clústeres y que sus usuarios y componentes se autentican |
| 36 | +de diversas maneras. Por ejemplo: |
| 37 | + |
| 38 | +- Un kubelet en ejecución se podría autenticar usando certificados. |
| 39 | +- Un usuario se podría autenticar utilizando tokens. |
| 40 | +- Los administradores podrían tener un conjunto de certificados que sean suministrados a los usuarios individualmente. |
| 41 | + |
| 42 | +Con los archivos kubeconfig puedes organizar tus clústeres, usuarios y Namespaces. |
| 43 | +También puedes definir diferentes contextos para realizar de forma rápida y |
| 44 | +fácil cambios entre clústeres y Namespaces. |
| 45 | + |
| 46 | +## Contexto |
| 47 | + |
| 48 | +Un elemento *context* en un archivo kubeconfig se utiliza para agrupar los parámetros de |
| 49 | +acceso bajo un nombre apropiado. Cada contexto tiene tres parámetros: clúster, Namespace |
| 50 | +y usuario. |
| 51 | +Por defecto, la herramienta de línea de comandos `kubectl` utiliza los parámetros del |
| 52 | +*contexto actual* para comunicarse con el clúster. |
| 53 | + |
| 54 | +Para seleccionar el contexto actual: |
| 55 | + |
| 56 | +```shell |
| 57 | +kubectl config use-context |
| 58 | +``` |
| 59 | + |
| 60 | +## Variable de entorno KUBECONFIG |
| 61 | + |
| 62 | +La variable de entorno `KUBECONFIG` contiene una lista de archivos kubeconfig. |
| 63 | +En el caso de Linux y Mac, la lista está delimitada por dos puntos. Si se trata |
| 64 | +de Windows, la lista está delimitada por punto y coma. La variable de entorno |
| 65 | +`KUBECONFIG` no es indispensable. Si la variable de entorno `KUBECONFIG` no existe, |
| 66 | +`kubectl` utiliza el archivo kubeconfig por defecto `$HOME/.kube/config`. |
| 67 | + |
| 68 | +Si la variable de entorno `KUBECONFIG` existe, `kubectl` utiliza una |
| 69 | +configuración eficiente que es el resultado de la fusión de los archivos |
| 70 | +listados en la variable de entorno `KUBECONFIG`. |
| 71 | + |
| 72 | +## Fusionando archivos kubeconfig |
| 73 | + |
| 74 | +Para poder ver su configuración, escriba el siguiente comando: |
| 75 | + |
| 76 | +```shell |
| 77 | +kubectl config view |
| 78 | +``` |
| 79 | + |
| 80 | +Como se ha descrito anteriormente, la respuesta de este comando podría resultar a partir de un solo |
| 81 | +archivo kubeconfig, o podría ser el resultado de la fusión de varios archivos kubeconfig. |
| 82 | + |
| 83 | +A continuación se muestran las reglas que usa `kubectl` cuando fusiona archivos kubeconfig: |
| 84 | + |
| 85 | +1. Si el flag `--kubeconfig` está activado, usa solamente el archivo especificado. Sin fusionar. |
| 86 | + Sólo se permite una instancia con este flag. |
| 87 | + |
| 88 | + En caso contrario, si la variable de entorno `KUBECONFIG` está activada, sera usada |
| 89 | + como un listado de los archivos a ser fusionados. |
| 90 | + Fusionar los archivos listados en la variable de entorno `KUBECONFIG` de acuerdo |
| 91 | + con estas reglas: |
| 92 | + |
| 93 | + * Ignorar nombres de archivo vacíos. |
| 94 | + * Producir errores para archivos con contenido que no pueden ser deserializados. |
| 95 | + * El primer archivo que establezca un valor particular o una clave se impone. |
| 96 | + * Nunca cambie el valor o la clave. |
| 97 | + Ejemplo: Conserva el contexto del primer archivo para configurar el `contexto actual`. |
| 98 | + Ejemplo: Si dos archivos especifican un `red-user`, utilice sólo los valores del primer archivo. |
| 99 | + Incluso desechar el segundo archivo aunque tenga registros que no tengan conflictos. |
| 100 | + |
| 101 | + Para obtener un ejemplo de configuración de la variable de entorno `KUBECONFIG`, consulte la sección |
| 102 | + [Configuración de la variable de entorno KUBECONFIG](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable). |
| 103 | + |
| 104 | + En caso contrario, utilice el archivo kubeconfig predeterminado `$HOME/.kube/config`, sin fusionar. |
| 105 | + |
| 106 | +2. Determinar el contexto a utilizar con base en el primer acierto en esta secuencia: |
| 107 | + |
| 108 | + 1. Si es que existe, utilice el flag `---contexto` de la línea de comandos. |
| 109 | + 2. Utilice el `contexto actual` procedente de los archivos kubeconfig fusionados. |
| 110 | + |
| 111 | + En este punto se permite un contexto vacío. |
| 112 | + |
| 113 | +3. Determinar el clúster y el usuario. En este caso, puede o no haber un contexto. |
| 114 | + Determine el clúster y el usuario con base en el primer acierto que se ejecute dos veces en |
| 115 | + esta secuencia: una para el usuario y otra para el clúster: |
| 116 | + |
| 117 | + 1. Si es que existen, utilice el flag `--user` o `--cluster` de la línea de comandos. |
| 118 | + 2. Si el contexto no está vacío, tome el usuario o clúster del contexto. |
| 119 | + |
| 120 | + En este caso el usuario y el clúster pueden estar vacíos. |
| 121 | + |
| 122 | +4. Determinar la información del clúster a utilizar. En este caso, puede o no haber información del clúster. |
| 123 | + Se construye cada pieza de la información del clúster con base en esta secuencia, el primer acierto se impone: |
| 124 | + |
| 125 | + 1. Si es que existen, use el flag `--server`, `--certificate-authority`, `--insecure-skip-tls-verify` en la línea de comandos. |
| 126 | + 2. Si existen atributos de información de clúster procedentes de los archivos kubeconfig fusionados, utilícelos. |
| 127 | + 3. Falla si no existe la ubicación del servidor. |
| 128 | + |
| 129 | +5. Determinar la información del usuario a utilizar. Cree información de usuario utilizando las mismas reglas que |
| 130 | + la información de clúster, con la excepción de permitir sólo un mecanismo de autenticación por usuario: |
| 131 | + |
| 132 | + 1. Si es que existen, utilice el flag `--client-certificate`, `--client-key`, `--username`, `--password`, `--token` de la línea de comandos. |
| 133 | + 2. Utilice los campos `user` de los archivos kubeconfig fusionados. |
| 134 | + 3. Falla si hay dos mecanismos de autenticación contradictorios. |
| 135 | + |
| 136 | +6. Si todavía falta información, utilice los valores predeterminados y solicite |
| 137 | + información de autenticación. |
| 138 | + |
| 139 | +## Referencias de archivos |
| 140 | + |
| 141 | +Las referencias, así también como, las rutas de un archivo kubeconfig son relativas a la ubicación del archivo kubeconfig. |
| 142 | +Las referencias de un archivo en la línea de comandos son relativas al directorio actual de trabajo. |
| 143 | +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 |
| 144 | +se almacenan absolutamente. |
| 145 | + |
| 146 | +{{% /capture %}} |
| 147 | + |
| 148 | +{{% capture whatsnext %}} |
| 149 | + |
| 150 | +* [Configurar el acceso a multiples Clústeres](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) |
| 151 | +* [`kubectl config`](/docs/reference/generated/kubectl/kubectl-commands#config) |
| 152 | + |
| 153 | +{{% /capture %}} |
0 commit comments