GDCV per Bare Metal supporta il cloud provider OpenStack Kubernetes. Utilizza questa funzionalità per eseguire automaticamente il provisioning delle risorse OpenStack Load Balancing as a Service (LBaaS). Queste risorse possono sostituire le risorse MetalLB per esporre facilmente i servizi in esecuzione sui tuoi cluster Anthos on bare metal ad altri tenant OpenStack o al di fuori della rete OpenStack.
Prima di iniziare
Decidi i cluster Anthos che devono utilizzare le risorse LBaaS OpenStack.
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 dei 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 i tuoi cluster Anthos soddisfino facilmente questo requisito, aggiungi l'annotazione baremetal.cluster.gke.io/external-cloud-provider: "true"
al file di configurazione dei tuoi cluster nella sezione dei metadati prima di inizializzarli.
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 genererà un providerID
per ogni
macchina. Il formato è simile a baremetal://MACHINE_ADDRESS
. Se
vuoi un valore providerID
diverso, puoi specificarne uno per ciascun nodo
insieme all'indirizzo IP. La configurazione sarà simile alla seguente:
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-admin1
spec:
clusterName: admin1
nodes:
- address: 172.18.0.2
+ providerID: some-prefix3://unique-string3
Dopo aver modificato il file di configurazione, utilizza il comando seguente per inizializzare il cluster:
bmctl create cluster -c cluster1
Ora, tutti i nodi in cluster1
vengono eseguiti con l'argomento richiesto: cloud-provider:
"external"
Tutti i nodi hanno anche i seguenti campi aggiunti ai file di configurazione:
taints:
- effect: NoSchedule
key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
Questi campi vengono rimossi dopo aver inizializzato il provider cloud in questo cluster.
kubelet
verrà eseguito con il providerID
fornito se ne hai specificato uno per questo nodo.