📋 Roles
Un Role es una lista de lo que está permitido hacer dentro de un namespace. Ejemplo: "puede leer pods, pero no puede eliminar". Define los permisos, pero no se los entrega a nadie. Quien los entrega es RBAC (próxima página).
| Tipo | Vale para | Cuándo usar |
|---|---|---|
Role | Un namespace | La mayoría de los casos |
ClusterRole | Todo el clúster | Recursos sin namespace (como nodes) o permisos en todos los namespaces |
Cada regla combina qué (recursos, como pods y services) con qué
hacer (verbos):
| Verbo | Significado |
|---|---|
get, list, watch | Leer |
create | Crear |
update, patch | Modificar |
delete | Eliminar |
Los Roles se crean con kubectl. El Panel Nuvion no tiene una pantalla para este recurso.
🚀 Antes de comenzar
- Tener el acceso al clúster configurado.
🚀 1. Ver los permisos que ya existen
kubectl get roles -A
kubectl get clusterrole view edit admin cluster-admin
Los ClusterRoles view, edit, admin y cluster-admin ya vienen listos:
| ClusterRole | Qué permite |
|---|---|
view | Solo lectura |
edit | Leer y modificar la mayoría de los recursos |
admin | Control total dentro de un namespace |
cluster-admin | Control total de todo el clúster |
🚀 2. Crear un Role de lectura de pods
kubectl create role leitor-pods --verb=get,list,watch --resource=pods
Salida esperada: role.rbac.authorization.k8s.io/leitor-pods created
🚀 3. Ver los detalles
kubectl describe role leitor-pods
La tabla muestra el recurso (pods) y los verbos permitidos (get, list, watch).
🚀 4. Entender el Role en YAML
El comando del paso 2 equivale a este archivo:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: leitor-pods
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
apiGroups: [""] (vacío) indica el grupo principal de Kubernetes, donde están
pods, services, configmaps y secrets.
🚀 5. Crear un ClusterRole
Los nodes no pertenecen a ningún namespace, por lo que necesitan un ClusterRole:
kubectl create clusterrole leitor-nodes --verb=get,list,watch --resource=nodes
✅ Cómo saber si funcionó
kubectl get role leitor-pods
kubectl get clusterrole leitor-nodes
Los dos aparecen en la lista.
🔒 Buenas prácticas
- Dé solo lo necesario (mínimo privilegio).
- Evite
*en verbos y recursos. - Sea aún más restrictivo con
secrets, pues permitir lectura equivale a entregar contraseñas.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
forbidden: ... cannot create resource "roles" | Su usuario no puede crear Roles | Pida a un administrador del clúster |
Error que cita escalation o attempting to grant RBAC permissions not currently held | Kubernetes no deja crear un Role con permisos mayores que los suyos | Use un usuario con más permisos |
already exists | Nombre ya usado | Use otro nombre o elimine el Role existente |
🧹 Limpieza
Haga la limpieza solo después de concluir la página RBAC, que usa el Role leitor-pods:
kubectl delete role leitor-pods
kubectl delete clusterrole leitor-nodes
➡️ Próximo paso: RBAC
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!