94 lines
4.1 KiB
Groff
94 lines
4.1 KiB
Groff
Sí, es posible configurar el acceso a Kubernetes sin usar `sudo` para el usuario `usuari`. Esto se puede lograr de manera que el usuario `usuari` tenga acceso al archivo de configuración de K3s (`/etc/rancher/k3s/k3s.yaml`) y a los certificados necesarios sin necesidad de permisos de superusuario.
|
|
|
|
Te detallo cómo hacerlo:
|
|
|
|
### 1. **Cambiar los permisos del archivo de configuración**
|
|
El archivo `/etc/rancher/k3s/k3s.yaml` por defecto es accesible solo por el usuario `root`, lo que requiere el uso de `sudo`. Para permitir que el usuario `usuari` pueda acceder a este archivo, necesitas cambiar los permisos del archivo.
|
|
|
|
#### **Pasos:**
|
|
|
|
1. **Cambiar los permisos del archivo de configuración**
|
|
Cambia la propiedad del archivo `/etc/rancher/k3s/k3s.yaml` para que el usuario `usuari` pueda leerlo.
|
|
|
|
```bash
|
|
sudo chown usuari:usuari /etc/rancher/k3s/k3s.yaml
|
|
```
|
|
|
|
Esto le da acceso de lectura y escritura al usuario `usuari` para ese archivo específico.
|
|
|
|
2. **Permitir la lectura de certificados para `usuari`**
|
|
Si tienes certificados o claves privadas almacenadas en directorios que requieren permisos especiales (como `/etc/ssl/certs` o `/usr/local/share/ca-certificates`), tendrás que cambiar los permisos de esos archivos o directorios también.
|
|
|
|
Puedes hacerlo de esta manera:
|
|
|
|
```bash
|
|
sudo chmod 644 /usr/local/share/ca-certificates/k3s.crt
|
|
```
|
|
|
|
Esto le permitirá al usuario `usuari` leer el archivo del certificado y añadirlo al almacén de certificados del sistema.
|
|
|
|
### 2. **Configurar `kubectl` para que funcione sin `sudo`**
|
|
|
|
Asegúrate de que el archivo `k3s.yaml` esté correctamente configurado en la variable `KUBECONFIG` sin necesidad de usar `sudo`.
|
|
|
|
#### **Pasos:**
|
|
|
|
1. **Configura `KUBECONFIG` para el usuario `usuari`**
|
|
Asegúrate de que el usuario `usuari` exporte la variable de entorno `KUBECONFIG` en su sesión, o de manera persistente, para usar el archivo `/etc/rancher/k3s/k3s.yaml` de la siguiente forma:
|
|
|
|
- Para configurar esto solo en la sesión actual:
|
|
```bash
|
|
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
|
```
|
|
|
|
- Para hacer que esta configuración persista en futuras sesiones, añade la línea anterior al final de su archivo `.bashrc` o `.zshrc`, dependiendo de tu shell. Si usas `bash`, puedes hacerlo así:
|
|
```bash
|
|
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> ~/.bashrc
|
|
```
|
|
|
|
Luego, asegúrate de recargar el archivo de configuración:
|
|
```bash
|
|
source ~/.bashrc
|
|
```
|
|
|
|
2. **Verifica que `kubectl` ahora funciona correctamente sin `sudo`:**
|
|
Ahora, el usuario `usuari` debería poder ejecutar `kubectl` sin la necesidad de usar `sudo`.
|
|
|
|
```bash
|
|
kubectl get nodes
|
|
```
|
|
|
|
### 3. **Configurar los permisos del socket de K3s**
|
|
K3s expone su API en un socket que, por defecto, suele ser accesible solo por `root`. Sin embargo, puedes configurar el socket de Kubernetes para que el usuario `usuari` también tenga acceso sin `sudo`.
|
|
|
|
#### **Pasos:**
|
|
|
|
1. **Revisar el socket de K3s**
|
|
Normalmente, el socket de K3s está en `/var/run/k3s/k3s.sock` o en una ruta similar.
|
|
|
|
Verifica la ubicación del socket de K3s:
|
|
```bash
|
|
sudo ls -l /var/run/k3s/
|
|
```
|
|
|
|
2. **Cambiar permisos del socket de K3s**
|
|
Si el socket tiene permisos restrictivos, puedes cambiar los permisos para permitir que el usuario `usuari` lo acceda.
|
|
|
|
```bash
|
|
sudo chmod 666 /var/run/k3s/k3s.sock
|
|
```
|
|
|
|
Esto permite que cualquier usuario lea y escriba en el socket.
|
|
|
|
3. **Verifica que `kubectl` funciona sin `sudo`**
|
|
Una vez hecho esto, el usuario `usuari` debería poder comunicarse con el servidor API de Kubernetes sin problemas.
|
|
|
|
### Resumen de lo que se ha hecho:
|
|
|
|
- **Cambiar los permisos del archivo `k3s.yaml`** para que el usuario `usuari` pueda acceder a él sin `sudo`.
|
|
- **Asegurarse de que los certificados** sean legibles por `usuari` para evitar errores de autoridad desconocida.
|
|
- **Configurar la variable de entorno `KUBECONFIG`** para que apunte al archivo correcto.
|
|
- **Ajustar los permisos del socket de K3s** para permitir la comunicación sin `sudo`.
|
|
|
|
Con estos pasos, el usuario `usuari` podrá interactuar con Kubernetes usando `kubectl` sin tener que utilizar `sudo`.
|