GKE su Bare Metal supporta l'utilizzo di OpenStack come piattaforma cloud privato. Questa guida descrive come configurare un cluster GKE su Bare Metal per funzionare con un cloud provider esterno. L'esecuzione di GKE su cluster Bare Metal su OpenStack ti consente di utilizzare i seguenti servizi OpenStack:
Infrastructure as a Service (IaaS)
Bilanciamento del carico come servizio (LBaaS)
Archiviazione
La configurazione di un cluster per il funzionamento con OpenStack prevede quanto segue:
Quando crei il cluster, aggiungi un'annotazione
baremetal.cluster.gke.io/external-cloud-provider
Con questa annotazione, GKE su Bare Metal aggiunge un flag kubelet
cloud-provider=external
kubelet aggiunge poi
node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
incompatibilità ai nodi del cluster
Questa configurazione consente a te e a OpenStack di possedere i processi di inizializzazione dei nodi. Ad esempio, puoi eseguire il deployment di GKE su Bare Metal su OpenStack per eseguire automaticamente il provisioning delle risorse OpenStack Load Balancing as a Service (LBaaS) o per utilizzare altre funzionalità OpenStack. Le risorse LBaaS possono sostituire le risorse MetalLB per esporre i servizi in esecuzione sui tuoi cluster GKE su cluster Bare Metal ad altri tenant OpenStack o all'esterno della rete OpenStack. Per ulteriori informazioni sulle funzionalità e sui vantaggi di OpenStack, consulta la documentazione di OpenStack.
Esempi correlati
Questo documento illustra solo come configurare il cluster per l'utilizzo con OpenStack. Le guide seguenti illustrano un deployment di esempio:
Esegui il deployment di un cluster GKE su Bare Metal su OpenStack ti guiderà attraverso il deployment di esempio di un cluster ibrido GKE su Bare Metal su macchine virtuali (VM) OpenStack. Il deployment usa uno script per semplificare l'installazione. La guida illustra anche un modo per abilitare il bilanciamento del carico come servizio (LBaaS).
Configura il provider cloud OpenStack per Kubernetes mostra come installare il provider cloud OpenStack su un cluster GKE su Bare Metal di cui è stato eseguito il deployment su OpenStack. Non è necessario il provider cloud OpenStack per utilizzare GKE su Bare Metal con OpenStack.
Prima di iniziare
Decidi quali cluster GKE devono utilizzare le risorse LBaaS OpenStack.
Dopo aver creato un cluster configurato per l'utilizzo delle risorse OpenStack LBaaS, non puoi modificare la configurazione per passare alle risorse MetalLB. Assicurati di inizializzare i cluster con la configurazione del provider cloud corretta.
Assicurati di avere accesso alle macchine che stai tentando di configurare.
Scopri di più sull'esecuzione di cloud-controller-manager nella documentazione di Kubernetes.
Modifica il file di configurazione del cluster
Il provider cloud OpenStack Kubernetes richiede l'esecuzione di kubelet
su tutti i nodi con il seguente argomento:
cloud-provider: "external"
Per assicurarti che il tuo cluster GKE soddisfi questo requisito, aggiungi l'annotazione baremetal.cluster.gke.io/external-cloud-provider: "true"
al file di configurazione del cluster nella sezione dei metadati prima di creare il cluster.
La voce nel file di configurazione dovrebbe essere simile all'esempio seguente:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
...
Alcuni cloud provider su altre piattaforme cloud richiedono un formato speciale per
providerID
. GKE su Bare Metal genera un providerID
con un formato simile a
baremetal://MACHINE_ADDRESS
per ogni macchina nodo. Se vuoi avere un valore providerID
diverso, puoi specificarne uno per ciascun nodo insieme all'indirizzo IP.
Il seguente file di configurazione del cluster di esempio mostra come specifichi providerID
per i nodi del cluster:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/20
controlPlane:
nodePoolSpec:
nodes:
- address: 10.200.0.1
+ providerID: some-prefix://unique-string
- address: 10.200.0.2
+ providerID: some-prefix2://unique-string2
...
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: nodepool1
namespace: cluster-cluster1
spec:
clusterName: cluster1
nodes:
- address: 172.18.0.2
+ providerID: some-prefix3://unique-string3
Crea il cluster
Dopo aver modificato il file di configurazione, utilizza il comando seguente per inizializzare il cluster:
bmctl create cluster -c cluster1
Per saperne di più sulla creazione dei cluster, vedi Panoramica della creazione del cluster.
Configurazione dei nodi
Quando crei un cluster configurato per OpenStack, i nodi del cluster presentano le seguenti modifiche:
Tutti i nodi in
cluster1
vengono eseguiti con l'argomento richiesto:cloud-provider: "external"
.Tutti i nodi presentano anche la seguente incompatibilità ai file di configurazione:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"
Queste incompatibilità vengono rimosse dopo aver inizializzato il cloud provider in questo cluster.
kubelet
viene eseguito con il valoreproviderID
specificato nel file di configurazione del cluster.