La versione solo software di Google Distributed Cloud supporta l'utilizzo di OpenStack come piattaforma di cloud privato. Questa guida descrive come configurare un cluster per il funzionamento con un fornitore di cloud esterno. L'esecuzione di un'installazione di cluster solo software Google Distributed Cloud su OpenStack ti consente di utilizzare i seguenti servizi OpenStack:
Infrastructure as a Service (IaaS)
Load balancing as a Service (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
Questa annotazione fa sì che Google Distributed Cloud aggiunga un flag kubelet
cloud-provider=external
Il kubelet aggiunge quindi
node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
contaminazioni ai nodi del cluster
Questa configurazione consente a te e ad OpenStack di possedere i processi di inizializzazione dei nodi. Ad esempio, puoi eseguire il deployment del software Google Distributed Cloud su OpenStack per eseguire automaticamente il provisioning delle risorse di bilanciamento del carico come servizio (LBaaS) di OpenStack o per utilizzare altre funzionalità di OpenStack. Le risorse LBaaS possono sostituire le risorse MetalLB per esporre i servizi in esecuzione sui tuoi cluster 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 seguenti guide illustrano un esempio di implementazione:
L'articolo Eseguire il deployment di un cluster su OpenStack illustra la procedura di deployment di un cluster ibrido su macchine virtuali (VM) OpenStack. Il deployment utilizza uno script per semplificare l'installazione. La guida illustra anche un modo per attivare il bilanciamento del carico come servizio (LBaaS).
L'articolo Configurare il provider cloud OpenStack per Kubernetes descrive come installare il provider cloud OpenStack su un cluster di cui è stato eseguito il deployment su OpenStack. Il provider cloud OpenStack non è tenuto a utilizzare il software Google Distributed Cloud con OpenStack.
Prima di iniziare
Decidi quali cluster devono utilizzare le risorse LBaaS di OpenStack.
Una volta creato un cluster configurato per utilizzare le risorse LBaaS di OpenStack, non puoi modificare la configurazione per passare alle risorse MetalLB. Assicurati di inizializzare i cluster con la configurazione corretta del fornitore cloud.
Assicurati di avere accesso alle macchine che stai tentando di configurare.
Scopri di più sull'esecuzione di cloud-controller-manager nella documentazione di Kubernetes.
Modificare 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 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 avere il seguente aspetto:
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 provider cloud 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 del 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 specificareproviderID
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 seguente comando per inizializzare il cluster:
bmctl create cluster -c cluster1
Per ulteriori informazioni sulla creazione di cluster, consulta la panoramica della creazione di 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 obbligatoriocloud-provider: "external"
.A tutti i nodi viene inoltre aggiunta la seguente incompatibilità ai file di configurazione:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"
Questi taint vengono rimossi dopo l'inizializzazione del provider cloud su questo cluster.
kubelet
viene eseguito conproviderID
specificato nel file di configurazione del cluster.