Documentos de Académico
Documentos de Profesional
Documentos de Cultura
10.openshift - Gestión de Autorizaciones en El Cluster Proyectos, Usuarios y Quotas
10.openshift - Gestión de Autorizaciones en El Cluster Proyectos, Usuarios y Quotas
de usuarios y quotas
Proveedores de identidad
- oc apply -f crd-ip.yaml
Actualizar usuarios autorizados en httpasswd
- Obtención del secreto:
- oc get secret htpass-secret -ojsonpath={.data.htpasswd} -n openshift-config | base64 -d > users.htpasswd
- Manipulación de los usuarios añadiendo o quitando usuarios:
Añadir:
htpasswd -bB users.htpasswd <username> <password>
Quitar:
htpasswd -D users.htpasswd <username>
Reemplazo del secreto con el nuevo contenido del fichero htpasswd:
oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run -o yaml -n openshift-
config | oc replace -f -
Si se han eliminado usuarios también se han de eliminar los recursos del cluster asociados a los mismos
(usuario e identidad):
Borrado de recurso de usuario: oc delete user <username>
Borrado de recurso de Identidad: oc delete identity my_htpasswd_provider:<username>
Proveedores de identidad desde consola web
- Acceso mediante usuario con permisos de administración de cluster.
- Opción de menú Administration -> Cluster Settings. Pestaña “Configuration”.
Configuración de recurso Oauth.
Proveedores de identidad desde consola web (2)
- Se pueden añadir o borrar proveedores de identidad para el cluster.
- Así como su método de mapeo de identidades.
Gestión de permisos - RBAC
- Role Based Access Control o de sus siglas en inglés RBAC es el sistema por el cual se
determina si un usuario está autorizado o no a realizar una determinada operación en el
cluster, en función de sus roles asignados.
- Los administradores pueden gestionar los permisos de los usuarios sobre recursos del
cluster.
- Los desarrolladores pueden usar roles locales para determinar quien tiene permisos
sobre sus aplicaciones.
- La autorización está basada en el uso de 3 entidades en Openshift:
Reglas (Rules): Set de acciones permitidas sobre objetos concretos (ej: crear pods).
Roles: Colección de reglas.
Enlaces (Bindings): asociación de usuarios o grupos con un rol.
Niveles - RBAC
- Cluster:
Roles y enlaces aplicables a todos los proyectos (namespaces).
Un rol con alcance de cluster existe a lo largo de los objetos de todo el cluster.
Un enlace a nivel de cluster solo puede referenciar roles a nivel de cluster.
- Local:
Roles y enlaces que están asociados con un proyecto concreto (namespace).
Enlaces locales pueden referenciar indistintamente roles locales y roles de cluster.
- Este doble nivel de gestión de roles permite reutilizar las asignaciones de permisos a
nivel cluster y refinarlas a nivel de proyecto de ser necesario.
Roles por defecto
Grupos y cuentas de servicios
- Grupo:
Agregación de roles.
- Cuentas de servicio (Service Account):
Cuenta de openshift que permite a una aplicación interactuar con el API del cluster.
Se puede considerar una cuenta de aplicación/sistema en lugar de una cuenta de un
usuario nominal.
Cada cuenta de servicio tiene asociados por defecto dos grupos:
system:serviceaccounts: incluye todas las cuenta de servicio del sistema
system:serviceaccounts:<project>: incluye todas las cuentas de servicio del
seleccionado proyecto.
Gestionar cuentas de servicio
- Listar:
oc get sa
- Crear:
oc create sa <service_account_name>
- Aplicables a:
Pods
Memory
requests.memory
limits.memory
Cpu
requests.cpu
limits.cpu
Ephemeral-storage
requests.ephemeral-storage
limits.ephemeral-storage
Quotas – Requests / Limits
- Cada cuota puede especificar valores asociados a:
Requests
Limits
- Si la cuota especifica restricciones en función de “requests” requerirá que
cada futura definición de contenedor haga referencia explícita a nivel
“request” de dichos recursos.
- Si la cuota especifica restricciones en función de “limits” requerirá que cada
futura definición de contenedor haga referencia explícita a nivel de límite de
uso de dichos recursos.
Quotas – Definición de cuota
- Objetos Openshift
- Objetos generales (Kubernetes)
- Recursos computacionales
Quotas – Definición de cuota
- Tipología NotTerminating
- Calidad de servicio BestEffort
- Detalles
oc describe quota <nombre> -n <proyecto>
- Creación:
oc apply -f definicion-quota.yaml
- Borrado:
oc delete -f definicion-quota.yaml
Rangos límite (Limit Ranges)
- Definido por el recurso “LimitRange” en el cluster.
- Especifica límites de recursos de computación al nivel de:
Pod
Contenedor
Imagen
Image stream
solicitud de volúmen persistente
- Determina por tanto la cantidad de los recursos limitados que el recurso en concreto
puede consumir.
- Cada petición en el cluster de crear o modificar recursos, se evalua contra cada
LimitRange registrado en el proyecto (namespace). Si alguna no se cumple, la gestión
se rechaza.
- Si el recurso no especifica una definición por defecto y el LimitRange provee un valor
por defecto, este se estipula de manera automática.
- Los rangos límite son especificados por administradores del sistema y actúan a nivel de
proyecto.
Límites por rango - Ejemplo
Límites por rango - Interacción
oc get limits
cc apply -f limite-por-rango.yaml
oc delete -f limitepor-rango.yaml
Ejercicio 1
- Explora la documentación oficial sobre todo el detalle teórico de cuotas y límites por
rango:
https://docs.openshift.com/online/pro/dev_guide/compute_resources.html#dev-compute
-resources
Ejercicio 2