Wenn Sie die Distributed Cloud-Software nur für Bare Metal auf OpenStack ausführen, können Sie Ihre Cluster in OpenStack Infrastructure as a Service (IaaS), Load Balancing as a Service (LBaaS) und Storage einbinden. Wenn Sie Ihre Cluster für einen externen Cloud-Anbieter konfigurieren, wird der Knoteninitialisierungsprozess an OpenStack delegiert.
Sie können OpenStack-LBaaS-Ressourcen anstelle von MetalLB automatisch bereitstellen, um Dienste, die auf Ihren Clustern ausgeführt werden, für andere OpenStack-Mandanten oder außerhalb des OpenStack-Netzwerks verfügbar zu machen. Weitere Informationen zu den Funktionen und Vorteilen von OpenStack finden Sie in der OpenStack-Dokumentation.
Ähnliche Beispiele
In diesem Dokument wird nur beschrieben, wie Sie Ihren Cluster für die Verwendung mit OpenStack konfigurieren. In den folgenden Anleitungen wird eine Beispielbereitstellung beschrieben:
Cluster in OpenStack bereitstellen führt Sie durch eine Beispielbereitstellung eines Hybridclusters auf virtuellen OpenStack-Maschinen (VMs). Die Bereitstellung verwendet ein Skript, um die Installation zu vereinfachen. In dieser Anleitung wird außerdem beschrieben, wie Sie das Load Balancing als Dienst (LBaaS) aktivieren können.
Unter OpenStack Cloud Provider für Kubernetes konfigurieren erfahren Sie, wie Sie den OpenStack Cloud-Anbieter auf einem Cluster installieren, der auf OpenStack bereitgestellt wurde. Der OpenStack-Cloud-Anbieter ist nicht erforderlich, um Google Distributed Cloud-Software mit OpenStack zu verwenden.
Hinweis
Entscheiden Sie, welche Cluster OpenStack-LBaaS-Ressourcen verwenden müssen.
Nachdem Sie einen Cluster erstellt haben, der für die Verwendung von OpenStack-LBaaS-Ressourcen konfiguriert ist, können Sie die Konfiguration nicht mehr ändern, um zu MetalLB-Ressourcen zu wechseln. Achten Sie darauf, Ihre Cluster mit der richtigen Konfiguration für den Cloud-Anbieter zu initialisieren.
Sie benötigen Zugriff auf die Maschinen, die Sie konfigurieren möchten.
cloud-controller-manager in der Kubernetes-Dokumentation ausführen
Clusterkonfigurationsdatei ändern
Der Cloud-Anbieter von OpenStack erfordert, dass kubelet auf allen Knoten mit dem folgenden Argument ausgeführt wird:
cloud-provider: "external"
Damit Ihr Cluster diese Anforderung erfüllt, fügen Sie die Annotation baremetal.cluster.gke.io/external-cloud-provider: "true" in der Clusterkonfigurationsdatei im Abschnitt „Metadaten“ hinzu, bevor Sie den Cluster erstellen.
Der Eintrag in Ihrer Konfigurationsdatei sollte folgendermaßen aussehen:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
...
Einige Cloud-Anbieter auf anderen Cloud-Plattformen erfordern ein spezielles Format für providerID. Google Distributed Cloud generiert für jeden Knotencomputer einen providerID im Format baremetal://MACHINE_ADDRESS. Wenn Sie eine andere providerID verwenden möchten, können Sie zusammen mit der IP-Adresse eine für jeden Knoten angeben.
Das folgende Beispiel für eine Clusterkonfigurationsdatei zeigt, wie Sie providerID für Ihre Clusterknoten angeben:
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
Cluster erstellen
Nachdem Sie die Konfigurationsdatei bearbeitet haben, können Sie den folgenden Befehl ausführen, um Ihren Cluster zu initialisieren:
bmctl create cluster -c cluster1
Weitere Informationen zum Erstellen von Clustern finden Sie unter Cluster erstellen – Übersicht.
Knotenkonfiguration
Wenn Sie einen für OpenStack konfigurierten Cluster erstellen, weisen die Clusterknoten die folgenden Änderungen auf:
Alle Knoten werden in
cluster1mit dem erforderlichen Argumentcloud-provider: "external"ausgeführt.Alle Knoten enthalten außerdem die folgende Markierung in den Konfigurationsdateien:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"Diese Markierungen werden entfernt, nachdem Sie den Cloudanbieter auf diesem Cluster initialisiert haben.
kubeletwird mit derproviderIDausgeführt, die Sie in der Clusterkonfigurationsdatei angegeben haben.