Riserva le risorse per i daemon di Kubelet e del sistema operativo sui nodi di Oracle Cloud Infrastructure Kubernetes Engine
Introduzione
Quando si eseguono carichi di lavoro Kubernetes su Oracle Cloud Infrastructure Kubernetes Engine (OKE), è essenziale garantire che i nodi di lavoro abbiano risorse riservate per i componenti di controllo Kubernetes e i daemon del sistema operativo (OS). Una prenotazione corretta impedisce conflitti di risorse, riduce la pressione della memoria e migliora la stabilità del cluster. Ciò è particolarmente importante negli ambienti multi-tenant, nei carichi di lavoro ad alta densità o nella risoluzione dei problemi di pressione dei nodi. In questa esercitazione verrà descritto come configurare queste prenotazioni utilizzando uno script cloud-init
personalizzato applicato alla creazione del pool di nodi. Sfruttando cloud-init
, puoi standardizzare queste configurazioni sui nodi del cluster con il minimo sforzo.
Configurazione delle risorse Kubelet
Kubelet, l'agente nodo principale in Kubernetes, supporta la gestione delle risorse tramite flag o file di configurazione. È possibile definire quanto riportato di seguito.
- kubeReserved: riserva le risorse per i daemon Kubernetes come
kubelet
ekube-proxy
. - systemReserved: riserva le risorse per i servizi a livello di sistema operativo come
journald
osshd
.
Obiettivi
-
Scopri come prenotare CPU e memoria per i daemon Kubernetes e del sistema operativo utilizzando
kubeReserved
esystemReserved
. -
Distribuire un pool di nodi gestiti con uno script
cloud-init
personalizzato per applicare la configurazione Kubelet all'avvio.
Prerequisiti
-
Accesso a un account Oracle Cloud Infrastructure (OCI) con l'autorizzazione per creare cluster e pool di nodi OKE.
-
Un cluster OKE esistente (o è possibile crearne uno nuovo).
-
Familiarità di base con l'interfaccia CLI (Command Line Interface) di Kubernetes e Oracle Cloud Infrastructure.
Passo 1: scrivere lo script cloud-init
Lo script cloud-init
riportato di seguito crea un file di configurazione Kubelet che prenota CPU, memoria e storage effimero e imposta le soglie di rimozione.
#!/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"
Passo 2: creare un pool di nodi con lo script cloud-init
-
Andare a OCI Console e andare al cluster OKE.
-
Selezionare Pool di nodi, quindi fare clic su Aggiungi pool di nodi per crearne uno nuovo oppure fare clic su Modifica per modificare un pool di nodi esistente.
-
Impostare il pool di nodi con le preferenze per Nome, Compartimento, Posizionamento dei nodi, Forma e Networking.
-
In Mostra opzioni avanzate, fare clic su Incolla script di inizializzazione cloud e incollare lo script personalizzato.
-
Completare le altre impostazioni del pool di nodi e fare clic su Aggiungi.
Una volta eseguito il provisioning dei nodi, lo script viene eseguito al boot e applica automaticamente i vincoli delle risorse.
Nota: se si sta automatizzando l'impostazione con Terraform, è possibile passare lo script nel blocco
node_config_details.cloud_init_script
quando si crea la risorsa del pool di nodi.
Conferme
- Autore: JP Santana (Master Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Reserve Resources for Kubelet and Operating System Daemons on Oracle Cloud Infrastructure Kubernetes Engine Nodes
G38632-01
Copyright ©2025, Oracle and/or its affiliates.