Gestisci lo storage effimero su Kubernetes
I pod Kubernetes richiedono uno storage locale effimero (temporaneo).
I pod Kubernetes utilizzano storage effimero per lo spazio vuoto, l'inserimento nella cache e i log. Questa memoria è temporanea e specifica per il ciclo di vita del pod. Lo storage effimero non viene condiviso tra i pod e se ne va quando il pod viene eliminato.
Per informazioni più generali sullo storage effimero di Kubernetes, consulta Storage effimero locale nella documentazione di Kubernetes.
I passi riportati di seguito si applicano a Oracle Kubernetes Engine, ma i concetti sono simili in altri ambienti Kubernetes.
In un pool di nodi, i nodi utilizzano i relativi volumi di avvio per lo storage dei pod. Poiché le immagini vengono memorizzate nella directory /var
, la maggior parte della memoria effimera viene occupata dalle immagini nella partizione radice. Lo spazio necessario nel volume di avvio aumenta ogni volta che si installa un'istanza di Oracle Blockchain Platform Enterprise Edition e si creano codici concatenati su tale nodo.
kubectl get --raw "/api/v1/nodes/<node IP>/proxy/stats/summary"
Le sezioni rootfs
e fs
del risultato JSON mostrano la capacità e i byte disponibili.
Puoi aggiornare la quantità di storage effimero ridimensionando il volume di avvio mentre un nodo è in esecuzione. Per ulteriori informazioni, vedere Aggiornamento di un pool di nodi per Oracle Kubernetes Engine.
- Nel cluster Oracle Kubernetes Engine, in Risorse, selezionare Pool di nodi.
- Fare clic Modifica. Nella pagina Modifica pool di nodi selezionare Specificare una dimensione del volume di avvio personalizzata, quindi immettere un valore in GB per la dimensione del volume di avvio. Qualsiasi nodo creato utilizzerà questo valore per lo storage effimero.
- Per ogni nodo di lavoro nel pool di nodi, attenersi alla procedura riportata di seguito per ridimensionare il volume di avvio.
- Fare clic sulla freccia giù accanto al nodo per visualizzare informazioni dettagliate sul nodo.
- Passare al volume di boot del nodo, quindi fare clic su Modifica.
- Nella pagina Modifica volume in Dimensione e prestazioni volume, specificare un valore in Dimensione volume in GB, quindi fare clic su Salva modifiche.
- Completare i passi riportati di seguito per impostare una sessione bastion e utilizzarla per connettersi ai nodi di lavoro privati.
- Nella pagina dei dettagli dell'istanza fare clic sulla scheda Agente Oracle Cloud, quindi abilitare il plugin Bastion.
- Cercare bastion nella barra di ricerca, quindi fare clic su Identità e sicurezza Bastion in Servizi nei risultati.
- Fare clic su Crea bastion.
- Nella pagina Crea bastion, per la rete cloud virtuale di destinazione (VCN) specificare la VCN Oracle Kubernetes Engine seguita dal nome del cluster. Per la subnet di destinazione, specificare l'endpoint API Kubernetes. Per Lista di inclusione blocchi CIDR, immettere 0.0.0.0/0, quindi fare clic su Crea bastion.
- Fare clic sul bastion per aprirlo, quindi fare clic su Crea sessione.
- Immettere opc per il valore Nome utente e selezionare il nodo dalla lista Istanza di computazione.
- Incollare la chiave SSH in Aggiungi chiave SSH.
- Fare clic su Mostra opzioni avanzate, quindi selezionare l'indirizzo IP del nodo o dell'istanza dalla lista Indirizzo IP dell'istanza di computazione di destinazione. Si tratta dell'indirizzo IPv4 privato del nodo o dell'istanza, disponibile nella sezione delle informazioni per l'istanza.
- Fare clic su Crea sessione.
- Nel menu di scelta rapida della sessione, fare clic su Copia comando SSH.
- Ora è possibile eseguire il login al nodo tramite SSH fornendo la chiave privata con il parametro -i nel comando SSH.
- Ripetere i passi precedenti per ciascun nodo di lavoro nel cluster.
- Per ogni nodo, eseguire il login al nodo tramite SSH, quindi eseguire i comandi seguenti, che eseguono la scansione dei nuovi dispositivi di storage a blocchi aggiunti alle istanze o ai nodi, quindi espandere il file system quando lo storage è disponibile.
sudo dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1 echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan sudo /usr/libexec/oci-growfs -y
Determinazione dell'uso dello storage effimero
Puoi eseguire lo script seguente per vedere l'uso effimero dello storage di un'istanza in esecuzione su Oracle Kubernetes Engine. Lo script utilizza l'API Kubernetes per recuperare l'uso effimero dello storage per ogni pod in esecuzione su ciascun nodo del cluster.
#!/usr/bin/env bash
kubectl proxy --append-server-path &
set -eo pipefail
{
echo "NODE NAMESPACE POD EPHEMRAL_USED"
for node in $(kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
curl -fsSL "http://127.0.0.1:8001/api/v1/nodes/$node/proxy/stats/summary" |
yq '.pods[] | [.podRef.namespace, .podRef.name, .ephemeral-storage.usedBytes] | join(" ")' |
while read -r namespace name usedBytes; do
# A pod might have no running containers and consequently no ephemeral-storage usage.
echo "$node" "$namespace" "$name" "$(numfmt --to iec "${usedBytes:-0}")"
done
done | sort -k4,4rh
} | column -t