Google Distributed Cloud supporta l'uso di OpenStack come piattaforma cloud privato. Questa guida descrive come configurare un cluster Google Distributed Cloud per funzionare con un cloud provider esterno. L'esecuzione di cluster Google Distributed Cloud 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, Google Distributed Cloud aggiunge un flag kubelet
cloud-provider=external
Il kubelet aggiunge quindi
node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
incompatibilità ai nodi cluster
Questa configurazione consente a te e a OpenStack di possedere i processi di inizializzazione del nodo. Ad esempio, puoi eseguire il deployment di Google Distributed Cloud su OpenStack per eseguire il provisioning automatico 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 cluster Google Distributed Cloud ad altri tenant di 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 seguenti guide illustrano un deployment di esempio:
Il deployment di un cluster Google Distributed Cloud su OpenStack ti guida attraverso un deployment di esempio di un cluster ibrido Google Distributed Cloud su macchine virtuali (VM OpenStack). Il deployment utilizza 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 Google Distributed Cloud di cui è stato eseguito il deployment su OpenStack. Il provider di servizi cloud OpenStack non è tenuto a utilizzare Google Distributed Cloud con OpenStack.
Prima di iniziare
Decidi quali cluster GKE devono utilizzare le risorse LBaaS OpenStack.
Una volta creato un cluster configurato per l'utilizzo delle risorse LBaaS OpenStack, non puoi modificare la configurazione per passare alle risorse MetalLB. Assicurati di inizializzare i cluster con la configurazione del cloud provider 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 Kubernetes OpenStack richiede che kubelet
venga eseguito su tutti
i nodi con il seguente argomento:
cloud-provider: "external"
Per assicurarti che il 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
. Google Distributed Cloud genera un providerID
con un formato simile a baremetal://MACHINE_ADDRESS
per ogni macchina nodo. Se vuoi avere un providerID
diverso, puoi specificarne uno per ogni 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 tuo 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, consulta Panoramica della creazione dei 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"
.A tutti i nodi è stata aggiunta anche la seguente incompatibilità:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"
Queste incompatibilità vengono rimosse dopo l'inizializzazione del cloud provider su questo cluster.
kubelet
viene eseguito con il valoreproviderID
specificato nel file di configurazione del cluster.