Creación de un pool de nodos de trabajador de OKE
Descubra cómo crear pools de nodos de trabajador de OKE en Compute Cloud@Customer para un cluster de carga de trabajo.
Los nodos son instancias informáticas de Compute Cloud@Customer. Al crear un pool de nodos de trabajador, se especifica el número de nodos que se van a crear y otros parámetros que definen las instancias.
No puede personalizar los scripts cloud-init
de OKE.
Para configurar los valores de proxy, use la CLI o la API para definir el proxy en los metadatos del nodo. Si el cluster utiliza redes de pod nativo de VCN, agregue 169.254.169.254 a la configuración de noproxy.
-
En el menú de navegación de la consola de Compute Cloud@Customer, seleccione Contenedores y, a continuación, Clusters de Kubernetes (OKE).
Si el cluster al que desea asociar un pool de nodos no aparece en la lista, seleccione un compartimento diferente en el menú de compartimento de la parte superior de la página.
-
Seleccione el nombre del cluster al que desea agregar un pool de nodos.
-
En la página de detalles del cluster, desplácese a la sección Recursos y seleccione Pools de nodos.
-
En la lista Pools de nodos, seleccione el botón Agregar pool de nodos.
-
En el cuadro de diálogo Agregar pool de nodos, proporcione la siguiente información:
-
Nombre: nombre del nuevo pool de nodos. Evite introducir información confidencial.
-
Compartimento: compartimento en la que se va a crear el nuevo pool de nodos.
-
Opciones de pool de nodos: en el campo Recuento de nodos, introduzca el número de nodos que desea en este pool de nodos. El valor por defecto es 0. El número máximo es de 128 por cluster, que se puede distribuir entre varios pools de nodos.
-
Grupo de seguridad de red: si marca la casilla para activar los grupos de seguridad de red, seleccione Agregar grupo de seguridad de red y seleccione un NSG en la lista desplegable. Puede que necesite cambiar el compartimento para buscar el NSG que desee. La VNIC principal de la subred de trabajador se conectará a este NSG.
-
Configuración de colocación
-
Subred de nodo de trabajador: seleccione una subred que tenga configuración, como la subred "worker" que se describe en Creación de una subred de trabajador (superposición de franela) o Creación de una subred de trabajador (pod nativo de VCN). Para un cluster público, cree la versión privada NAT de la subred "worker". Para un cluster privado, cree la versión privada solo de VCN de la subred de "trabajador". Seleccione solo una subred. La subred debe tener reglas definidas para comunicarse con el punto final del plano de control. La subred debe utilizar una tabla de rutas privada y debe tener una lista de seguridad como la lista de seguridad backend privada descrita en Creación de una subred de trabajador (superposición de franela) o Creación de una subred de trabajador (pod nativo de VCN).
-
Dominio de errores: seleccione un dominio de errores o seleccione Seleccionar automáticamente el mejor dominio de errores, que es la opción por defecto.
-
-
Imagen de origen: seleccione una imagen.
-
Seleccione el tipo de origen de imagen de plataforma.
-
Seleccione una imagen de la lista.
La lista de imágenes tiene columnas Sistema operativo, Versión del sistema operativo y Versión de Kubernetes. Puede utilizar la flecha del menú desplegable situada a la derecha de la versión del sistema operativo o la versión de Kubernetes para seleccionar una versión diferente. Si más de una imagen tiene la misma versión de Kubernetes, seleccione la imagen más reciente, según la fecha en el nombre de la imagen.
Si la imagen que desea utilizar no aparece en la lista, utilice el procedimiento de la CLI y especifique el OCID de la imagen. Para obtener el OCID de la imagen que desea, utilice el comando
ce node-pool get
para un pool de nodos en el que haya utilizado esta imagen anteriormente.Nota
La imagen que especifique no debe tener una versión de Kubernetes que sea más reciente que la versión de Kubernetes especificada al crear el cluster. La versión de Kubernetes para el cluster está en una columna de la tabla de lista de clusters.
-
-
Unidad: seleccione una unidad para los nodos de trabajador. La unidad es VM.PCAStandard.E5. Flexibilidad y no se puede cambiar.
Especifique el número de OCPU que desea. Opcionalmente, puede especificar la cantidad total de memoria que desea. El valor por defecto para gigabytes de memoria es 16 veces el número especificado para las OCPU. Seleccione dentro de cada campo de valor para ver los valores mínimos y máximos permitidos.
-
Volumen de inicio: (opcional) marque la casilla para especificar un tamaño de volumen de inicio personalizado.
Tamaño de volumen de inicio (GB): se muestra el tamaño de volumen de inicio predeterminado para la imagen seleccionada. Para especificar un tamaño mayor, introduzca un valor de 50 a 16384 GB (50 GB a 16 TB) o utilice las flechas de incremento y disminución.
Si especifica un tamaño, deberá ampliar la partición para aprovechar el tamaño más grande. Las imágenes de la plataforma Oracle Linux incluyen el paquete
oci-utils
. Utilice el comandooci-growfs
de ese paquete para ampliar la partición raíz y, a continuación, ampliar el sistema de archivos. Consulte oci-growfs. -
Comunicación de pod (solo clusters de red de pod nativo de VCN)
Subred de comunicación de pod: seleccione una subred que tenga una configuración como la subred "pod" descrita en Creación de una subred de pod ( Pod nativo de VCN).
Número de pods por nodo: número máximo de pods que desea ejecutar en un único nodo de trabajador en un pool de nodos. El valor por defecto es 31. Puede introducir un número del 1 al 110. El número de VNIC permitidas por la unidad que especifique (consulte "Unidad" anterior) limita este número máximo de pods. Consulte Unidades de nodo y número de pods. Para conservar el espacio de dirección de la subred de pod, reduzca el número máximo de pods que desea ejecutar en un único nodo de trabajador. Esto reduce el número de direcciones IP que se asignan previamente en la subred del pod.
Si marca la casilla Usar reglas de seguridad en grupo de seguridad de red (NSG), seleccione el botón Agregar grupo de seguridad de red y seleccione un NSG de la lista desplegable. Puede que necesite cambiar el compartimiento para buscar el NSG que desee. Las VNIC secundarias de la subred del pod se conectarán a este NSG.
-
Cordón y drenaje: (opcional) utilice las flechas para reducir o aumentar el número de minutos de duración de gracia de desalojo. No puede anular la selección de "Forzar terminación después del período de gracia". Los nodos se eliminan después de que sus pods son desalojados o al final de la duración de la gracia de desalojo, incluso si no todos los pods son desalojados.
Para obtener descripciones de la duración de gracia de acordonamiento, drenaje y expulsión, seleccione el separador CLI de esta página y consulte Configuración de supresión de nodos y pools de nodos.
-
Clave SSH: clave SSH pública para los nodos de trabajador. Cargue el archivo de clave pública o copie y pegue el contenido del archivo.
-
Etiquetas de Kubernetes: seleccione el botón Agregar etiqueta de Kubernetes e introduzca un nombre y un valor de clave. Puede utilizar estas etiquetas para los pods de destino para la programación en nodos o grupos de nodos específicos. Consulte la descripción y el ejemplo del procedimiento de la CLI.
-
Etiquetas de pool de nodos: etiquetas definidas o de formato libre para el recurso de pool de nodos.
Nota
No especifique valores para la etiqueta definida OraclePCA-OKE.cluster_id ni para la etiqueta de formato libre ClusterResourceIdentifier. Estos valores de etiqueta se generan por el sistema y solo se aplican a los nodos (instancias), no al recurso del pool de nodos.
-
Etiquetas de nodo: etiquetas definidas o de formato libre que se aplican a cada nodo del pool de nodos.
Importante
No especifique valores para la etiqueta definida OraclePCA-OKE.cluster_id ni para la etiqueta de formato libre ClusterResourceIdentifier. Estos valores de etiqueta se generan por el sistema.
-
-
Seleccione Agregar pool de nodos.
Se muestra la página de detalles del pool de nodos. En Recursos, seleccione Solicitudes de trabajo para ver el progreso de la creación del pool de nodos y ver los nodos que se van a agregar a la lista Nodos. El estado de la solicitud de trabajo es Aceptado hasta que el cluster esté en estado Activo o Con fallos.
Para identificar estos nodos en una lista de instancias, tenga en cuenta que los nombres de estos nodos tienen el formato
oke-ID
, dondeID
es los primeros 32 caracteres después depca_name
en el OCID del pool de nodos. Busque las instancias de la lista cuyos nombres contengan la cadenaID
de este OCID de pool de nodos.Para identificar estos nodos en una lista de instancias, tenga en cuenta que los nombres de estos nodos contienen los primeros 32 caracteres después del
ccc_name
del OCID del pool de nodos y contienen el OCID del cluster en la etiqueta OraclePCA-OKE.cluster_id.
Qué es lo siguiente:
-
Configure los registros o repositorios que necesiten los nodos de trabajador. Asegúrese de tener acceso a un registro de contenedor de intranet o público autogestionado para utilizarlo con el servicio OKE y las imágenes de la aplicación.
-
Cree un servicio para exponer las aplicaciones en contenedores fuera de Compute Cloud@Customer. Consulte Exposición de aplicaciones en contenedores.
-
Cree un almacenamiento persistente para que las aplicaciones lo utilicen. Consulte Adición de almacenamiento para aplicaciones en contenedores.
-
Utilice el comando oci ce node-pool create y los parámetros necesarios para crear un nuevo pool de nodos.
oci ce node-pool create --cluster-id <cluster_OCID> --compartment-id <compartment_OCID> --name <pool_name> --node-shape <node_shape_name> [OPTIONS]
-
Obtenga la información que necesita para ejecutar el comando.
-
OCID del compartimento en el que desea crear el pool de nodos:
oci iam compartment list
-
OCID del cluster para este pool de nodos:
oci ce cluster list
-
El nombre del pool de nodos. Evite introducir información confidencial.
-
Configuración de colocación para los nodos, incluido el OCID de subred de trabajador y el dominio de errores. Consulte la descripción de "Configuración de ubicación" en el procedimiento de la interfaz de usuario web de Compute. Utilice el siguiente comando para mostrar el contenido y el formato de esta opción:
$ oci ce node-pool create --generate-param-json-input placement-configs
Utilice el siguiente comando para mostrar los dominios de errores:
oci iam fault-domain list
. No especifique más de un dominio de errores o más de una subred en la configuración de colocación. Para que el sistema pueda seleccionar los mejores dominios de errores, no especifique ningún dominio de errores. -
(Solo clusters de red de pod nativo de VCN) OCID de la subred de pod. Consulte Creación de una subred de pod ( Pod nativo de VCN). Consulte también la descripción en Comunicación de pod en el procedimiento de interfaz de usuario web de Compute. Utilice la opción
--pod-subnet-ids
. Aunque el valor de la opción--pod-subnet-ids
es una matriz, solo puede especificar un OCID de subred de pod.Número máximo de pods que desea ejecutar en un único nodo de trabajador en un pool de nodos. Utilice la opción
--max-pods-per-node
. El valor por defecto es 31. Puede introducir un número del 1 al 110. El número de VNIC permitidas por la unidad que especifique (consulte "Nombre de la unidad" a continuación) limita este número máximo de pods. Consulte Unidades de nodo y número de pods. Para conservar el espacio de dirección de la subred de pod, reduzca el número máximo de pods que desea ejecutar en un único nodo de trabajador. Esto reduce el número de direcciones IP que se asignan previamente en la subred del pod.(Opcional) OCID del grupo de seguridad de red que se va a utilizar para los pods de este pool de nodos. Utilice la opción
--pod-nsg-ids
. Puede especificar hasta un máximo de cinco NSG. -
OCID de la imagen que se utilizará en los nodos de este pool de nodo.
Utilice el siguiente comando para obtener el OCID de la imagen que desea utilizar:
$ oci compute image list --compartment-id compartment_OCID
Si la imagen que desea utilizar no aparece en la lista, puede obtener el OCID de la imagen de la salida del comando
ce node-pool get
para un pool de nodos en el que haya utilizado esta imagen anteriormente.Nota
La imagen que especifique debe tener
-OKE-
en sudisplay-name
y no debe tener una versión de Kubernetes que sea más reciente que la versión de Kubernetes especificada al crear el cluster.La versión de Kubernetes para el cluster se muestra en la salida
cluster list
. La versión de Kubernetes para la imagen se muestra en la propiedaddisplay-name
en la salidaimage list
. La versión de Kubernetes de la siguiente imagen es 1.29.9."display-name": "uln-pca-Oracle-Linux8-OKE-1.29.9-20250325.oci"
No especifique la opción
--kubernetes-version
en el comandonode-pool create
.Puede especificar un tamaño de volumen de inicio personalizado en gigabytes. El tamaño de volumen de inicio por defecto es de 50 GB. Para especificar un tamaño de volumen de inicio personalizado, utilice la opción
--node-source-details
para especificar el tamaño del volumen de inicio y la imagen. No puede especificar--node-image-id
y--node-source-details
. Utilice el siguiente comando para mostrar el contenido y el formato de la opción de detalles de origen de nodo.$ oci ce node-pool create --generate-param-json-input node-source-details
Si especifica un tamaño, deberá ampliar la partición para aprovechar el tamaño más grande. Las imágenes de la plataforma Oracle Linux incluyen el paquete
oci-utils
. Utilice el comandooci-growfs
de ese paquete para ampliar la partición raíz y, a continuación, ampliar el sistema de archivos. Consulte oci-growfs. -
Nombre de la unidad de los nodos de trabajador en este pool de nodos. Para los sistemas X10 de Compute Cloud@Customer, la unidad de los nodos de plano de control es VM.PCAStandard.E5. Flexibilidad
Especifique la configuración de la unidad, como se muestra en el siguiente ejemplo. Debe proporcionar un valor para
ocpus
. La propiedadmemoryInGBs
es opcional; el valor por defecto en gigabytes es 16 veces el número deocpus
.--node-shape-config '{"ocpus": 32, "memoryInGBs": 512}'
Nota
Asigne al menos 2 OCPU y 32 GB de memoria por cada 10 pods en ejecución. Es posible que necesite asignar más recursos, en función de las cargas de trabajo planificadas. Consulte Resource Management para pods y contenedores.
-
(Opcional) OCID del grupo de seguridad de red que se utilizará para los nodos de este pool de nodos. Utilice la opción
. No especifique más de un NSG.--nsg-ids
-
(Opcional) Etiquetas. La definición de etiquetas en los nodos permite dirigirse a pods para la programación en nodos o grupos de nodos específicos. Utilice esta funcionalidad para garantizar que pods específicos solo se ejecuten en nodos con determinadas propiedades de aislamiento, seguridad o normativas.
Utilice la opción
--initial-node-labels
para agregar etiquetas a los nodos. Las etiquetas son una lista de pares clave/valor que se van a agregar a los nodos después de unirse al cluster de Kubernetes. Consulte Restricciones de clave de metadatos para obtener más información sobre los límites de metadatos.A continuación, se muestra un ejemplo de etiqueta para aplicar a los nodos del pool de nodos:
--initial-node-labels '[{"key":"disktype","value":"ssd"}]
Una forma sencilla de seleccionar nodos en función de sus etiquetas es utilizar
nodeSelector
en la configuración del pod. Kubernetes solo programa el pod en nodos que tienen cada una de las etiquetas especificadas en la secciónnodeSelector
.El siguiente extracto de ejemplo de una configuración de pod especifica que los pods que utilizan esta configuración se deben ejecutar en nodos que tienen la etiqueta de tipo de disco
ssd
:nodeSelector: disktype: ssd
-
(Opcional) Metadatos de nodo. Utilice la opción
para asociar datos de usuario personalizados a nodos. Consulte el siguiente elemento de configuración de proxy para obtener un ejemplo específico.--node-metadata
Consulte Metadata Key Restrictions. El tamaño máximo de los metadatos de nodo es de 32.000 bytes.
-
(Opcional) Configuración de proxy. Si la red necesita configuración de proxy para permitir que los nodos de trabajador lleguen a registros o repositorios externos, por ejemplo, cree un argumento para la opción
.--node-metadata
En el argumento de opción
, proporcione valores para--node-metadata
crio-proxy
ycrio-noproxy
como se muestra en el siguiente argumento de archivo de ejemplo:{ "crio-proxy": "http://<your_proxy>.<your_domain_name>:<your_port>", "crio-noproxy": "localhost,127.0.0.1,<your_domain_name>,ocir.io,<Kubernetes_cidr>,<pods_cidr>" }
Si el cluster utiliza una red de pod nativos de VCN, agregue 169.254.169.254 a la configuración de noproxy, como en el siguiente ejemplo:
"crio-noproxy": "localhost,127.0.0.1,your_domain_name,ocir.io,Kubernetes_cidr,pods_cidr,169.254.169.254"
-
(Opcional) Configuración de supresión de nodos y pools de nodos. Puede especificar cómo manejar la supresión de nodos al suprimir un pool de nodos, suprimir un nodo especificado, reducir el tamaño del pool de nodos o cambiar la configuración de colocación de los nodos del pool de nodos. Estos parámetros de supresión de nodos también se pueden definir o cambiar al actualizar el pool de nodos, suprimir un nodo especificado o suprimir el pool de nodos.
Para especificar la configuración de supresión del pool de nodos, cree un argumento para la opción
--node-eviction-node-pool-settings
. Puede especificar la duración de gracia de expulsión (evictionGraceDuration
) para los nodos. Los nodos siempre se suprimen después de que se expulsan sus pods o al final de la duración de la gracia de desalojo.-
Duración de gracia de expulsión. Este valor especifica la cantidad de tiempo que se permite acordonar y drenar los nodos de trabajador.
Un nodo que está acordonado no puede tener nuevos pods colocados en él. Los pods existentes en ese nodo no se ven afectados.
Cuando se drena un nodo, los contenedores de cada pod terminan correctamente y realizan la limpieza necesaria.
El valor de duración de gracia de expulsión se expresa en formato ISO 8601. El valores por defecto y el máximo son 60 minutos (PT60M). El valor mínimo es 20 segundos (PT20S). OKE siempre intenta drenar los nodos durante al menos 20 segundos.
-
Forzar supresión. Los nodos siempre se suprimen después de que se expulsan sus pods o al final de la duración de la gracia de desalojo. Después de la duración de gracia de expulsión por defecto o especificada, el nodo se suprime, incluso si uno o más contenedores de pod no se drenan por completo.
A continuación, se muestra un argumento de ejemplo para la opción
--node-eviction-node-pool-settings
. Si incluye la propiedadisForceDeleteAfterGraceDuration
, su valor debe sertrue
. Los nodos siempre se suprimen después de que se expulsan sus pods o al final de la duración de la gracia de desalojo.--node-eviction-node-pool-settings '{"evictionGraceDuration": "PT30M", "isForceDeleteAfterGraceDuration": true}'
Nota
Si utiliza Terraform y especifica
node_eviction_node_pool_settings
, debe definir explícitamenteis_force_delete_after_grace_duration
en true, aunque true sea el valor por defecto. El valor de la propiedadis_force_delete_after_grace_duration
no es opcional si utiliza Terraform. -
-
(Opcional) Etiquetas. Agregue etiquetas definidas o de formato libre para el recurso del pool de nodos mediante las opciones
--defined-tags
o--freeform-tags
. No especifique valores para la etiqueta definida OraclePCA-OKE.cluster_id ni para la etiqueta de formato libre ClusterResourceIdentifier. Estos valores de etiqueta se generan por el sistema y solo se aplican a los nodos (instancias), no al recurso del pool de nodos.Para agregar etiquetas definidas o de formato libre a todos los nodos del pool de nodos, utilice las opciones
--node-defined-tags
y--node-freeform-tags
.Importante
No especifique valores para la etiqueta definida OraclePCA-OKE.cluster_id ni para la etiqueta de formato libre ClusterResourceIdentifier. Estos valores de etiqueta se generan por el sistema.
-
-
Ejecute el comando de creación de pool de nodos.
Ejemplo:
Consulte el procedimiento Uso de la consola para obtener información sobre las opciones que se muestran en este ejemplo y otras opciones, como
--node-boot-volume-size-in-gbs
ynsg-ids
. La opción--pod-subnet-ids
solo se aplica si el cluster utiliza redes de pods nativas de VCN.$ oci ce node-pool create \ --cluster-id ocid1.cluster.unique_ID --compartment-id ocid1.compartment.unique_ID \ --name node_pool_name --node-shape shape_name --node-image-id ocid1.image.unique_ID \ --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"ocid1.subnet.unique_ID"}]' \ --pod-subnet-ids '["ocid1.subnet.unique_ID"]' --size 10 --ssh-public-key "public_key_text"
La salida de este comando
node-pool create
es la misma que la salida del comandonode-pool get
. Se muestra el OCID del cluster y se muestra un breve resumen de cada nodo. Para obtener más información sobre un nodo, utilice el comandocompute instance get
con el OCID del nodo.Utilice el comando
work-request get
para comprobar el estado de la operación de creación del pool de nodos. El OCID de la solicitud de trabajo está encreated-by-work-request-id
en la secciónmetadata
de la salidacluster get
.$ oci ce work-request get --work-request-id workrequest_OCID
El estado de la solicitud de trabajo será
ACCEPTED
hasta que el cluster esté en estado Activo o Fallo.Para identificar estos nodos en una lista de instancias, tenga en cuenta que los nombres de estos nodos tienen el formato
oke-ID
, dondeID
es los primeros 32 caracteres después del nombre en el OCID del pool de nodos. Busque las instancias de la lista cuyos nombres contengan la cadenaID
de este OCID de pool de nodos.
Para obtener una lista completa de los comandos, indicadores y opciones de CLI, consulte la Referencia de línea de comando.
Qué es lo siguiente:
-
Configure los registros o repositorios que necesiten los nodos de trabajador. Asegúrese de tener acceso a un registro de contenedor de intranet o público autogestionado para utilizarlo con el servicio OKE y las imágenes de la aplicación.
-
Cree un servicio para exponer las aplicaciones en contenedores fuera de Compute Cloud@Customer. Consulte Exposición de aplicaciones en contenedores.
-
Cree un almacenamiento persistente para que las aplicaciones lo utilicen. Consulte Adición de almacenamiento para aplicaciones en contenedores.
-
Utilice la operación CreateNodePool para crear un nuevo pool de nodos.
Para obtener más información sobre el uso de la API y la firma de solicitudes, consulte API de REST y Credenciales de seguridad. Para obtener información sobre los SDK, consulte Software development kits e interfaz de línea de comandos.
Pasos siguientes:
-
Configure los registros o repositorios que necesiten los nodos de trabajador. Asegúrese de tener acceso a un registro de contenedor de intranet o público autogestionado para utilizarlo con el servicio OKE y las imágenes de la aplicación.
-
Cree un servicio para exponer las aplicaciones en contenedores fuera de Compute Cloud@Customer. Consulte Exposición de aplicaciones en contenedores.
-
Cree un almacenamiento persistente para que las aplicaciones lo utilicen. Consulte Adición de almacenamiento para aplicaciones en contenedores.
-