¿OpenShift se volvió loco? 💣 Presentamos la arquitectura del plano de control de 4 y 5 nodos de OpenShift

Aumentando la resiliencia en clústeres activos-activos bare-metal: arquitectura del plano de control de 4 y 5 nodos (  versión 4.17 ⬆ )

Las organizaciones que ejecutan implementaciones activo-activo en dos ubicaciones , especialmente aquellas que alojan cargas de trabajo con estado, como las máquinas virtuales de OpenShift Virtualization que ejecutan una sola instancia , dependen en gran medida de la infraestructura subyacente para garantizar la disponibilidad.
Si bien las plataformas de virtualización tradicionales manejan esto de forma nativa, ejecutar estas cargas de trabajo en OpenShift bare metal introduce nuevas consideraciones arquitectónicas.

 

El desafío: ¿Qué sucede cuando falla el sitio principal? ⚠️

En los clústeres de OpenShift extendidos típicos, el plano de control a menudo se implementa en una topología 2+1 o 1+1+1 .
Pero si el centro de datos que aloja la mayoría de los nodos del plano de control se cae:

  • El nodo del plano de control superviviente se convierte en la única fuente de información veraz para el clúster.
  • Ese único nodo debe cambiar al modo de lectura y escritura y actuar como la copia exclusiva de etcd.
  • Si ese nodo falla… la recuperación se vuelve catastrófica , especialmente al ejecutar máquinas virtuales con estado.

Este riesgo se vuelve aún más crítico en entornos que aprovechan OpenShift Virtualization para cargas de trabajo de producción

 

La solución: Plano de control de 4 y 5 nodos para clústeres extendidos 🚀

Para aumentar la resiliencia durante fallas a nivel de centro de datos, OpenShift puede aprovechar implementaciones de plano de control de 4 o 5 nodos , como:

  • 2+2
  • 3+2

Con estos diseños, incluso si se pierde un sitio completo, la ubicación restante conserva dos copias de solo lectura de etcd , lo que aumenta significativamente la capacidad de recuperación del clúster y reduce el riesgo de perder el quórum

Actualmente, el operador cluster-etcd ya admite hasta cinco miembros etcd , con escalado automático en entornos que utilizan MachineSets.
Sin embargo, en instalaciones bare-metal o basadas en agentes , MachineSets no está disponible, lo que significa que el operador no escalará automáticamente, sino que ajustará los pares etcd cuando se agreguen manualmente nodos del plano de control .

Este es exactamente el flujo de trabajo que pretendemos validar y admitir oficialmente.

🔧 Nota: Esta capacidad está específicamente dirigida a clústeres bare-metal , con un fuerte enfoque en los casos de uso de virtualización de OpenShift .

 

Objetivos 🎯

Validar y admitir arquitecturas de plano de control de 4 y 5 nodos para clústeres bare-metal extendidos, bajo las siguientes restricciones:

  • Nodos de plano de control bare-metal
  • Instalado mediante el instalador asistido o el instalador basado en agentes
  • Red de capa 3 compartida entre ubicaciones
  • Latencia < 10 ms entre todos los nodos del plano de control
  • Ancho de banda mínimo de 10 Gbps
  • etcd almacenado en SSD o NVMe

 

Criterios de aceptación ✔️

📌 Rendimiento

El rendimiento y la escalabilidad del plano de control deben mostrar una degradación inferior al 10 % en comparación con los clústeres HA estándar.

📌 Procedimientos de recuperación

La documentación debe validarse y actualizarse para la recuperación manual del plano de control en casos de pérdida de quórum.

🧠 Mapeo de Redes de VMware — De vSphere a OpenShift Virtualization

Todo lo mostrado aquí está incluido en todas las suscripciones de OpenShift.

Al migrar desde VMware, una de las primeras dudas es cómo se trasladan los conceptos de red. Este post lo explica visualmente.

Figure 1: Virtual Machine Networking in OpenShift

Las VMs pueden conectarse a:

  • La SDN de OpenShift (red de pods/servicios)
  • Redes externas usando Multus + nmstate

Interfaces soportadas:

  • Linux Bridge
  • VLAN
  • Bond
  • Ethernet

Esto permite emular redes como las de VMware a nivel de nodo.

Figure 2: Core VMware to OpenShift Mapping

NIC física (vmnic) → Se configura con NodeNetworkConfigurationPolicy (NNCP)

VM Network → NetworkAttachmentDefinition (NAD)

Virtual Machine → Recurso VirtualMachine en OpenShift

Figure 3 & 4: OVS-Bridges and NADs

  • OVS-bridges son equivalentes a port groups distribuidos.
  • Las NADs representan esos port groups dentro de un proyecto OpenShift.!

Ejemplo: airgap-VLAN999 es una NAD dentro del proyecto, conectada al bridge definido por NNCP.

Figure 5: Micro-segmentation with OpenShift SDN

OpenShift supports NetworkPolicies to enable true micro-segmentation, even for VMs.

✅ Tu Puedes:

Gracias a las NetworkPolicies, OpenShift permite aislar tráfico:

  • Entre proyectos
  • Entre pods y VMs
  • Según puertos o etiquetas!

Ejemplos:

  • Permitir tráfico solo a la VM violeta en el puerto 8080
  • Bloquear tráfico del proyecto B al A
  • Permitir solo conexiones internas!

Todo esto también se aplica a VMs, sin costo adicional ni extensiones extra.

OpenShift permite crear una red virtualizada robusta y segura, compatible con prácticas de VMware — y todo está incluido con tu suscripción.

¿Cómo medir CPU Ready en OpenShift Virtualization? 🚀🤓

Todos los que administramos VMware sabemos de lo que hablamos cuando nombramos CPU Ready (%RDY) como Métrica de Rendimiento, entonces explicare que es, y como se mide en Openshift Virtualization.

 

¿Qué es CPU Ready?

El término “CPU Ready” puede dar lugar a malentendidos. Se podría pensar que representa la cantidad de CPU lista para ser usada y que un alto valor es algo positivo. Sin embargo, cuanto mayor sea el CPU Ready, peor será el rendimiento de la infraestructura vSphere y más sufrirán las aplicaciones.

Definición oficial de VMware:

Es el porcentaje de tiempo en que un «world» está listo para ejecutarse y esperando la aprobación del CPU Scheduler.

  • En vSphere, un «Ciclo» es un proceso.
  • Cuanto mayor sea el CPU Ready, más tiempo pasarán las VM sin ejecutar lo que deberían.

En otras palabras, un «Ciclo» es una vCPU esperando su turno para ejecutarse en un CPU físicoCPU Ready mide cuánto tiempo esa vCPU espera para ser programada y ejecutarse en un núcleo físico.

¿Qué causa un alto CPU Ready?

Identificar el alto uso de CPU es sencillo, pero encontrar la causa del CPU Ready puede ser más difícil. Las dos causas principales de un alto CPU Ready son:

  1. Alta sobreasignación de CPU (CPU Oversubscription)
  2. Uso de límites de CPU (CPU Limits)

Sobreasignación de CPU

  • La razón más común de CPU Ready alto es asignar más vCPUs de las que pueden ser manejadas por los CPU físicos.
  • Reglas generales para la relación vCPU:pCPU:
    • 1:1 a 1:3 → No hay problema.
    • 1:3 a 1:5 → Puede empezar a degradarse el rendimiento.
    • 1:5 o mayor → Probable problema de CPU Ready.

¿Cómo ver el CPU Ready en VMware?

  • La mejor manera de analizar CPU Ready es a nivel de VM y por vCPU, no a nivel de host.
  • En vSphere Client, en los gráficos de rendimiento, se puede agregar CPU Ready como métrica.
  • En esxtop, se puede ver el %RDY para cada VM.

¿Cuánto CPU Ready es “normal”?

  • VMware recomienda mantener CPU Ready por debajo del 5% por vCPU.
  • CPU Ready se mide en milisegundos (ms) en la UI de vSphere, pero para calcular el porcentaje real:
    • Si en 20 segundos (20000 ms) una VM tiene 2173 ms de CPU Ready, entonces: (2173 / 20000) = 10.87% → Esto es alto.

¿Cómo medir CPU Ready en OpenShift Virtualization?

En VMware vSphereCPU Ready (%RDY) mide el tiempo que una vCPU pasa esperando ser programada en un CPU físico.
En OpenShift Virtualization, no existe una métrica llamada CPU Ready directamente, pero el equivalente en Kubernetes y OpenShift se mide a través del CPU Throttling.

📌 Métrica equivalente en OpenShift:

  • container_cpu_cfs_throttled_seconds_total
    • Mide el tiempo total (en segundos) que un contenedor (o VM en OpenShift Virtualization) ha estado «throttled», es decir, ha sido limitado en su uso de CPU porque excedió los recursos asignados.

📌 Otras métricas relacionadas:

  • container_cpu_cfs_periods_total
    • Cantidad total de períodos de CPU asignados al contenedor.
  • container_cpu_cfs_throttled_periods_total
    • Número de períodos de CPU en los que la VM fue restringida.
  • Usar Grafana en OpenShift Monitoring
    • Si tenés configurado Prometheus y Grafana, podés crear un dashboard con:
      • Métrica: container_cpu_cfs_throttled_seconds_total
      • Filtro: {pod=~"mi-vm-.*"} (para enfocarse en VMs específicas)
  • Usar oc adm top para obtener CPU en tiempo real
    • Comando:oc adm top pods -n mi-namespace
    • Esto muestra el uso de CPU y memoria en tiempo real para cada VM.

🚀 Recomendaciones para evitar CPU Throttling en OpenShift Virtualization

  1. No usar CPU Limits innecesarios
    • Si una VM tiene un CPU Limit bajo, puede ser constantemente restringida, causando CPU Throttling alto.
    • En su lugar, definir solo CPU Requests y dejar el Limit abierto si el host tiene recursos disponibles.
  2. Monitorear y ajustar los recursos asignados
    • Revisar periódicamente las métricas de CPU Throttling en Prometheus/Grafana.
    • Asegurar que las VMs críticas tengan suficientes recursos.
  3. Evitar la sobreasignación de vCPUs en los nodos físicos
    • En OpenShift, asignar más vCPUs de las que tiene el nodo físico puede causar contención y throttling.
    • Seguir ratios recomendados de vCPU vs. pCPU.

📊 Umbrales para interpretar CPU Throttling en OpenShift

CPU Throttling (%)EstadoImpacto en el rendimiento
0 – 5%🔵 ÓptimoNo hay impacto en el rendimiento.
5 – 10%🟡 AdvertenciaPosible latencia en aplicaciones sensibles a la CPU.
10 – 20%🟠 Problema moderadoPueden aparecer retrasos y degradación en el rendimiento.
> 20%🔴 CríticoLa VM o contenedor está fuertemente limitado, afectando su desempeño.

🛠️ Comparación rápida: VMware vs. OpenShift Virtualization

ConceptoVMware (vSphere)OpenShift Virtualization (KubeVirt)
CPU Ready (%)%RDY en esxtopcontainer_cpu_cfs_throttled_seconds_total
Medición en GUIvSphere ClientOpenShift Grafana Dashboard
Medición CLIesxtopoc adm top pods + Prometheus
Causa principalCPU OversubscriptionCPU Limits o sobrecarga del nodo

vSphere with Tanzu: Kubernetes de Alta Disponibilidad 🕹️

vSphere con alta disponibilidad de Tanzu 🤓

Comencemos analizando genéricamente las soluciones de nube pública, ya que ofrecen una plantilla para proporcionar infraestructura y aislamiento de servicios críticos. Los recursos de la nube pública se alojan en regiones geográficas segmentadas en zonas de disponibilidad (AZ) que proporcionan un conjunto de servicios e infraestructura física aislados. Los recursos pueden ser regionales o basados ​​en AZ, sin embargo, la mayoría están contenidos en una única zona de disponibilidad. Por ejemplo, los nodos de máquina virtual que componen un clúster de Kubernetes podrían ser específicos de AZ y solo podrían adjuntar un volumen persistente que estuviera en la misma zona. Las direcciones IP estáticas o las imágenes de VM pueden ser regionales y estar disponibles en todas las zonas. Las AZ proporcionan una capa de abstracción sobre la infraestructura física que las respalda. Esa infraestructura está diseñada para garantizar el aislamiento de la mayoría de las fallas de infraestructura física y de software. La mayoría de las AZ están diseñadas con sus propios planos de energía, refrigeración, redes y control aislados de otras zonas.

Los recursos de vSphere se alojan en una infraestructura física que se puede aislar en vSphere Clusters y administrar mediante vCenter. A efectos de comparación con la nube pública, podemos pensar en un clúster de vSphere como una zona de disponibilidad (AZ). Los hosts ESXi se agrupan en racks de centros de datos físicos, conectados entre sí, y a otros racks, a través de una serie de conmutadores de red. Las organizaciones toman decisiones sobre si alinear los racks con los clústeres de vSphere o distribuir los hosts de un clúster entre los racks. El mapeo uno a uno entre clústeres y racks proporciona aislamiento y comunicación de baja latencia entre las aplicaciones que se ejecutan en el clúster, a expensas de la disponibilidad en el caso de una conmutación fallida.

vSphere with Tanzu actualmente admite la implementación de clústeres de Supervisor y Tanzu Kubernetes Grid (TKG) en un solo clúster de vSphere. Piense en esto como una implementación de una sola zona de disponibilidad. Una implementación de una sola zona de disponibilidad no significa que no haya alta disponibilidad. Como se describe a continuación, vSphere proporciona un conjunto de capacidades para promover la disponibilidad de los clústeres de Tanzu Kubernetes Grid (TKG) que se ejecutan en una sola AZ.

Veamos la capacidad en la plataforma que admite alta disponibilidad, luego definamos un conjunto de escenarios de falla dentro de una implementación de vSphere con Tanzu y analicemos los enfoques para aumentar la disponibilidad.

Plano de control de múltiples nodos de clúster con host Anti-Affinity y HA

Supervisor Cluster proporciona la API de Kubernetes para implementar los clústeres de vSphere Pods y TKG. Es un servicio del sistema que debe estar disponible para la operación de clústeres y servicios de TKG implementados como operadores de Kubernetes. Para garantizar la disponibilidad, hemos implementado una configuración de varios controladores. Tanto el supervisor como los controladores de clúster de TKG están configurados en una implementación apilada con el servidor Kube-API y etcd disponibles en cada máquina virtual. Cada plano de control tiene un balanceador de carga que enruta el tráfico a las API de Kube en cada nodo del controlador. La programación de los nodos del plano de control se realiza a través de vSphere 7.0 VMware vSphere® Distributed Resource Scheduler ™ (DRS). vSphere 7.0 DRS es más rápido y liviano, lo que garantiza una ubicación rápida entre los hosts, utilizando una política de computación suave de antiafinidad para separar los controladores en hosts separados cuando sea posible. La antiafinidad garantiza que una sola falla del controlador no afecte la disponibilidad del clúster.

Además, vSphere HA proporciona alta disponibilidad para los controladores fallidos al monitorear los eventos de falla y volver a encender las máquinas virtuales. En caso de falla del host, las VM, tanto los nodos Supervisor como TKG, se reinician en otro host disponible, lo que reduce drásticamente el tiempo que el clúster aún disponible se ejecuta con capacidad disminuida. Los Supervisor Controllers son administrados por el ciclo de vida de vSphere Agent Manager (EAM) y los administradores no pueden apagarlos fácilmente; sin embargo, si se apagan, se reiniciarán inmediatamente en el mismo host.

Pods y Daemons del sistema de clústeres

Systemd es el sistema de inicio para la distribución de PhotonOS linux que alimenta los nodos Supervisor y TKG Cluster. Systemd proporciona supervisión de procesos y reiniciará automáticamente cualquier daemons fallido crítico, como el kubelet de Kubernetes.

Los pods del sistema de Kubernetes, los pods de recursos personalizados de VMware y los controladores se implementan como conjuntos de réplicas (o DaemonSets en el contexto de los clústeres de TKG) supervisados ​​por otros controladores de Kubernetes y los contenedores los volverán a crear en caso de falla. Los procesos y pods que componen los clústeres Supervisor y TKG se implementan con mayor frecuencia con múltiples réplicas, por lo que continúan estando disponibles incluso durante la reconciliación de un Pod fallido. La implementación en términos del uso de DaemonSets vs ReplicaSets es diferente entre los clústeres de Supervisor y TKG, pero la disponibilidad de los pods del sistema individuales es similar

Supervisor y equilibrador de carga del controlador de clúster TKG

Como se mencionó anteriormente, los clústeres de supervisor y TKG se implementan como un conjunto de tres controladores. En el caso de los clústeres de TKG, los desarrolladores pueden elegir una implementación de un solo controlador si los recursos están limitados. El acceso a kube-api se dirige a una IP virtual de Load Balancer y se distribuye entre los puntos finales de API disponibles. La pérdida de un nodo del plano de control no afecta la disponibilidad del clúster. Los balanceadores de carga basados ​​en NSX se ejecutan en nodos perimetrales que se pueden implementar en una configuración activa / activa, lo que garantiza la disponibilidad de la IP virtual que los desarrolladores usarán para acceder a los clústeres.

Disponibilidad de almacenamiento en clúster 

Los clientes tienen la opción de habilitar VMware vSAN para proporcionar almacenamiento compartido de alta disponibilidad para los clústeres de Supervisor y TKG. vSAN combina el almacenamiento que es local para los hosts en una matriz de almacenamiento virtual que se puede configurar con las necesidades de redundancia del entorno. Los niveles de RAID se implementan en todos los hosts y brindan disponibilidad en los casos en que fallan los hosts individuales. vSAN es nativo del hipervisor ESXi y, por lo tanto, no se ejecuta como un conjunto de dispositivos de almacenamiento que podrían competir con las VM del clúster de Kubernetes por los recursos.

Disponibilidad de vSphere Pods

Los clientes que necesitan el aislamiento de una máquina virtual desde una perspectiva de seguridad y rendimiento, mientras desean orquestar la carga de trabajo a través de Kubernetes, pueden elegir vSphere Pods. Los operadores del sistema y de terceros también se pueden implementar como pods de vSphere. Se ejecutan en una máquina virtual en tiempo de ejecución de contenedor directamente en hosts ESXi y se comportan como cualquier otro pod. La disponibilidad se administra a través de objetos estándar de Kubernetes y sigue el patrón de Kubernetes para manejar fallas de pod. Cree una implementación con varias réplicas definidas y el controlador observará los pods fallidos y los volverá a crear. Las fallas de host harían que los vSphere Pods se volvieran a crear en nuevos hosts. Este patrón no usa vSphere HA, sino que aprovecha los controladores de Kubernetes para manejar fallas.

Escenarios de falla de infraestructura y software

Analizamos la capacidad central dentro de la plataforma y ahora definiremos un conjunto de escenarios de falla dentro de una implementación de vSphere con Tanzu, luego analizaremos los enfoques para aumentar la disponibilidad en cada escenario.

Fallo del componente del clúster de Kubernetes

  • Fallo del proceso del nodo de Kubernetes
  • Fallo del pod del sistema de Kubernetes
  • Máquina virtual apagada

Cuando un controlador o un nodo trabajador deja de estar disponible, los pods del sistema se volverán a crear en uno de los otros nodos disponibles. Los procesos fallidos de Linux son monitoreados y reiniciados por el sistema de inicio systemd. Esto es cierto tanto para el plano de control de TKG como para los nodos de trabajo, así como para el plano de control del supervisor. Los nodos Supervisor Worker son hosts ESXi reales, no ejecutan systemd y manejan las fallas del proceso de manera diferente. Las máquinas virtuales que se apagan se reinician automáticamente. El plano de control se implementa como un conjunto de 3 controladores, con una IP virtual de Load Balancer como el punto final de Kube-API para garantizar que durante el tiempo necesario para remediar la interrupción, el clúster todavía esté disponible. La corrección de los nodos de trabajo de TKG se maneja mediante el uso integrado de la capacidad MachineHeatlhCheck en ClusterAPI V1Alpha3.

Interrupción del host

  • Error de host
  • Reinicio del host

La falta de disponibilidad de un host ESXi puede deberse a un breve reinicio o podría estar relacionada con una falla real del hardware. Al reiniciar, todas las VM del controlador y del nodo se reinician automáticamente en el host. Si el reinicio tarda más que el umbral de tiempo de espera de latido de HA, las VM se programan para su ubicación en otros hosts disponibles y se encienden. Las reglas de antiafinidad se mantendrán si los recursos lo permiten. En cualquier caso, los clústeres todavía están disponibles porque tienen varios nodos de controlador ubicados en hosts ESXi separados y se accede a ellos a través de un equilibrador de carga y pueden sobrevivir a la pérdida de un controlador.

Interrupción del estante

  • Fallo del interruptor de la parte superior del bastidor

Los hosts están organizados en racks físicos en el centro de datos. Los hosts en un rack se conectan a través de un conmutador Top of Rack y además se conectan a conmutadores de agregación adicionales. La pérdida de un conmutador, matriz de almacenamiento o alimentación podría hacer que un rack completo no esté disponible. La disponibilidad de un supervisor o clúster TKG depende de cómo se alinean los hosts con los racks. Algunos clientes colocarán todos los hosts en un clúster de vSphere en el mismo rack, lo que esencialmente hará que ese rack físico sea una zona de disponibilidad (AZ). La falla del bastidor haría que el Supervisor Cluster y todos los clústeres TKG no estuvieran disponibles. Otra opción es crear clústeres de vSphere a partir de hosts que residen en varios racks. Esta configuración garantiza que una sola falla de bastidor no haga que todos los hosts de vSphere Cluster no estén disponibles y aumenta la probabilidad de que el plano de control permanezca disponible.

Actualmente, el Programador de recursos distribuidos (DRS) no reconoce el bastidor. Esto significa que las reglas de antiafinidad para las máquinas virtuales del plano de control garantizarían la separación de hosts, pero no necesariamente garantizarían que los hosts estuvieran en racks separados. Se está trabajando para proporcionar una programación basada en rack que mejoraría esta disponibilidad.

Fallo de la matriz de almacenamiento

Los clústeres de supervisor y TKG requieren almacenamiento compartido para permitir que los volúmenes persistentes sean accesibles a los pods que se pueden colocar en cualquier nodo, que podría residir en cualquier host. Tanto vSAN como los arreglos de almacenamiento tradicionales admiten varias configuraciones RAID que garantizan la disponibilidad de datos en caso de corrupción de discos individuales. vSAN agrega almacenamiento local adjunto a hosts físicos y también puede permanecer disponible si se produce una falla de host o incluso potencialmente de un rack.

Los clústeres extensibles de vSAN también brindarán la capacidad de dividir un único clúster de vSphere en dominios de fallas específicos de almacenamiento separados. Esto permitiría la disponibilidad de datos incluso con la pérdida de todo el dominio. Con hosts físicos distribuidos en varios racks, los volúmenes persistentes permanecerían disponibles durante las fallas tanto del host como del rack.

Falla de red

  • Fallo de NSX Edge

La redundancia física está integrada en la mayoría de los entornos de red de producción que brindan disponibilidad a través de fallas de hardware físico. Cuando se implementan con NSX-T, los clústeres Supervisor y TKG se ejecutan en redes superpuestas que son compatibles con la red física subyacente. Las VM de NSX Edge contienen los Vips de Load Balancer y enrutan el tráfico a los nodos del plano de control del clúster. NSX Edges se puede implementar en una configuración activa / activa que mantendría la red disponible en el caso de una falla del host o de la máquina virtual que afectó a un solo NSX Edge.

Interrupción de vCenter

La disponibilidad de vCenter Server es fundamental para el funcionamiento completamente funcional de los clústeres de Supervisor y TKG. En el caso de una falla de vCenter, todas las máquinas virtuales, tanto el controlador como los nodos, continuarán ejecutándose y serán accesibles aunque con funcionalidad degradada. Los módulos de aplicaciones seguirían ejecutándose, pero la implementación y la gestión del sistema serían limitadas. La autenticación requiere que el servicio de inicio de sesión único devuelva un token de autenticación al archivo de configuración de kubectl. Solo los usuarios que tengan un token no vencido podrán acceder al sistema. Objetos como Load Balancers y PersistentVolumeClaims requieren interacción con vCenter y no se pueden administrar durante el ciclo de vida.

vCenter se puede proteger con vCenter High Availability. vCenter High Availability (vCenter HA) protege no solo contra fallas de hardware y host, sino también contra  vCenter Server  fallas de aplicaciones de . Al utilizar la conmutación por error automatizada de activo a pasivo, vCenter HA admite alta disponibilidad con un tiempo de inactividad mínimo. Esto aumentaría drásticamente la disponibilidad de los grupos Supervisor y TKG.

Hay un trabajo extenso en proceso para desacoplar los servicios principales de vCenter Server y llevarlos al nivel del clúster. El objetivo es proporcionar siempre una infraestructura que continúe funcionando incluso cuando vCenter tiene una interrupción

¿OpenShift se volvió loco? 💣 Presentamos la arquitectura del plano de control de 4 y 5 nodos de OpenShift

Aumentando la resiliencia en clústeres activos-activos bare-metal: arquitectura del plano de control de 4 y 5 nodos (  versión 4.17 ⬆ ) Las organizaciones que ejecutan implementaciones activo-activo en dos ubicaciones , especialmente aquellas que alojan cargas de trabajo con estado, como las máquinas virtuales de OpenShift Virtualization que ejecutan una sola instancia , dependen en gran medida de la infraestructura subyacente para…

🧠 Mapeo de Redes de VMware — De vSphere a OpenShift Virtualization

Todo lo mostrado aquí está incluido en todas las suscripciones de OpenShift. Al migrar desde VMware, una de las primeras dudas es cómo se trasladan los conceptos de red. Este post lo explica visualmente. Figure 1: Virtual Machine Networking in OpenShift Las VMs pueden conectarse a: Interfaces soportadas: Esto permite emular redes como las de VMware…

Observabilidad 👀 con Prometheus y Grafana 🔥 en Clusteres de Tanzu Kubernetes Grid (TKG) VMware

La comunidad de código abierto está convergiendo en Prometheus como la solución preferida para abordar los desafíos asociados con el monitoreo de Kubernetes. Fue desarrollado previamente por SoundCloud y luego donado al CNCF. Prometheus admite aplicaciones de instrumentos en muchos idiomas. Ofrece una integración de Kubernetes incorporada y es capaz de descubrir recursos de Kubernetes como nodos, servicios y pods y capturar métricas de ellos.

Prometheus tiene un navegador de expresiones, que se utiliza principalmente para depurar. Para tener cuadros de mando atractivos, usaremos Grafana: una popular plataforma abierta para visualización y análisis. Grafana tiene una fuente de datos integrada para realizar consultas en Prometheus.

1. Instale Prometheus con Helm CLI

Para implementar Prometheus, aprovecharemos el proyecto del operador prometheus. Prometheus Operator proporciona implementación y administración nativas de Kubernetes de Prometheus y los componentes de monitoreo relacionados. Este proyecto tiene como objetivo simplificar y automatizar la configuración de una pila de monitoreo basada en prometheus para clústeres de Kubernetes

  1. Verifique los repositorios actuales de Helm para prometheus-operator con el comando: 
  2. helm search repo prometheus-operator
  3. En este caso agregamos un repositorio de BITNAMI, Instalemos el prometheus-operator con el comando de abajo. Con este comando de instalación de helm, también configuramos los parámetros para que se cree el servicio de tipo LoadBalancer y para aprovechar el almacenamiento persistente para Prometheus.
helm install prometheus-operator bitnami/prometheus-operator \
 -n monitoring \
 --version 0.21.3 \
 --set useHelm3=true --set prometheus.service.type=LoadBalancer \
 --set prometheus.persistence.enabled=true

2. Accede a la interfaz de usuario de Prometheus

Prometheus viene con una interfaz de usuario web simple. Nos permite ver gráficos simples, la configuración y las reglas de Prometheus, y el estado de los puntos finales de monitoreo.

  1. Para utilizar el navegador de expresiones integrado de Prometheus, vaya a http: // <LoadBalancer IP>: 9090
  2. De forma predeterminada, el proceso de inicio de sesión lo redireccionará a la pestaña Gráfico . 
  3. En el panel de Prometheus, podemos consultar métricas escribiéndolas en el campo de consulta y presionando ejecutar. Las métricas también se pueden consultar eligiendo una de la lista desplegable. En el menú desplegable.
  4. Haga clic en el botón Ejecutar .
  5. Obtendrá los valores actuales para esta métrica de los Workers Nodes.

3. Instale Grafana con Kubeapps

Para instalar Grafana, usaré la aplicación Kubeapps (Bitnami Project) que tengo ejecutándose en mi Cluster TKG

  1. Navegue a la IU de implementación de Kubeapps :  http: // <Kubeapps LoadBalancer IP>. 
  2. Haga clic en Catálogo
  3. En el menú desplegable del espacio de nombres, elija supervisión . Si no ve el espacio de nombres de supervisión en la lista, debe actualizar la página web de Kubeapps.
  4. En el cuadro de prueba de búsqueda de catálogo, escriba: grafana .
  5. Haga clic en el icono de grafana para el repositorio de bitnami.

4. Trabajar con Grafana

  1. Abra una nueva ventana de Chrome y navegue hasta http: // <Grafana LoadBalancer IP>
  2. Inicie sesión. Esto debería enviarle a la página de inicio de Bienvenido a Grafana.

4.1 Ahora que tenemos Grafana instalado, agreguemos fuentes de datos.

  1. En el menú de navegación de la izquierda, haga clic en el icono Configuración
  2. Luego haga clic en Fuentes de datos

1. En la siguiente pantalla, asegúrese de estar en la pestaña Fuentes de datos y haga clic en el botón Agregar fuente de datos

Grafana incluye soporte integrado para Prometheus.

  1. Pasa el mouse sobre la fuente de Prometheus. Esto habilitará el botón Seleccionar. Haz click en eso.
LSS-2020-06-CNA-LS-v0.8
  1. Cambie el nombre o el que mas le guste.
  2. En el campo URL, escriba su IP y puerto de clúster prometheus-operator-prometheus . En nuestro caso, es http://xx.xx.xx.xx:9090.
  3. Desplácese hacia abajo y haga clic en el botón Guardar y probar . Aparecerá un cuadro verde que indica que la fuente de datos está funcionando.
LSS-2020-06-CNA-LS-v0.8

Aquí voy a importar un Dashboard desde Grafana

  1. En el menú de navegación de la izquierda, haga clic en el icono Crear (icono más).
  2. Luego haga clic en Importar 
LSS-2020-06-CNA-LS-v0.8

Cada panel de Grafana.com tiene una identificación única. Importemos el panel de detalles de clúster K8 de xmurias, que tiene un ID de 10856.

  1. Escriba  10856  en el campo de importación.
  2. Haga clic en el botón Cargar .
LSS-2020-06-CNA-LS-v0.8
  1. Seleccione la fuente de datos Prometheus-tkg-dev , que creamos antes.
  2. Y haga clic en Importar.
LSS-2020-06-CNA-LS-v0.8

También Puede buscar e importar dashboards de Kubernetes desde  https://grafana.com/grafana/dashboards

LSS-2020-06-CNA-LS-v0.8

Espero que hayas disfrutado esta entrada de Blog y puedas probarlo!!!