Buenas prácticas en OpenShift

La adopción de buenas prácticas en el uso de Red Hat OpenShift Container Platform es fundamental para asegurar despliegues eficientes, seguros y mantenibles. A continuación, se describen los principales lineamientos para optimizar la administración, el desarrollo y la operación en entornos empresariales sobre OpenShift.

Gestión eficiente de recursos

Definir límites y solicitudes de recursos

Configurar adecuadamente los valores de requests y limits en los despliegues para CPU y memoria evita el overcommitment y reduce el riesgo de afectaciones por consumo excesivo.

Uso de Namespaces

Organizar aplicaciones y equipos en namespaces permite una gestión granular de recursos, políticas y visibilidad.

Seguridad en la plataforma

Principio de menor privilegio

Gestionar permisos mediante Roles y RoleBindings, restringiendo el acceso solo a lo estrictamente necesario.

Uso de Security Context Constraints (SCC)

Configurar SCCs personalizados para controlar las capacidades de ejecución de los pods y reducir la superficie de ataque.

Actualizaciones regulares

Mantener el clúster y sus componentes actualizados protege ante vulnerabilidades conocidas.

Despliegue y gestión de aplicaciones

Automatización de procesos

Implementar pipelines CI/CD, preferiblemente usando OpenShift Pipelines (basado en Tekton), para lograr despliegues repetibles y auditables.

Declaratividad

Definir los recursos mediante archivos YAML versionados en sistemas de control de código fuente para facilitar la trazabilidad y la reversión de cambios.

Buenas prácticas en la construcción de imágenes

Utilizar imágenes distroless o minimalistas, definir usuarios no privilegiados y gestionar vulnerabilidades durante el proceso de build.

Monitoreo y registro

Monitorización continua

Habilitar y configurar las soluciones integradas, como Prometheus y Alertmanager, permite detectar incidentes y evaluar el rendimiento del clúster.

Gestión centralizada de logs

Implementar log collectors como Elasticsearch o Loki junto con Kibana o Grafana facilita el análisis y la correlación de eventos.

Alta disponibilidad y resiliencia

Gestión de configuraciones y secretos

Uso de ConfigMaps y Secrets

Separar configuraciones dinámicas o sensibles del código, empleando los recursos nativos de OpenShift.

Control de acceso

Limitar la exposición de secretos solo a los servicios/aplicaciones que los requieran, aplicando políticas de RBAC específicas.

Mantenimiento y limpieza del entorno

Eliminación de recursos obsoletos

Adoptar procesos automáticos o manuales para remover pods, imágenes y configuraciones que ya no se utilizan, optimizando los recursos del clúster.

Revisiones periódicas de políticas

Auditar y actualizar roles, permisos y reglas de seguridad de forma regular.

Definición de límites y solicitudes de recursos

En un archivo de despliegue, es recomendable establecer los siguientes parámetros en la especificación de un contenedor:

 resources:   requests:     memory: "512Mi"     cpu: "500m"   limits:     memory: "1Gi"     cpu: "1" 

Esto asegura que el pod cuente con los recursos mínimos garantizados y límites superiores definidos, contribuyendo al buen funcionamiento general del clúster.