Reserva de recursos para Kubelet y daemons del sistema operativo en los nodos de Oracle Cloud Infrastructure Kubernetes Engine
Introducción
Al ejecutar cargas de trabajo de Kubernetes en Oracle Cloud Infrastructure Kubernetes Engine (OKE), es esencial asegurarse de que los nodos de trabajador hayan reservado recursos para los componentes de control y los daemons del sistema operativo (SO) de Kubernetes. La reserva adecuada evita la contención de recursos, reduce la presión de memoria y mejora la estabilidad del cluster. Esto es especialmente importante en entornos multiinquilino, cargas de trabajo de alta densidad o cuando se solucionan problemas de presión de nodos. En este tutorial, aprenderá a configurar estas reservas mediante un script cloud-init
personalizado aplicado al crear el pool de nodos. Al utilizar cloud-init
, puede estandarizar estas configuraciones en los nodos del cluster con un esfuerzo mínimo.
Configuración de recursos de Kubelet
Kubelet, el agente de nodo principal de Kubernetes, soporta la gestión de recursos mediante indicadores o archivos de configuración. Puede definir:
- kubeReserved: reserva recursos para daemons de Kubernetes como
kubelet
ykube-proxy
. - systemReserved: reserva recursos para servicios de nivel de sistema operativo como
journald
osshd
.
Objetivos
-
Comprender cómo reservar CPU y memoria para daemons de Kubernetes y del sistema operativo mediante
kubeReserved
ysystemReserved
. -
Despliegue un pool de nodos gestionado con un script
cloud-init
personalizado para aplicar la configuración de Kubelet al iniciar.
Requisitos
-
Acceso a una cuenta de Oracle Cloud Infrastructure (OCI) con permiso para crear clusters y pools de nodos de OKE.
-
Un cluster de OKE existente (o puede crear uno nuevo).
-
Familiaridad básica con Kubernetes y la interfaz de línea de comandos de Oracle Cloud Infrastructure (CLI de OCI).
Paso 1: Escriba el script cloud-init
La siguiente secuencia de comandos cloud-init
crea un archivo de configuración de Kubelet que reserva CPU, memoria y almacenamiento efímero, y define umbrales de expulsión.
#!/bin/bash
curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
bash /var/run/oke-init.sh --kubelet-extra-args "--kube-reserved=cpu=500m,memory=1Gi --system-reserved=cpu=100m,memory=100Mi"
Paso 2: Crear un pool de nodos con el script cloud-init
-
Vaya a la consola de OCI y vaya al cluster de OKE.
-
Seleccione Pools de nodos y, a continuación, haga clic en Agregar pool de nodos para crear uno nuevo o haga clic en Editar para modificar un pool de nodos existente.
-
Defina el pool de nodos con sus preferencias para Nombre, Compartimento, Colocación de nodos, Unidad y Red.
-
En Mostrar opciones avanzadas, haga clic en Pegar script de inicialización de datos en la nube y pegue el script personalizado.
-
Complete el resto de la configuración del pool de nodos y haga clic en Agregar.
Una vez aprovisionados los nodos, la secuencia de comandos se ejecuta en el inicio y aplica las restricciones de recursos automáticamente.
Nota: Si está automatizando la configuración con Terraform, puede transferir el script en el bloque
node_config_details.cloud_init_script
al crear el recurso del pool de nodos.
Acuses de recibo
- Autor: JP Santana (arquitecto maestro de la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Reserve Resources for Kubelet and Operating System Daemons on Oracle Cloud Infrastructure Kubernetes Engine Nodes
G38629-01
Copyright ©2025, Oracle and/or its affiliates.