Aggiunta di instradamenti statici ai nodi di lavoro
Crea instradamenti statici sui tuoi nodi di lavoro abilitando il componente aggiuntivo degli instradamenti statici per i cluster IBM Cloud® Kubernetes Service.
Informazioni sugli instradamenti statici
Quando configuri la rete del tuo cluster per comunicare con altre reti sulla rete privata, potresti aver bisogno di aggiungere instradamenti statici personalizzati sui tuoi nodi di lavoro. Gli instradamenti statici consentono ai nodi di lavoro di reindirizzare correttamente i pacchetti di risposta dal tuo cluster a un indirizzo IP nel data center in loco tramite una VPN o un'applicazione gateway.
Ad esempio, potresti utilizzare una VPN per connettere il tuo cluster a un data center in loco sulla rete privata. Inoltre, la tua connessione VPN privata conserva l'indirizzo IP di origine nelle richieste tra il cluster e il data center.
Quando un servizio in loco invia una richiesta a un'applicazione nel tuo cluster, il nodo di lavoro su cui si trova il tuo pod dell'applicazione elimina la risposta a causa dell'RPF (reverse path filter). RPF è una funzione del kernel Linux che elimina tutte le risposte sugli indirizzi IP che non sono elencati nelle tabelle di instradamento del nodo di lavoro. La risposta viene eliminata perché l'indirizzo IP in loco che era stato conservato nella richiesta non è instradabile dal nodo di lavoro.
In questo caso, puoi creare una rotta statica in modo che, quando un indirizzo IP di origine da una richiesta proviene da una delle tue sottoreti in loco, la risposta venga invece inviata all'indirizzo IP del gateway VPN. Aggiungendo questo instradamento statico alle tabelle di instradamento dei nodi di lavoro, garantisci quanto segue:
- I pacchetti di risposta non vengono eliminati a causa dell'RPF, poiché esiste una regola di instradamento che punta all'indirizzo IP in loco.
- I pacchetti di risposta vengono prima instradati correttamente attraverso l'indirizzo IP del gateway VPN e quindi vengono reinstradati al tuo indirizzo IP in loco.
Il componente aggiuntivo del cluster per l'instradamento statico può essere utilizzato per applicare e gestire solo gli instradamenti statici. Sei responsabile della configurazione e della gestione della tua VPN, dell'applicazione gateway o della connessione IBM Cloud® Direct Link.
Abilitazione del componente aggiuntivo di instradamento statico
Per iniziare a lavorare con gli instradamenti statici in IBM Cloud Kubernetes Service, abilita il componente aggiuntivo di instradamento statico.
Prima di iniziare
- Assicurati di disporre del ruolo di accesso della piattaforma Amministratore IAM per il cluster in IBM Cloud Kubernetes Service.
- Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
Abilitazione del componente aggiuntivo di instradamento statico dalla console
Per utilizzare la console IBM Cloud, attieniti alla seguente procedura.
- Nel tuo dashboard del cluster, fai clic sul nome del cluster in cui vuoi installare il componente aggiuntivo della rotta statica.
- Nella scheda Static Route, fai clic su Install.
- Fai di nuovo clic su Install.
- Nella scheda Static Route, verifica che il componente aggiuntivo sia elencato.
Abilitazione del componente aggiuntivo di instradamento statico con la CLI
Per utilizzare la CLI, attieniti alla seguente procedura.
-
Abilita il componente aggiuntivo
static-route
.ibmcloud ks cluster addon enable static-route --cluster <cluster_name_or_ID>
-
Verifica che il componente aggiuntivo di instradamento statico abbia lo stato
Addon Ready
.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
Output di esempio
Name Version Health State Health Status static-route 1.0.0 normal Addon Ready
Creazione di instradamenti statici
Dopo aver abilitato il componente aggiuntivo di instradamento statico, puoi creare e applicare le risorse per gli instradamenti statici.
-
Crea un file YAML per una risorsa dell'instradamento statico.
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: <route_name> spec: subnet: "<subnet_CIDR>" gateway: "<gateway_IP>" selectors: - key: "<label_key>" values: - "<label_value>" operator: In
Esempio
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: mystaticroute spec: subnet: "192.168.0.0/24" gateway: "10.0.0.1" selectors: - key: "kubernetes.io/arch" values: - "amd64" operator: In
subnet
- Specifica il CIDR della rete secondaria esterna da cui vengono inviate le richieste ai nodi di lavoro, ad esempio una sottorete in una rete in loco. La sottorete esterna non può essere nei seguenti intervalli riservati. L'intervallo di
interconnessione dispositivo,
198.18.0.0/15
, è consentito.10.0.0.0/8
172.16.0.0/16
172.18.0.0/16
172.19.0.0/16
172.20.0.0/16
gateway
- Se il tuo indirizzo IP del gateway esiste sulla stessa sottorete dei tuoi nodi di lavoro, specifica l'indirizzo IP del gateway. Se il tuo indirizzo IP del gateway esiste su un'altra sottorete nella tua rete privata IBM Cloud, non includere
questo campo. In questo caso, i nodi di lavoro inviano le risposte al router di backend della rete privata e il router invia la risposta al gateway sull'altra sottorete. Quando viene creato l'instradamento statico, l'indirizzo IP del
router di backend nell'intervallo
10.0.0.0/8
viene assegnato automaticamente come gateway predefinito. selectors
- Per creare l'instradamento statico solo su determinati nodi di lavoro in base alle loro etichette, includi la
key
e ivalues
per l'etichetta.
-
Crea gli instradamenti statici applicando il file YAML al tuo cluster.
kubectl apply -f <route_name>.yaml
-
Verifica che l'instradamento statico sia stato creato. Nell'output, controlla il
node_status
per ogni nodo di lavoro in cui crei la rotta statica.kubectl get staticroute <route_name> -o yaml
Output di esempio
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"static-route.ibm.com/v1","kind":"StaticRoute","metadata":{"annotations":{},"name":"mystaticroute"},"spec":{"selectors":[{"key":"kubernetes.io/arch","operator":"In","values":["amd64"]}],"subnet":"10.94.227.46/24"}} creationTimestamp: "2020-05-20T16:43:12Z" finalizers: - finalizer.static-route.ibm.com generation: 1 name: mystaticroute resourceVersion: "3753886" selfLink: /apis/static-route.ibm.com/v1/staticroutes/mystaticroute uid: f284359f-9d13-4e27-9d3a-8fb38cbc7a5c spec: selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 status: nodeStatus: - error: "" hostname: 10.94.227.19 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 - error: "" hostname: 10.94.227.22 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24