Informazioni sulla risorsa personalizzata ClusterCIDRConfig
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Panoramica
ClusterCIDRConfig è una risorsa di allocazione CIDR personalizzata che ti consente di allocare dinamicamente più intervalli di indirizzi IP per i pod.
IP Address Management (IPAM) consente un utilizzo efficiente delle subnet IP ed evita
sovrapposizioni negli intervalli di indirizzi, il che previene conflitti e interruzioni di rete.
Kubernetes assegna i CIDR dei pod per nodo, che vengono utilizzati come indirizzi IP per i pod
in esecuzione su quel nodo.
L'attuale NodeIPAM di Kubernetes presenta le seguenti limitazioni:
Tutti i CIDR pod vengono allocati da un unico CIDR cluster. Devi specificare l'intero intervallo di indirizzi IP tenendo conto del cluster più grande al momento della creazione del cluster. Questa limitazione può sprecare indirizzi IP.
Se aumenti le dimensioni del cluster, è difficile aggiungere altri indirizzi IP.
Il CIDR del cluster è un intervallo ampio. Potrebbe essere difficile trovare un blocco contiguo di indirizzi IP che soddisfino le esigenze del cluster.
Ogni nodo riceve un intervallo IP di dimensioni fisse all'interno di un cluster. Se i nodi hanno
dimensioni e capacità diverse, non puoi allocare un intervallo di pod più grande a un
determinato nodo con capacità maggiore e un intervallo più piccolo ai nodi con capacità
inferiore. In questo modo si sprecano molti indirizzi IP. Per un cluster di grandi dimensioni con molti nodi, questo spreco si accumula in tutti i nodi del cluster.
Con la funzionalità ClusterCIDRConfig, puoi evitare di assegnare un blocco CIDR di grandi dimensioni
a un cluster, mappare le dimensioni del cluster alla scalabilità dei pod e quindi
conservare gli indirizzi IP. Puoi salvare gli indirizzi IP utilizzando ClusterCIDRConfigs
con diverse combinazioni di CIDR e perNodeMaskSize. La risorsa ClusterCIDRConfig
supporta quanto segue:
Più blocchi CIDR IP non contigui per il CIDR del cluster a un livello più granulare
Affinità nodo dei blocchi CIDR
Dimensioni dei blocchi diverse allocate ai nodi
Google Distributed Cloud utilizza la funzionalità ClusterCIDRConfig nelle seguenti funzionalità:
Cluster.spec.clusterNetwork.pods.cidrBlocks è un campo facoltativo e non
è definito per impostazione predefinita. Devi definirlo se una delle funzionalità dell'elenco precedente non lo ha definito. Ad esempio, è obbligatorio quando i cluster vengono creati in modalità isolata IPv4 e deve essere specificato perché viene utilizzato come CIDR di routing nativo.
La tabella seguente elenca l'utilizzo del comportamento del campo Cluster.spec.clusterNetwork.pods.cidrBlocks di ClusterCIDRConfig per diverse modalità di rete.
Cluster.spec.clusterNetwork.pods.cidrBlocks vengono completamente ignorati e possono essere saltati. Gli utenti devono definire esplicitamente ClusterCIDRConfigs (per nodo, per node pool e/o per cluster).
Dual-stack (IPv4 Island, IPv4 Flat )
Specifica il CIDR IPv4.
Non specificare CIDR IPv6 in
Cluster.spec.clusterNetwork.pods.cidrBlocks.
Specifica ClusterCIDRConfigs con CIDR IPv4 e IPv6. Il CIDR IPv4 configurato in tutti i ClusterCIDRConfig deve essere uguale al CIDR IPv4 di Cluster.spec.clusterNetwork.pods.cidrBlocks, incluso il valore PerNodeMask per IPv4. Per saperne di più su ClusterCIDRConfig ed esempi del suo utilizzo, consulta Esempi: doppio stack (isola IPv4, IPv6 flat).
Dual-stack (IPv4 flat, IPv6 flat)
Puoi saltare Cluster.spec.clusterNetwork.pods.cidrBlocks perché vengono completamente ignorati. Devi definire esplicitamente ClusterCIDRConfigs (per nodo, per node pool e/o per cluster) con CIDR IPv4 e IPv6.
Configurazione della risorsa personalizzata di allocazione CIDR ClusterCIDRConfig
ClusterCIDRConfig
Quando configuri la risorsa personalizzata di allocazione CIDR ClusterCIDRConfig, tieni presente quanto segue:
L'assegnazione CIDR del pod da una determinata ClusterCIDRConfig a un nodo si basa
sui selettori di etichette. Questo meccanismo è simile a nodeSelector, utilizzato per
pianificare i pod su un nodo.
Devi configurare ClusterCIDRConfig durante il processo di creazione del cluster
nel file YAML di configurazione del cluster. Una volta specificati i ClusterCIDRConfigs, non puoi modificare i valori in un secondo momento.
Puoi specificare più ClusterCIDRConfigs con CIDR sovrapposti.
Se non viene trovato alcun ClusterCIDRConfig corrispondente per un nodo, il nodo rimane nello stato NotReady finché non viene creato un ClusterCIDRConfig con etichette corrispondenti.
Se la migliore corrispondenza ClusterCIDRConfig non ha altri CIDR disponibili per l'allocazione, viene scelto il CIDR successivo migliore e i CIDR dei pod vengono allocati dai CIDR disponibili.
Nel caso del modello dual-stack,
se vuoi assegnare i CIDR dei pod dual-stack ai nodi, procedi nel seguente modo:
Configura sia i CIDR IPv4 che IPv6 in ClusterCIDRConfig.
Assicurati che tutti i ClusterCIDRConfig abbiano CIDR DualStack, se sono configurati più ClusterCIDRConfig.
Assicurati che entrambi i CIDR IPv4 e IPv6 configurati abbiano un numero uguale di
indirizzi IP allocabili per nodo.
Ad esempio, 32 - spec.IPv4.PerNodeMaskSize == 128 -
spec.IPv6.PerNodeMaskSize
spec.IPv4.PerNodeMaskSize = 24
spec.IPv6.PerNodeMaskSize = 120
Pertanto, 32 - 24 == 128 - 120, poiché la differenza è 8.
Più ClusterCIDRConfigs possono corrispondere alle etichette di nodeSelector
alle etichette dei nodi.
Regole di assegnazione di ClusterCIDRConfig
Per determinare quale ClusterCIDRConfig viene utilizzato per assegnare i CIDR dei pod al nodo corrente, utilizza le seguenti regole di spareggio. Implementa queste regole nell'ordine
indicato. Implementa la regola successiva solo se il pareggio non viene risolto dalla regola precedente.
Scegli ClusterCIDRConfig il cui NodeSelector corrisponde alla maggior parte delle etichette sul
nodo. Ad esempio, {'node.kubernetes.io/instance-type':'medium', 'rack':
'rack1'} (Match Count: 2) viene scelto prima di
{'node.kubernetes.io/instance-type': 'medium'}. (Match Count: 1).
Scegli ClusterCIDRConfig con il minor numero di CIDR pod allocabili. Ad esempio, {CIDR: "10.0.0.0/16", PerNodeMaskSize: "16"} (1 possible Pod
CIDR) viene ritirato prima di {CIDR: "192.168.0.0/20", PerNodeMaskSize: "22"} (4
possible Pod CIDRs).
Scegli ClusterCIDRConfig il cui PerNodeMaskSize ha il minor numero di indirizzi IP.
Ad esempio, 27 (2^(32-27)= 32 indirizzi IP) scelto prima di
25 (2^(32-25)=128 indirizzi IP).
Scegli ClusterCIDRConfig la cui etichetta NodeSelector corrispondente ha un valore alfanumerico inferiore. Ad esempio, {'kubernetes.io/hostname': 'node-1'} viene
scelto rispetto a {'node.kubernetes.io/instance-type':'medium'}.
Scegli ClusterCIDRConfig il cui IP CIDR ha un valore inferiore. Indipendentemente dal fatto che la configurazione sia IPv4 o dual-stack, vengono confrontati solo i CIDR IPv4. Ad esempio, {CIDR: "10.0.0.0/16"} is picked over
{CIDR: "192.168.0.0/16"}.
Esempi di configurazione
Questa sezione elenca esempi di configurazione per Cluster e ClusterCIDRConfig per
tutte le modalità di networking.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-10-20 UTC."],[],[]]