Adición de pools de nodos para escalar clusters verticalmente
Descubra cómo ampliar clusters agregando pools de nodos mediante Kubernetes Engine (OKE).
Puede escalar verticalmente los clusters agregando pools de nodos mediante la consola, la CLI y la API.
Para escalar verticalmente un cluster existente aumentando el número de pools de nodos en el cluster mediante la consola:
- Abra el menú de navegación y seleccione Servicios para desarrolladores. En Contenedores y artefactos, seleccione Clusters de Kubernetes (OKE).
- Seleccione un compartimento en el que tenga permiso para trabajar.
- En la página Lista de cluster, seleccione el nombre del cluster al que desea modificar.
- En Recursos, seleccione Pools de nodos.
- Seleccione el botón Agregar pool de nodos y amplíe el cluster agregando pools de nodos.
- Introduzca los detalles del nuevo pool de nodos:
- Nombre: un nombre que elija para el nuevo pool de nodos. Evite introducir información confidencial.
- Compartimento: compartimento en la que se va a crear el nuevo pool de nodos.
- Tipo de nodo: si el tipo de red del cluster es red de pod nativo de VCN, especifique el tipo de nodos de trabajador en este pool de nodos (consulte Nodos virtuales y nodos gestionados). Seleccione una de las opciones siguientes:
- Gestionado: seleccione esta opción cuando desee tener la responsabilidad de gestionar los nodos de trabajador en el pool de nodos. Nodos gestionados que se ejecutan en las instancias informáticas (tanto con hardware dedicado o máquina virtual) de su arrendamiento. Puesto que es responsable de administrar los nodos gestionados, con la posibilidad de configurarlos para cumplir sus requisitos específicos. Usted se encarga de cambiar la versión de Kubernetes en los nodos gestionados y de gestionar la capacidad del cluster.
- Virtual: seleccione esta opción cuando desee beneficiarse de una experiencia de Kubernetes "sin servidor". Los nodos virtuales permiten ejecutar pods de Kubernetes a escala sin la sobrecarga operativa que supone actualizar la infraestructura del plano de datos y gestionar la capacidad de los clusters.
Para obtener más información, consulte Comparing Virtual Nodes with Managed Nodes.
-
Versión: (solo pools de nodos gestionados) versión de Kubernetes que se va a ejecutar en cada nodo gestionado en un pool de nodos gestionados. Por defecto, la versión de Kubernetes especificada para los nodos de plano de control está seleccionada. La versión de Kubernetes en nodos de trabajador debe ser la misma que la de los nodos de plano de control o una versión anterior que aún sea compatible. Consulte Versiones de Kubernetes y Kubernetes Engine (OKE).
Tenga en cuenta que si especifica una imagen de OKE para nodos de trabajador, la versión de Kubernetes que seleccione aquí debe ser la misma que la versión de Kubernetes en la imagen de OKE.
- Si el tipo de red del cluster es red de pod nativo de VCN y ha seleccionado Gestionado como Tipo de nodo, o si el tipo de red del cluster es Superposición de franela:
-
Especifique los detalles de configuración para el pool de nodos gestionados:
- Configuración de colocación de nodo:
- Dominio de Disponibilidad: dominio de Disponibilidad en el que colocar nodos de trabajador.
- Subred de nodo de trabajador: subred regional (recomendada) o subred específica del dominio de disponibilidad configurada para alojar nodos de trabajador. Si especificó subredes de equilibrador de carga, las subredes de nodos de trabajador deben ser diferentes. Las subredes que especifique pueden ser privadas (recomendadas) o públicas. Consulte Configuración de subred.
- Dominios de errores: (opcional) uno o más dominios de errores en el dominio de disponibilidad en el que colocar los nodos de trabajador.
Opcionalmente, seleccione Mostrar opciones avanzadas para especificar un tipo de capacidad que utilizar (consulte Gestión de tipos de capacidad de nodo de trabajador). Si especifica una reserva de capacidad, asegúrese de que la unidad de nodo, el dominio de disponibilidad y el dominio de errores de la configuración de colocación del pool de nodos coincidan con el tipo de instancia, el dominio de disponibilidad y el dominio de errores de la reserva de capacidad, respectivamente. Consulte Uso de reservas de capacidad para aprovisionar nodos gestionados.
De manera opcional, seleccione Otra fila para seleccionar dominios y subredes adicionales donde colocar nodos de trabajador.
Cuando se crean los nodos de trabajador, se distribuyen lo más equitativamente posible en los dominios de disponibilidad y los dominios de errores que seleccione. Si no selecciona ningún dominio de errores para un dominio de disponibilidad concreto, los nodos de trabajador se distribuyen lo más equitativamente posible en todos los dominios de errores de ese dominio de disponibilidad.
-
Unidad de nodo: unidad que se utilizará para nodos de trabajador en el pool de nodos. La unidad de computación determina el número de CPU y la cantidad de memoria asignada a cada nodo.
Solo se muestran aquellas unidades de computación disponibles en el arrendamiento soportadas por Kubernetes Engine.
Si selecciona una unidad flexible, puede especificar explícitamente el número de CPU y la cantidad de memoria.
Consulte Imágenes soportadas (incluidas imágenes personalizadas) y unidades para nodos de trabajador.
-
Imagen: la imagen que se utilizará en todos los nodos de trabajador del pool. Una imagen es una plantilla de una unidad de disco duro virtual que determina el sistema operativo y otro software para el nodo.
Para cambiar la imagen por defecto, seleccione Cambiar imagen. En la ventana Examinar todas las imágenes, seleccione un origen de imagen y seleccione una imagen como se indica a continuación:
-
Imágenes de nodos de trabajador de OKE: se recomienda. Proporcionado por Oracle y basado en imágenes de plataforma. Las imágenes de OKE están optimizadas para servir como imágenes base para los nodos de trabajador, con todas las configuraciones necesarias y el software necesario. Seleccione una imagen de OKE si desea minimizar el tiempo que se tarda en aprovisionar nodos de trabajador en tiempo de ejecución en comparación con las imágenes de plataforma y las imágenes personalizadas.
Los nombres de imagen de OKE incluyen el número de versión de la versión de Kubernetes que contienen. Tenga en cuenta que si especifica una versión de Kubernetes para el pool de nodos, la imagen de OKE que seleccione aquí debe tener el mismo número de versión que la versión de Kubernetes del pool de nodos.
- Imágenes de plataforma: proporcionadas por Oracle y que solo contienen un sistema operativo Oracle Linux. Seleccione una imagen de plataforma si desea que Kubernetes Engine descargue, instale y configure el software necesario cuando la instancia informática que aloja un nodo de trabajador se inicie por primera vez.
Consulte Imágenes soportadas (incluidas imágenes personalizadas) y unidades para nodos de trabajador.
-
- Recuento de nodos: el número de nodos de trabajador que hay que crear en el pool de nodo, situado en los dominios de disponibilidad que seleccione, y en la subred regional (recomendado) o en el subred específica de dominio que especifique para cada dominio del servicio.
- Usar reglas de seguridad en el grupo de seguridad de red (NSG): controle el acceso al pool de nodos mediante reglas de seguridad definidas para uno o más grupos de seguridad de red (NSG) que especifique (hasta un máximo de cinco). Puede utilizar reglas de seguridad definidas para los NSG en lugar de las definidas para las listas de seguridad (se recomiendan los NSG). Para obtener más información sobre las reglas de seguridad que se deben especificar para el NSG, consulte Reglas de seguridad para los nodos de trabajador.
-
Volumen de inicio: configure las opciones de tamaño y cifrado para el volumen de inicio del nodo de trabajador:
- Para especificar un tamaño personalizado para el volumen de inicio, seleccione la casilla de control Especificar un tamaño de volumen de inicio. A continuación, introduzca un tamaño personalizado de 50 GB a 32 TB. El tamaño especificado debe ser mayor que el tamaño de volumen de inicio por defecto para la imagen seleccionada. Consulte Tamaños de volumen de inicio personalizado para obtener más información.
Tenga en cuenta que si aumenta el tamaño del volumen de inicio, también debe ampliar la partición del volumen de inicio (la partición raíz) para aprovechar el tamaño más grande. Consulte Ampliación de la partición para un volumen de inicio. Las imágenes de la plataforma Oracle Linux incluyen el paquete
oci-utils
. Puede utilizar el comandooci-growfs
de ese paquete en un script cloud-init personalizado para ampliar la partición raíz y, a continuación, aumentar el sistema de archivos. Para obtener más información, consulte Ampliación de la partición raíz de nodos de trabajador. - Para las instancias de VM, opcionalmente puede seleccionar la casilla de control Usar cifrado en tránsito. Para las instancias dedicadas que soportan el cifrado en tránsito, se activa por defecto y no se puede configurar. Consulte Cifrado en tránsito para obtener más información sobre el cifrado en tránsito. Si utiliza su propia clave de cifrado para el volumen de inicio, esta clave también se utiliza para el cifrado en tránsito. De lo contrario, se utiliza la clave de cifrado proporcionada por Oracle.
- Los volúmenes de inicio se cifran por defecto, pero, opcionalmente, puede utilizar su propia clave del cifrado de servicio Vault para cifrar los datos en este volumen. Para utilizar el servicio de almacén para sus necesidades del cifrado, seleccione la casilla de controlCifre este volumen con una clave que gestione. Seleccione el compartimento de almacén y el almacén que contiene la clave de cifrado maestra que desea utilizar y, a continuación, seleccione el compartimento de clave de cifrado maestra y la clave de cifrado maestra. Si activa esta opción, esta clave se utiliza tanto para el cifrado de datos como para el cifrado en tránsito.Importante
El servicio Block Volume no soporta el cifrado de volúmenes con claves cifradas mediante el algoritmo Rivest-Shamir-Adleman (RSA). Al utilizar sus propias claves, debe utilizar claves cifradas con el algoritmo Estándar de cifrado avanzado (AES). Esto se aplica a los volúmenes en bloque y los volúmenes de inicio.
Tenga en cuenta que para utilizar su propia clave de cifrado del servicio Vault para cifrar los datos, una política de IAM debe otorgar acceso a la clave de cifrado del servicio. Consulte Create Policy to Access User-Managed Encryption Keys for Encrypting Boot Volumes, Block Volumes, and/or File Systems.
- Para especificar un tamaño personalizado para el volumen de inicio, seleccione la casilla de control Especificar un tamaño de volumen de inicio. A continuación, introduzca un tamaño personalizado de 50 GB a 32 TB. El tamaño especificado debe ser mayor que el tamaño de volumen de inicio por defecto para la imagen seleccionada. Consulte Tamaños de volumen de inicio personalizado para obtener más información.
- Comunicación de pod: cuando el tipo de red del cluster es red de pod nativo de VCN, especifique cómo los pods del pool de nodos se comunican entre sí mediante una subred de pod:
- Subred: subred regional configurada para alojar pods. La subred de pod que especifique debe ser privada. En algunas situaciones, la subred del nodo de trabajador y la subred del pod pueden ser la misma subred (en cuyo caso, Oracle recomienda definir reglas de seguridad en los grupos de seguridad de red en lugar de en las listas de seguridad). Consulte Configuración de subred.
- Usar reglas de seguridad en el grupo de seguridad de red (NSG): controle el acceso a la subred de pod mediante reglas de seguridad definidas para uno o más grupos de seguridad de red (NSG) que especifique (hasta un máximo de cinco). Puede utilizar reglas de seguridad definidas para los NSG en lugar de las definidas para las listas de seguridad (se recomiendan los NSG). Para obtener más información sobre las reglas de seguridad que se deben especificar para el NSG, consulte Reglas de seguridad para nodos y pods de trabajador.
Opcionalmente, seleccione Mostrar opciones avanzadas para especificar el número máximo de pods que desea ejecutar en un solo nodo de trabajador en un pool de nodos, hasta un límite de 110. El límite de 110 lo impone Kubernetes. Si desea más de 31 pods en un solo nodo de trabajador, la unidad que especifique para el pool de nodos debe admitir tres o más VNIC (una VNIC para conectarse a la subred del nodo de trabajador y al menos dos VNIC para conectarse a la subred del pod). Consulte Maximum Number of VNICs and Pods Supported by Different Shapes.
Para obtener más información sobre la comunicación de pod, consulte Redes de pod.
- Configuración de colocación de nodo:
-
Acepte los valores por defecto de las opciones avanzadas del pool de nodos o seleccione Mostrar opciones adelantadas y especifique alternativas a la siguiente forma:
-
Cordón y drenaje: especifique cuándo y cómo acordonar y drenar los nodos de trabajador antes de cesarlos.
- Período de gracia de expulsión (minutos): período de tiempo que se permite acordonar y drenar los nodos de trabajador antes de cesarlos. Acepte el valor predeterminado (60 minutos) o especifique una alternativa. Por ejemplo, al reducir un pool de nodos o cambiar su configuración de ubicación, puede que desee permitir 30 minutos para acordonar nodos de trabajador y vaciarlos de sus cargas de trabajo. Para cesar los nodos de trabajador inmediatamente, sin acordonarlos ni drenarlos, especifique 0 minutos.
- Forzar terminación después del período de gracia: al sustituir nodos o suprimir nodos en el pool de nodos, si se deben terminar los nodos de trabajador al final del período de gracia de expulsión, incluso si no se han corregido y drenado correctamente. Por defecto, esta opción no está seleccionada.
- Forzar acción después del período de gracia: al realizar tareas de mantenimiento en nodos de trabajador (como reiniciar un nodo y sustituir el volumen de inicio de un nodo), si se debe realizar la acción al final del período de gracia de expulsión, incluso si el nodo de trabajador no se ha corregido y drenado correctamente. Por defecto, esta opción no está seleccionada.
Los pools de nodos que contienen nodos de trabajador que no se pueden cerrar ni terminar en el período de gracia de expulsión tienen el estado Necesita atención. El estado de la solicitud de trabajo que inició la operación de cese se define en Fallo y la operación de cese se cancela. Para obtener más información, consulte Monitoring Clusters.
Para obtener más información, consulte Cordoning and Draining Managed Nodes Before Shut Down or Termination.
- Script de inicialización: (opcional) script para que cloud-init se ejecute en cada instancia que aloja nodos de trabajador cuando la instancia se inicia por primera vez. El script que especifique debe escribirse en uno de los formatos admitidos por cloud-init (por ejemplo, cloud-config) y debe ser un tipo de archivo admitido (por ejemplo, .yaml). Especifique el script como se indica a continuación:
- Seleccionar script de inicialización de nube: seleccione un archivo que contenga el script de inicialización de nube o arrastre y suelte el archivo en el cuadro.
- Pegar script de inicialización de nube: copie el contenido de un script de inicialización de nube y péguelo en el cuadro.
Si no ha escrito previamente scripts cloud-init para inicializar nodos de trabajador en clusters creados por Kubernetes Engine, puede que le resulte útil seleccionar Descargar plantilla de script cloud-init personalizada. El archivo descargado contiene la lógica por defecto proporcionada por Kubernetes Engine. Puede agregar su propia lógica personalizada antes o después de la lógica predeterminada, pero no modifique la lógica predeterminada. Para ver ejemplos, consulte Casos de uso de ejemplo para scripts personalizados de Cloud-init.
- Etiquetas de Kubernetes: (opcional) una o varias etiquetas (además de una etiqueta por defecto) para agregar a los nodos de trabajador en el pool de nodos a fin de permitir el targeting de cargas de trabajo en pools de nodos específicos. Por ejemplo, para excluir todos los nodos de un pool de nodos de la lista de servidores backend de un juego de backends del equilibrador de carga, especifique
node.kubernetes.io/exclude-from-external-load-balancers=true
(consulte node.kubernetes.io/exclude-from-external-load-balancers). - Etiquetas de pool de nodos y Etiquetas de nodo: (opcional) una o más etiquetas para agregar al pool de nodos y a instancias informáticas que alojan nodos de trabajador en el pool de nodos. El etiquetado permite agrupar recursos dispares en compartimentos y, además, permite anotar recursos con sus propios metadatos. Consulte Etiquetado de recursos relacionados en clusters de Kubernetes.
- Clave SSH pública: (opcional) la parte de la clave pública del par de claves que desea utilizar para el acceso SSH a cada nodo del pool de nodos. La clave pública está instalada en todos los nodos de trabajador del cluster. Tenga en cuenta que si no especifica una clave SSH pública, Kubernetes Engine proporcionará una. Sin embargo, puesto que no tendrá la clave privada correspondiente, no tendrá acceso SSH a los nodos de trabajador. Debe tener en cuenta que no puede utilizar SSH para acceder directamente a ningún nodo del trabajador en subredes privadas (consulte Conexión a nodos gestionados en subredes privadas mediante SSH).
-
-
- Si ha seleccionado Virtual como Tipo de nodo:
- Especifique los detalles de configuración para el pool de nodos virtuales:
- Configuración de colocación de nodo:
- Dominio de Disponibilidad: dominio de Disponibilidad en el que colocar nodos virtuales.
- Dominios de errores: (opcional) uno o más dominios de errores en el dominio de disponibilidad en el que colocar los nodos virtuales.
De manera opcional, seleccione Otra fila para seleccionar dominios y subredes adicionales en los que colocar los nodos virtuales.
Cuando se crean los nodos virtuales, se distribuyen lo más equitativamente posible en los dominios de disponibilidad y los dominios de errores que seleccione. Si no selecciona ningún dominio de errores para un dominio de disponibilidad concreto, los nodos virtuales se distribuyen lo más equitativamente posible en todos los dominios de errores de ese dominio de disponibilidad.
- Recuento de nodos: el número de nodos virtuales que hay que crear en el pool de nodo virtual, situado en los dominios de disponibilidad que seleccione, y en la subred regional (recomendado) o en el subred específica de dominio que especifique para cada dominio del servicio.
-
Unidad de pod: la unidad que se utilizará para los pods que se ejecutan en nodos virtuales en el pool de nodos virtuales. La unidad determina el tipo de procesador en el que se va a ejecutar el pod.
Solo se muestran aquellas unidades de computación disponibles en el arrendamiento soportadas por Kubernetes Engine. Consulte Imágenes soportadas (incluidas imágenes personalizadas) y unidades para nodos de trabajador.
Tenga en cuenta que especifica explícitamente los requisitos de recursos de CPU y memoria para los nodos virtuales en la especificación de pod (consulte Asignación de recursos de memoria a contenedores y pods y Asignación de recursos de CPU a contenedores y pods en la documentación de Kubernetes).
- Comunicación de nodo virtual:
- Subred: una subred regional (recomendado) o subred específica de AD configurada para alojar nodos virtuales. Si especificó subredes del equilibrio de carga, las subredes del nodo virtual deben ser diferentes. Las subredes que especifique pueden ser privadas (recomendado) o públicas y pueden ser regionales (recomendado) o específicas de dominio de disponibilidad. Recomendamos que la subred de pod y la subred de nodo virtual sean la misma subred (en cuyo caso, la subred de nodo virtual debe ser privada). Consulte Configuración de subred.
- Usar reglas de seguridad en el grupo de seguridad de red (NSG): controle el acceso a la subred del nodo virtual mediante reglas de seguridad definidas para uno o más grupos de seguridad de red (NSG) que especifique (hasta un máximo de cinco). Puede utilizar reglas de seguridad definidas para los NSG en lugar de las definidas para las listas de seguridad (se recomiendan los NSG). Para obtener más información sobre las reglas de seguridad que se deben especificar para el NSG, consulte Reglas de seguridad para nodos y pods de trabajador.
- Comunicación de pod: los pods que se ejecutan en nodos virtuales utilizan redes de pods nativas de VCN. Especifique cómo se comunican los pods del pool de nodos entre sí mediante una subred de pod:
- Subred: subred regional configurada para alojar pods. La subred de pod que especifique para los nodos virtuales debe ser privada. Recomendamos que la subred de pod y la subred de nodo virtual sean la misma subred (en cuyo caso, Oracle recomienda definir reglas de seguridad en los grupos de seguridad de red en lugar de en las listas de seguridad). Consulte Configuración de subred.
- Usar reglas de seguridad en el grupo de seguridad de red (NSG): controle el acceso a la subred de pod mediante reglas de seguridad definidas para uno o más grupos de seguridad de red (NSG) que especifique (hasta un máximo de cinco). Puede utilizar reglas de seguridad definidas para los NSG en lugar de las definidas para las listas de seguridad (se recomiendan los NSG). Para obtener más información sobre las reglas de seguridad que se deben especificar para el NSG, consulte Reglas de seguridad para nodos y pods de trabajador.
Para obtener más información sobre la comunicación de pod, consulte Redes de pod.
- Configuración de colocación de nodo:
-
Acepte los valores por defecto de las opciones avanzadas del pool de nodos virtuales o seleccione Mostrar opciones adelantadas y especifique otras de la siguiente forma:
- Etiquetas de pool de nodos: (opcional) una o más etiquetas para agregar al pool de nodos virtuales. El etiquetado permite agrupar recursos dispares en compartimentos y, además, permite anotar recursos con sus propios metadatos. Consulte Etiquetado de recursos relacionados en clusters de Kubernetes.
- Etiquetas y contaminantes de Kubernetes: (opcional) active el direccionamiento de cargas de trabajo en pools de nodos específicos agregando etiquetas y contaminantes a nodos virtuales:
- Etiquetas: una o varias etiquetas (además de una etiqueta por defecto) para agregar a los nodos virtuales en el grupo de nodos virtuales a fin para permitir el targeting de cargas de trabajo en pools de nodo específicos.
- Pantallas: una o más manchas que agregar a los nodos virtuales en el pool de nodos virtuales. Los mantos permiten que los nodos virtuales repelan los pods, lo que garantiza que los pods no se ejecuten en nodos virtuales en un pool de nodos virtuales concreto. Tenga en cuenta que solo puede aplicar contaminantes a los nodos virtuales.
Para obtener más información, consulte Asignación de pods a nodos en la documentación de Kubernetes.
- Especifique los detalles de configuración para el pool de nodos virtuales:
- Seleccione Agregar para crear el nuevo pool de nodos.
Utilice el comando oci ce node-pool create y los parámetros necesarios para escalar verticalmente un cluster agregando un pool de nodos gestionado:
oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name <node-pool-name> --node-shape <shape>
Utilice el comando
oci ce virtual-node-pool create
y los parámetros necesarios para escalar verticalmente un cluster agregando un pool de nodos virtual:oci ce virtual-node-pool create \ --cluster-id <cluster-ocid> \ --compartment-id <compartment-ocid> \ --display-name <node-pool-name> \ --kubernetes-version <kubernetes-version> \ --placement-configurations "[{\"availabilityDomain\":\"<ad-name>\",\"faultDomain\":[\"FAULT-DOMAIN-<n>\"],\"subnetId\":\"<virtualnode-subnet-ocid>\"}]" \ --nsg-ids "[\"<virtual-node-nsg-ocid>\"]" \ --pod-configuration "{\"subnetId\":\"<pod-subnet-ocid>\",\"nsgIds\":[\"<pod-nsg-ocid>\"],\"shape\":\"<shape-name>\"}" \ --size <number-of-nodes>
donde:<ad-name>
es el nombre del dominio de disponibilidad en el que colocar los nodos virtuales. Para averiguar el nombre de dominio de disponibilidad que se va a utilizar, ejecute:oci iam availability-domain list
<shape-name>
es uno de los siguientes:Pod.Standard.E3.Flex
,Pod.Standard.E4.Flex
.
Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de comandos de CLI.
Ejecute la operación CreateNodePool para escalar verticalmente un cluster agregando un pool de nodos gestionado.
Ejecute la operación CreateVirtualNodePool para escalar verticalmente un cluster agregando un pool de nodos virtual.