Requisiti di rete
Requisiti di rete esterni
I cluster Anthos su Bare Metal richiedono una connessione a Internet per scopi operativi. I cluster Anthos su Bare Metal recuperano i componenti del cluster da Container Registry e il cluster viene registrato con Connect.
Puoi connetterti a Google utilizzando la rete Internet pubblica (con HTTPS), una rete privata virtuale (VPN) o una Dedicated Interconnect.
Requisiti di rete interni
I cluster Anthos su Bare Metal possono funzionare con la connettività di livello 2 o 3 tra i nodi del cluster e richiedono che i nodi del bilanciatore del carico siano nello stesso dominio di livello 2. I nodi del bilanciatore del carico possono essere nodi del piano di controllo o set di nodi dedicato. Consulta la pagina Scelta e configurazione dei bilanciatori del carico per informazioni sulla configurazione.
Il requisito di rete di livello 2 si applica se esegui il bilanciatore del carico sul pool di nodi del piano di controllo o in un set dedicato di nodi.
I requisiti per le macchine del bilanciatore del carico sono:
- Tutti i bilanciatori del carico per un determinato cluster si trovano nello stesso dominio di livello 2.
- Tutti i VIP devono trovarsi nella subnet della macchina del bilanciatore del carico e possono essere instradati al gateway della subnet.
- Gli utenti sono responsabili del traffico in entrata del bilanciatore del carico.
Networking di pod
I cluster Anthos su Bare Metal 1.7.0 e versioni successive consentono di configurare fino a 250 pod per nodo. Kubernetes assegna un blocco CIDR a ogni nodo in modo che ogni pod possa avere un indirizzo IP univoco. Le dimensioni del blocco CIDR corrispondono al numero massimo di pod per nodo. La tabella seguente elenca le dimensioni del blocco CIDR che Kubernetes assegna a ciascun nodo in base ai pod massimi configurati per nodo:
Numero massimo di pod per nodo | Blocco CIDR per nodo | Numero di indirizzi IP |
---|---|---|
32 | /26 | 64 |
33-64 | /25 | 128 |
65-128 | /24 | 256 |
129 - 250 | /23 | 512 |
L'esecuzione di 250 pod per nodo richiede che Kubernetes prenoti un blocco CIDR /23 per ciascun nodo. Presumendo che il clusterNetwork.pods.cidrBlocks
del cluster sia configurato sul valore predefinito di /16
, il cluster abbia un limite di (2(23-16))=128 nodi. Se vuoi espandere il cluster oltre questo limite, puoi aumentare il valore di clusterNetwork.pods.cidrBlocks
o diminuire il valore di nodeConfig.podDensity.maxPodsPerNode
.
Deployment di un cluster utente singolo con disponibilità elevata
Il seguente diagramma illustra una serie di concetti di networking chiave per i cluster Anthos su Bare Metal in una possibile configurazione di rete.
- I nodi del piano di controllo eseguono bilanciatori del carico e si trovano tutti sulla stessa rete di livello 2, mentre le altre connessioni, inclusi i nodi worker, richiedono solo la connettività di livello 3.
- I file di configurazione definiscono gli indirizzi IP per i pool di nodi worker.
I file di configurazione definiscono anche i VIP per i seguenti scopi:
- Servizi
- Ingress
- Accesso al piano di controllo attraverso l'API Kubernetes
- È necessaria anche una connessione a Google Cloud.
Utilizzo porta
Questa sezione mostra come vengono utilizzate le porte UDP e TCP sui nodi del cluster e del bilanciatore del carico.
Nodi master
Protocollo | Direzione | Intervallo porte | Finalità | Utilizzatori |
---|---|---|---|---|
UDP | In entrata | 6081 | Incapsulamento GENEVE | Indipendente |
TCP | In entrata | 22 | Provisioning e aggiornamenti dei nodi dei cluster di amministrazione | Workstation di amministrazione |
TCP | In entrata | 6444 | Server API di Kubernetes | Tutti |
TCP | In entrata | 2379 - 2380 | API etcd server client | kube-apiserver, etcd |
TCP | In entrata | 10250 | API kubelet | Self, piano di controllo |
TCP | In entrata | 10251 | kube-scheduler | Indipendente |
TCP | In entrata | 10252 | kube-controller-manager | Indipendente |
TCP | Entrambi | 4240 | Controllo di integrità CNI | Tutti |
Nodi worker
Protocollo | Direzione | Intervallo porte | Finalità | Utilizzatori |
---|---|---|---|---|
TCP | In entrata | 22 | Provisioning e aggiornamenti dei nodi dei cluster utente | Nodi del cluster di amministrazione |
UDP | In entrata | 6081 | Incapsulamento GENEVE | Indipendente |
TCP | In entrata | 10250 | API kubelet | Self, piano di controllo |
TCP | In entrata | 30.000-32.767 | Servizi NodePort | Indipendente |
TCP | Entrambi | 4240 | Controllo di integrità CNI | Tutti |
Nodi bilanciatore del carico
Protocollo | Direzione | Intervallo porte | Finalità | Utilizzatori |
---|---|---|---|---|
TCP | In entrata | 22 | Provisioning e aggiornamenti dei nodi dei cluster utente | Nodi del cluster di amministrazione |
UDP | In entrata | 6081 | Incapsulamento GENEVE | Indipendente |
TCP | In entrata | 443* | Gestione dei cluster | Tutti |
TCP | Entrambi | 4240 | Controllo di integrità CNI | Tutti |
TCP | In entrata | 7946 | Controllo di integrità LB in metallo | Nodi LB |
UDP | In entrata | 7946 | Controllo di integrità LB in metallo | Nodi LB |
* Questa porta può essere configurata nella configurazione del cluster utilizzando il campo controlPlaneLBPort
.
Requisiti della porta multi-cluster
In una configurazione multi-cluster, i cluster aggiunti devono includere le seguenti porte per comunicare con il cluster di amministrazione.
Protocollo | Direzione | Intervallo porte | Finalità | Utilizzatori |
---|---|---|---|---|
TCP | In entrata | 22 | Provisioning e aggiornamenti dei nodi del cluster | Tutti i nodi |
TCP | In entrata | 443* | Server API Kubernetes per il cluster aggiunto | Piano di controllo, nodi LB |
* Questa porta può essere configurata nella configurazione del cluster utilizzando il campo controlPlaneLBPort
.
Configurazione delle porte con firewall
A partire dai cluster Anthos su Bare Metal 1.7.0, non devi disabilitare Firefired per eseguire i cluster Anthos su Bare Metal su Red Hat Enterprise Linux (RHEL) o CentOS. Per utilizzare i firewall, devi aprire le porte UDP e TCP utilizzate dai nodi master,
worker e bilanciatore del carico, come descritto nella sezione Utilizzo delle porte
di questa pagina. Le seguenti configurazioni di esempio mostrano come aprire le porte con
firewall-cmd
, il client a riga di comando con firewall.
Configurazione di esempio del nodo master
Il seguente blocco di comandi di esempio mostra come aprire le porte necessarie sui server che eseguono nodi master:
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250-10252/tcp
firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reload
Sostituisci PODS_CIDR con i blocchi CIDR riservati ai
pod, clusterNetwork.pods.cidrBlocks
. Il blocco CIDR predefinito per i pod è
192.168.0.0/16
.
Configurazione di esempio del nodo worker
Il seguente blocco di comandi di esempio mostra come aprire le porte necessarie sui server che eseguono nodi worker:
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reload
Sostituisci PODS_CIDR con i blocchi CIDR riservati ai
pod, clusterNetwork.pods.cidrBlocks
. Il blocco CIDR predefinito per i pod è
192.168.0.0/16
.
Configurazione di esempio del nodo del bilanciatore del carico
Il seguente blocco di comandi di esempio mostra come aprire le porte necessarie sui server che eseguono nodi del bilanciatore del carico:
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=4240/tcp
firewall-cmd --permanent --zone=public --add-port=6444/tcp
firewall-cmd --permanent --zone=public --add-port=7946/tcp
firewall-cmd --permanent --zone=public --add-port=7946/udp
firewall-cmd --permanent --zone=public --add-port=6081/udp
firewall-cmd --permanent --zone=public --add-port=10250/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
firewall-cmd --permanent --new-zone=k8s-pods
firewall-cmd --permanent --zone=k8s-pods --add-source PODS_CIDR
firewall-cmd --permanent --zone=k8s-pods --set-target=ACCEPT
firewall-cmd --reloadfirewall-cmd --reload
Sostituisci PODS_CIDR con i blocchi CIDR riservati ai
pod, clusterNetwork.pods.cidrBlocks
. Il blocco CIDR predefinito per i pod è
192.168.0.0/16
.