Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Gestión de OCI Kubernetes Engine con diferentes tipos de capacidad y resolución de problemas comunes en nodos preferentes
Introducción
A medida que continuamos a través de cada ciclo de transformación digital, las empresas continúan innovando e iterando, superando los límites de lo que es posible para la infraestructura, las aplicaciones y la gestión a escala. Una de las tecnologías más recientes y ampliamente adoptadas utilizadas para soportar la gestión de infraestructuras y aplicaciones es Kubernetes. Antes de profundizar en Kubernetes, primero debemos mirar bajo el capó el concepto de contenedores.
Los contenedores son un paquete de software que incluye una recopilación de código específico de la aplicación junto con las bibliotecas de tiempo de ejecución y programas necesarias para admitir la ejecución fiable de una aplicación. Los contenedores están configurados para ejecutarse dentro de un espacio de usuario dentro del sistema operativo (SO) del servidor subyacente. Esta arquitectura permite la desvinculación de servicios básicos y el despliegue ligero de dependencias de una aplicación. Las ventajas de la contenedorización de aplicaciones incluyen mejoras en el aislamiento de la carga de trabajo, la eficiencia de los recursos, la escalabilidad y la tolerancia a fallos.
Para aprovechar la potencia y la eficiencia de los contenedores a escala, necesitamos algún tipo de herramienta para interactuar o gestionar nuestras implementaciones basadas en contenedores. Kubernetes, también conocido como K8s, es una herramienta de orquestación de contenedores de código abierto que automatiza el despliegue de contenedores mediante la creación de un cluster de servidores para los que se pueden ejecutar, escalar y entregar contenedores a los usuarios. La arquitectura de cluster de Kubernetes incluye un nodo maestro (plano de control) y varios nodos de trabajador. Cada trabajador aloja un pod/s (recopilación de contenedores) que entrega la aplicación.
Objetivos
- Trabaje con Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine u OKE) para diferentes tipos de capacidad y resuelva problemas comunes en entornos preferentes.
Requisitos
- Acceso de administrador a un arrendamiento de OCI y cluster de OKE en ejecución.
¿Cómo se posiciona Oracle con la tecnología de contenedores?
OKE es un servicio de Kubernetes totalmente gestionado, ampliable y de alta disponibilidad que ayuda a los clientes a desplegar aplicaciones en contenedores en la nube. OKE ofrece a los clientes de OCI la capacidad de optimizar la utilización de recursos informáticos para cumplir con los requisitos de carga de trabajo únicos y adaptarse rápidamente a medida que cambian los requisitos de carga de trabajo. OKE ofrece una experiencia de cliente perfecta que ofrece a los clientes una relación precio-rendimiento sin precedentes, eficiencia de recursos, portabilidad y fiabilidad. OKE proporciona varias integraciones clave con varios productos de gestión del ciclo de vida de los contenedores, incluidos registros de contenedores, marcos de integración y despliegue continuos, soluciones de redes, opciones de almacenamiento y funciones de seguridad de primer nivel.
En OKE, puede especificar el tipo de cluster como clusters básicos o mejorados. Los clusters básicos soportan todas las funciones principales proporcionadas por OKE. Para activar más capacidades, los clusters mejorados soportan todas las funciones disponibles, como nodos virtuales, nodos autogestionados, gestión de complementos de cluster, configuraciones de Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) más granulares, etc.
OKE en diferentes tipos de capacidad
-
Capacidad on-demand: La capacidad on-demand es la capacidad disponible estándar de un tipo de unidad determinado. Este es el tipo de capacidad por defecto y se paga efectivamente por lo que se utiliza. Si bien esta es la opción estándar, según el tipo de unidad y el tiempo, puede haber dificultades para cumplir estas solicitudes para cargas de trabajo de varias instancias de gran tamaño.
-
Capacidad reservada: las reservas de capacidad se pueden utilizar para aprovisionar nodos gestionados de OKE. Por lo general, las reservas de capacidad se utilizan para garantizar la capacidad disponible suficiente para cargas de trabajo esenciales para el negocio durante los eventos que afectan a la producción, como el mantenimiento planificado, el crecimiento de la demanda del usuario y la recuperación ante desastres. Las reservas de capacidad tienen un costo del 85 % del precio de lista de SKU, mientras que los recursos reservados no se utilizan activamente. Para aprovechar una reserva de capacidad, primero debe crear el objeto de reserva de capacidad y especificar la región/dominio de disponibilidad junto con el tipo de unidad y el tamaño. Una vez creada la reserva de capacidad, puede especificar la reserva específica como tipo de capacidad al desplegar nodos en el pool de nodos.
-
Capacidad preferente: los nodos gestionados de OKE ahora se pueden aprovisionar con unidades de computación preferentes. Las unidades preferentes pueden ser una fuente de ahorro de costos (50 % de descuento del precio de lista de SKU). Sin embargo, Oracle se reserva el derecho de reclamar estos recursos informáticos si es necesario o cuando sea necesario para una demanda de mayor prioridad. Los recursos informáticos preferentes pueden ser una buena opción si tiene cargas de trabajo tolerantes a fallos sin estado que puedan soportar la interrupción. Para obtener visibilidad, puede optar por recibir una notificación cuando se termine una instancia al desplegar recursos informáticos preferentes. En el cluster de OKE, el estado esperado del pool de nodos intentará iniciar una nueva instancia para reemplazar las instancias reclamadas.
Despliegue de OKE con pools de nodos preferentes y OnDemand
Problemas Conocidos con Preemptible
Hay algunos problemas conocidos al utilizar preemptible con OKE.
-
Problema: algunos clientes obtienen el error NonRetryable BmcException: error devuelto por la operación LaunchInstance en el servicio Compute. (400, InvalidParameter, false) No se puede iniciar una instancia preferente con un ID de reserva de capacidad al crear las unidades preferentes E3/E4.
- Solución: hay un bug de OKE conocido con
<capacityreservationId>
vacío y nodos de trabajador preferentes. Si intenta utilizar capacidad preferente al crear un pool de nodos mediante la interfaz de línea de comandos (CLI) de Oracle Cloud Infrastructure o terraform sin transferir el parámetro<capacityReservationId>
como parte de la sección de configuración de ubicación, se pueden crear nodos de trabajador preferentes. Sin embargo, si crea el pool de nodos a través de la consola, se transfiere un valor<capacityReservationId>
vacío por defecto, lo que devolverá un error al intentar utilizar unidades preferentes. La solución alternativa es definir explícitamente<capacityReservationId>
en nulo en la configuración de ubicación.
- Solución: hay un bug de OKE conocido con
-
Problema: cuando utiliza dos pools de nodos (uno con preemptible, el otro con bajo demanda) y utiliza expansores basados en prioridades para el escalador automático. Configuración del pool de nodos preferente como la prioridad más alta, el pool de nodos bajo demanda configurado para utilizarse si el pool de nodos preferente muestra que no está en buen estado debido a un error OutOfHostCapacity con capacidad preferente. En algunos casos, la escala automática del cluster no se realiza de nuevo en el pool de nodos bajo demanda aunque el pool de nodos preferente no esté en buen estado si el pool de nodos tiene 0 nodos.
- Solución: esta configuración funcionará, pero solo cuando ambos pools de nodos tengan un mínimo de 1 nodo cada uno.
-
Problema: al seleccionar capacidad preferente en el asistente de aprovisionamiento de OKE a través de la consola, las unidades AMD disponibles están limitadas a E3 y E4. E5 no se muestra allí; sin embargo, se admite la capacidad preferente E5 para OKE.
-
Solución: cree pools de nodos gestionados con la unidad E5 preferente mediante la API o la CLI.
--node-shape VM.Standard.E5.Flex
-
Tarea 1: pasos para crear un pool de nodos de trabajador de OKE preferente E5 mediante la interfaz de línea de comandos (CLI)
-
Conéctese a la consola de OCI y haga clic en el menú de servicios.
-
Vaya a Servicios para desarrolladores.
-
En Contenedores y artefactos, haga clic en Haga clic en Kubernetes Engine (OKE).
-
Haga clic en OCI Cloud Shell para mostrar la CLI.
-
Edite el OCID
node-pool
, el OCIDcompartment
,subnet-id
,fault domain
, la configuración y el tamaño antes de ejecutar los siguientes comandos de la CLI en su arrendamiento.oci ce node-pool create --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaxlokvt2r25b6dmdxxxxxxxxxxxxxxxxxkhdilj7kpehc5vke2ve5gq --compartment-id ocid1.compartment.oc1..aaaaaaaaqufgrkgzr4zb3dxxxxxxxxxxxxxxxxxxp7jx7yckglghxppfrui6a --name E5_Preemtible --node-shape VM.Standard.E5.Flex --placement-configs '[{"availabilityDomain": "FZyT:US-ASHBURN-AD-2", "preemptibleNodeConfig": {"preemptionAction":{"isPreserveBootVolume":true, "type": "TERMINATE"}}, "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhu72xxxxxxxxxxxxxxxxxxxxtlkp4dmixebzhgrwdlmtteclq", "faultDomains":["FAULT-DOMAIN-1"]}]' --size 1 --node-image-id ocid1.image.oc1.iad.aaaaaaaajvtta4i5sq4xxxxxxxxxxxxxcskfxjwz4vwxz6ersmmax6q --node-shape-config '{"memoryInGBs": 6.0, "ocpus": 1.0}' --pod-subnet-ids '["ocid1.subnet.oc1.iad.aaaaaaaapmekowq4rqhxxxxxxxxxxxxxxxkp4dmixebzhgrwdlmtteclq"]'
De esta forma, se mostrará el OCID de la solicitud de trabajo para crear el pool de nodos y se creará el nodo de trabajador preferente E5 en el cluster existente, como se muestra en la siguiente imagen.
Enlaces relacionados
Agradecimientos
- Autores: Payal Sharma (arquitecto sénior de nube empresarial), Anthony Vernava IV (arquitecto sénior de nube empresarial)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Manage OCI Kubernetes Engine with Different Capacity Types and Resolve Common Issues on Preemptible Nodes
G19910-01
November 2024