Cluster für die Verwendung von OpenStack konfigurieren

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.

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 cluster1 mit dem erforderlichen Argument cloud-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.

  • kubelet wird mit der providerID ausgeführt, die Sie in der Clusterkonfigurationsdatei angegeben haben.

Nächste Schritte