Saltar al contenido principal

Conceptos

Presentación de Kubernetes gestionado

La oferta Kubernetes gestionado (también denominada "Kub Managé" o "KM") es una solución de contenedorización Kubernetes gestionada por Cloud-Temple, desplegada en forma de máquinas virtuales que funcionan sobre las infraestructuras IaaS Cloud-Temple OpenIaaS.

Kubernetes gestionado se basa en Talos Linux (https://www.talos.dev/), un sistema operativo dedicado a Kubernetes, ligero y seguro. Es inmutable, sin ningún shell ni acceso SSH, y configurado únicamente de forma declarativa a través de la API gRPC.

La instalación estándar incluye un conjunto de componentes, en su mayoría de código abierto y validados por el CNCF:

  • CNI Cillium, con interfaz de observabilidad (Hubble): Cillium es una solución de red para contenedores Kubernetes (Container Network Interface). Gestiona la seguridad, el balanceo de carga, el service mesh, la observabilidad, el cifrado, etc. Es un componente de red fundamental que se encuentra en la mayoría de las variantes de Kubernetes (OpenShift, AKS, GKE, EKS, ...). Hemos incluido la interfaz gráfica Hubble para visualizar los flujos de Cillium.

  • MetalLB y nginx: Para exponer aplicaciones web, se incluyen de forma predeterminada tres clases de ingress nginx:

    • nginx-external-secured: exposición en una IP pública, filtrada en el firewall para permitir únicamente IPs conocidas (usado para interfaces gráficas de los distintos productos y la API de Kubernetes).
    • nginx-external: exposición en una segunda IP pública no filtrada (o filtrado específico por cliente).
    • nginx-internal: exposición únicamente en una IP interna.

    Para servicios "no web", un balanceador de carga MetalLB permite exponer servicios internamente o en IPs públicas (lo que permite desplegar otros ingresses, por ejemplo un WAF).

  • Almacenamiento distribuido Rook-Ceph: para el almacenamiento de volúmenes persistentes (PV), se integra un almacenamiento distribuido Ceph de código abierto en la plataforma. Permite utilizar las storage-classes ceph-block, ceph-bucket y ceph-filesystem. Se utiliza un almacenamiento con 7500 IOPS, lo que permite altos rendimientos. En despliegues de producción (en 3 Zonas de Disponibilidad), los nodos de almacenamiento son dedicados (1 nodo por Zona de Disponibilidad); en despliegues no productivos (1 Zona de Disponibilidad), el almacenamiento se comparte con los nodos trabajadores.

  • Cert-Manager: el gestor de certificados de código abierto Cert-Manager está integrado nativamente en la plataforma.

  • ArgoCD está disponible para sus despliegues automatizados mediante una cadena de CI/CD.

  • Pila Prometheus (Prometheus, Grafana, Loki): los clusters Kubernetes gestionados se entregan por defecto con una pila completa de código abierto Prometheus para la observabilidad, que incluye:

    • Prometheus
    • Grafana, con múltiples paneles preconfigurados
    • Loki: los registros de la plataforma se exportan al almacenamiento S3 de Cloud-Temple (e integrados en Grafana).
  • Harbor es un registro de contenedores que le permite almacenar imágenes de sus contenedores o sus charts Helm directamente en el clúster. Realiza escaneos de vulnerabilidades en sus imágenes y puede firmarlas digitalmente. Harbor también permite sincronizaciones con otros registros. (https://goharbor.io/)

  • OpenCost (https://github.com/opencost/opencost) es una herramienta de gestión de costes (Finops) para Kubernetes. Le permite rastrear con precisión el consumo de recursos de Kubernetes y realizar la facturación por proyecto/namespace.

  • Estrategias de seguridad avanzadas con Kyverno y Capsule:

    • Kyverno (https://kyverno.io/) es un controlador de admisión para Kubernetes que permite aplicar políticas. Es una herramienta esencial para la gobernanza y seguridad en Kubernetes.
    • Capsule (https://projectcapsule.dev/) es una herramienta de gestión de permisos que facilita la administración de derechos en Kubernetes. Introduce el concepto de tenant, que permite centralizar y delegar permisos sobre múltiples namespaces. A través de Capsule, los usuarios de la plataforma Kubernetes gestionado disponen por tanto de permisos restringidos únicamente a sus propios namespaces.
  • Veeam Kasten (también conocido como 'k10') es una solución para la copia de seguridad de cargas de trabajo en Kubernetes.

    Permite realizar copias de seguridad completas: manifiestos, volúmenes, etc., hacia el almacenamiento objeto S3 de Cloud-Temple. Kasten utiliza Kanister para permitir copias de seguridad coherentes a nivel de aplicación, por ejemplo para bases de datos (https://docs.kasten.io/latest/usage/blueprints/).

    Kasten es una herramienta multiplataforma que puede funcionar con otros clústeres Kubernetes (OpenShift, hiperscalers, ...). Por tanto, puede utilizarse para escenarios de reversibilidad o migración (K10 gestiona las adaptaciones necesarias mediante transformaciones, por ejemplo un cambio de ingress-class), pero también para "refresh" (por ejemplo, restauración planificada de un entorno productivo en preproducción).

  • Autenticación SSO con un Identity Provider externo OIDC (Microsoft Entra, FranceConnect, Okta, AWS IAM, Google, Salesforce, ...)

SLA y información sobre el soporte

  • Disponibilidad garantizada (producción 3 AZ): 99,90 %
  • Soporte: N1/N2/N3 incluidos para el ámbito base (infraestructura y operadores estándar).
  • Compromiso de tiempo de recuperación (ETR): según el contrato marco Cloud Temple.
  • Mantenimiento (MCO): actualizaciones regulares de Talos / Kubernetes / operadores estándar por parte de la MSP, sin interrupción del servicio (actualización progresiva).

Los plazos de atención y recuperación dependen de la severidad del incidente, conforme a la escala de soporte (P1 a P4).

Política de versiones y ciclo de vida

  • Kubernetes soportado: N-2 (3 versiones principales al año, aproximadamente cada 4 meses). Cada versión se soporta oficialmente durante 12 meses, lo que garantiza una ventana de soporte de Cloud Temple de hasta 16 meses por versión.
  • Talos OS: alineado con las versiones estables de Kubernetes.
    • Cada rama se mantiene aproximadamente 12 meses (incluyendo parches de seguridad).
    • Ritmo recomendado de actualización: 3 veces al año, en coherencia con las actualizaciones de Kubernetes.
    • Los parches críticos (CVE, kernel) se aplican mediante actualización progresiva, sin interrupción del servicio.
  • Operadores estándar: actualizados dentro de los 90 días posteriores al lanzamiento estable.
  • Actualizaciones:
    • Mayores (Kubernetes N+1, Talos X+1): planificadas 3 veces al año, mediante actualización progresiva.
    • Menores: aplicadas automáticamente en un plazo de 30 a 60 días.
  • Deprecación: versión N-3 → fin del soporte dentro de los 90 días posteriores al lanzamiento de N.

Nodos Kubernetes

Producción (multi-zonal)

Para un despliegue en "producción" (multi-zonal), se utilizan las siguientes máquinas:

AZMáquinavCoresRAMAlmacenamiento local
AZ07Git Runner48 GBSO: 64 GB
AZ05Control Plane 1812 GBSO: 64 GB
AZ06Control Plane 2812 GBSO: 64 GB
AZ07Control Plane 3812 GBSO: 64 GB
AZ05Storage Node 11224 GBSO: 64 GB + Ceph 500 GB mínimo (*)
AZ06Storage Node 21224 GBSO: 64 GB + Ceph 500 GB mínimo (*)
AZ07Storage Node 31224 GBSO: 64 GB + Ceph 500 GB mínimo (*)
AZ05Worker Node 1 (**)1224 GBSO: 64 GB
AZ06Worker Node 2 (**)1224 GBSO: 64 GB
AZ07Worker Node 3 (**)1224 GBSO: 64 GB

(*) : Cada nodo de almacenamiento incluye un mínimo de 500 GB de espacio en disco, para un almacenamiento útil distribuido en Ceph de 500 GB (los datos se replican en cada AZ, por lo que se multiplica por 3). El espacio libre disponible para el cliente es de aproximadamente 350 GB. Este tamaño inicial puede aumentarse durante la construcción o más adelante, según las necesidades. Se aplican cuotas en Ceph, con una distribución entre bloques y archivos.

(**) : El tamaño y el número de nodos worker pueden ajustarse según la capacidad de cálculo requerida por el cliente. El número mínimo de nodos worker es de 3 (1 por AZ), y se recomienda aumentarlos en lotes de 3 para mantener una distribución multi-zonal coherente. El tamaño de los nodos worker puede adaptarse, con un mínimo de 12 núcleos y 24 GB de RAM; el límite superior por nodo worker está determinado por el tamaño de los hipervisores utilizados (por lo tanto, potencialmente hasta 112 núcleos/1536 GB de RAM con servidores de rendimiento 3). El número máximo de nodos worker es de 100. El CNCF recomienda tener nodos worker de tamaño idéntico. El límite de pods por nodo worker es de 110.

Dev/Test

Para una versión "dev/test", se despliegan las siguientes máquinas:

AZMáquinavCoresRAMAlmacenamiento local
AZ0nGit Runner48 GBSO: 30 GB
AZ0nControl Plane812 GBSO: 64 GB
AZ0nWorker Node 1 (**)1224 GBSO: 64 GB + Ceph 300 GB como mínimo (*)
AZ0nWorker Node 2 (**)1224 GBSO: 64 GB + Ceph 300 GB como mínimo (*)
AZ0nWorker Node 3 (**)1224 GBSO: 64 GB + Ceph 300 GB como mínimo (*)

(*) : Se utilizan 3 nodos Worker como nodos de almacenamiento y se entregan con un mínimo de 300 GB de espacio en disco, para un almacenamiento útil distribuido de 300 GB (los datos se replican tres veces). El espacio libre disponible para el cliente es de aproximadamente 150 GB. Este tamaño inicial puede aumentarse durante la construcción o más adelante, según las necesidades.

(**) : El tamaño y el número de nodos Worker pueden ajustarse según las necesidades de capacidad de cálculo del cliente. El número mínimo de nodos Worker es de 3 (debido a la replicación del almacenamiento). El tamaño de los nodos Worker puede adaptarse, con un mínimo de 12 núcleos y 24 GB de RAM; el límite superior por nodo Worker está determinado por el tamaño de los hipervisores utilizados (por lo tanto, potencialmente hasta 112 núcleos/1536 GB de RAM con placas Performance 3). El número máximo de nodos Worker es de 250. El CNCF recomienda tener nodos Worker del mismo tamaño. El límite de pods por nodo Worker es de 110.

RACI

Architecture & Infrastructure

ActivityClientCloud Temple
Define the overall architecture of the Kubernetes serviceCRA
Size the Kubernetes service (number of nodes, resources)CRA
Install the Kubernetes service with default configurationIRA
Configure the Kubernetes serviceCRA
Set up the base network for the Kubernetes serviceIRA
Deploy initial configuration for identities and accessCRA
Define scaling and high availability strategyCRA

Gestión de proyectos y aplicaciones empresariales

ActividadClienteCloud Temple
Crear y gestionar los proyectos KubernetesRAI*
Desplegar y gestionar las aplicaciones en KubernetesRAI*
Configurar las pipelines CI/CDRAI*
Gestionar las imágenes de contenedores y los registrosRAI*
  • puede pasar a "C" según el contrato de gestión informática

Monitoreo y rendimiento

ActividadClienteCloud Temple
Monitorear el rendimiento del servicio KubernetesIRA*
Monitorear el rendimiento de las aplicacionesRA
Gestionar las alertas relacionadas con el servicio KubernetesIRA*
Gestionar las alertas relacionadas con las aplicacionesRA

(*) : Solo el clúster de Producción. En Dev/Test, el cliente tiene autonomía total y responsabilidad plena.

Maintenance and Infrastructure Updates

ActivityClientCloud Temple
Update Kubernetes/OS serviceCRA
Apply security patches to KubernetesCRA
Update deployed applications (operators*)CRA

*Operator package included in Managed Kube - see sections: Managed Helm Packages

Security

ActivityClientCloud Temple
Manage security for the Kubernetes serviceRARA*
Configure and manage pod security policiesRAI
Manage SSL/TLS certificates for the Kubernetes serviceCRA*
Manage SSL/TLS certificates for applicationsRAI
Implement and manage Role-Based Access Control (RBAC) for base rolesCR*
Implement and manage Role-Based Access Control (RBAC) for client rolesRAI

(*) : Production cluster only. In Dev/Test, the client has full autonomy and responsibility.

Backup and Disaster Recovery

ActivityClientCloud Temple
Define the backup strategy for the Kubernetes serviceIRA
Implement and manage backups for the Kubernetes serviceIRA
Define the backup strategy for applicationsRA*I*
Implement and manage backups for applicationsRA*I*
Test disaster recovery procedures for the Kubernetes serviceCIRA
Test disaster recovery procedures for applicationsRA*CI*

*May change to "CI | RA" depending on the managed services contract

Soporte y resolución de problemas

ActividadClienteCloud Temple
Proporcionar soporte de nivel 1 para la infraestructuraIRA
Proporcionar soporte de nivel 2 y 3 para la infraestructuraIRA
Resolver problemas relacionados con el servicio KubernetesCRA
Resolver problemas relacionados con las aplicacionesRAI

Gestión de capacidades y evolución

Únicamente en clúster de producción. En desarrollo/pruebas, el cliente tiene total autonomía y responsabilidad.

ActividadClienteCloud Temple
Supervisar el uso de los recursos de KubernetesCRA
Planificar la evolución de las capacidades del servicioRAC
Implementar los cambios en las capacidadesIRA
Gestionar la evolución de las aplicaciones y sus recursosRAI

Documentación y cumplimiento

ActividadClienteCloud Temple
Mantener la documentación del servicio KubernetesIRA
Mantener la documentación de las aplicacionesRAI
Asegurar el cumplimiento del servicio KubernetesIRA
Asegurar el cumplimiento de las aplicacionesRAI
Realizar auditorías del servicio KubernetesIRA
Realizar auditorías de las aplicacionesRAI

Operator/CRD Kubernetes Management (included in the offer)

ActivityClientCloud Temple
Provisioning of the default Operators catalogCIRA
Updating OperatorsCIRA
Monitoring Operators statusCIRA
Troubleshooting Operator-related issuesCIRA
Managing Operator permissionsCIRA
Managing Operator resources (addition/removal)CIRA
Backing up Operator resources dataCIRA
Monitoring Operator resourcesCIRA
Restoring Operator resources dataCIRA
Security auditing of OperatorsCIRA
Operator supportCIRA
License management for OperatorsCIRA
Management of specific support plans for OperatorsCIRA

*Operator package included in Managed Kube – see chapters: Managed Helm Packages

Management of Kubernetes applications/operators/CRDs (client side)

Production cluster only. In Dev/Test, the client is fully autonomous and responsible.

ActivityClientCloud Temple
Deployment of CRDsI*RA*
Updating operatorsRAI
Monitoring the status of operatorsRAI
Troubleshooting issues related to operatorsRAI
Managing operator permissionsRAI
Managing operator resources (addition/removal)RAI
Backup of operator resource dataRAI
Monitoring operator resourcesRAI
Restoration of operator resource dataRAI
Security auditing of operatorsRAI
Support for operatorsRAI
License management for operatorsRAI
Management of specific support plans for operatorsRAI

Some operator services may be managed depending on the managed services contract.

*May change to "A | RC" depending on the managed services contract

Aplicación de soporte

ActividadClienteCloud Temple
Soporte aplicativo (prestación externa)RAI

Un soporte aplicativo puede proporcionarse mediante una prestación complementaria.

RACI (synthetico)

  • Cloud Temple: responsable y actor (RA) del núcleo Kubernetes, seguridad del clúster, copias de seguridad de infraestructura, supervisión y CRD.
  • Cliente: responsable y actor (RA) de los proyectos aplicativos, operadores de negocio, pipelines CI/CD, copias de seguridad aplicativas.
  • Zona "gris": adaptaciones y extensiones (IAM, operadores específicos, fortalecimiento de conformidad/seguuridad del clúster) – facturadas en modo proyecto.