Knotenpools erstellen und verwalten

Wenn Sie einen Nutzercluster erstellen, müssen Sie mindestens einen Knotenpool konfigurieren. Dabei handelt es sich um eine Gruppe von Knoten, die alle dieselbe Konfiguration haben. Nachdem der Cluster erstellt wurde, können Sie neue Knotenpools hinzufügen, Knotenpooleinstellungen aktualisieren und Knotenpools löschen.

Wie Sie Knotenpools erstellen, aktualisieren und löschen, hängt davon ab, ob der Cluster von der Anthos On-Prem API verwaltet wird. Ein Nutzercluster wird von der Anthos On-Prem API verwaltet, wenn eine der folgenden Bedingungen zutrifft:

Wenn die Anthos On-Prem API einen Nutzercluster verwaltet, können Sie Knotenpools über die Google Cloud Console verwalten. Wenn der Nutzercluster nicht von der Anthos On-Prem API verwaltet wird, verwenden Sie gkectl in der Befehlszeile Ihrer Administratorworkstation, um Knotenpools zu verwalten.

Knotenpool hinzufügen

Wenn Sie den Cluster in der Google Cloud Console erstellt haben, können Sie mit der Google Cloud Console einen Knotenpool hinzufügen. Sie müssen jedoch die Befehlszeile verwenden, um die folgenden Knotenpooleinstellungen zu konfigurieren:

Prüfen Sie vor dem Hinzufügen eines weiteren Knotenpools, ob im Cluster genügend IP-Adressen verfügbar sind.

Console

  1. Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.

    Zur Seite "Anthos-Cluster"

  2. Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  3. Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.

  4. Klicken Sie auf Knotenpool hinzufügen .

  5. Konfigurieren Sie den Knotenpool:

    1. Geben Sie den Namen des Knotenpools ein.
    2. Geben Sie die Anzahl der vCPUs für jeden Knoten im Pool (mindestens 4 pro Nutzercluster-Worker) ein.
    3. Geben Sie die Größe des Arbeitsspeichers in Mebibyte (MiB) für jeden Knoten im Pool ein (mindestens 8.192 MiB pro Nutzercluster-Worker-Knoten und muss ein Vielfaches von 4 sein).
    4. Geben Sie im Feld Knoten die Anzahl der Knoten im Pool ein (mindestens 3).
    5. Wählen Sie den Betriebssystem-Image-Typ aus: Ubuntu Containerd, Ubuntu oder COS.

    6. Geben Sie die Größe des Bootlaufwerks in Gibibyte (GiB) ein (Standardeinstellung ist 40 GiB).

  6. Wenn Sie Labels und Markierungen von Kubernetes hinzufügen möchten, gehen Sie im Abschnitt Knotenpool-Metadaten (optional) so vor:

    1. Klicken Sie auf + Kubernetes-Labels hinzufügen. Geben Sie den Schlüssel und den Wert für das Label ein. Wiederholen Sie diese Schritte für alle Suchabfragen, für die dies erforderlich ist.
    2. Klicken Sie auf + Markierung hinzufügen. Geben Sie den Schlüssel, den Wert und den Effekt für die Markierung ein. Wiederholen Sie diese Schritte für alle Suchabfragen, für die dies erforderlich ist.
  7. Klicken Sie auf Erstellen.

  8. In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.

Befehlszeile

  1. Füllen Sie in der Konfigurationsdatei für den Nutzercluster den Abschnitt nodePools aus.

    Geben Sie die folgenden Felder an:

    • nodePools.[i].name
    • nodePools[i].cpus
    • nodePools.[i].memoryMB
    • nodePools.[i].replicas

    Die folgenden Felder sind optional. Wenn Sie weder nodePools[i].bootDiskSizeGB noch nodePools[i].osImageType angeben, werden die Standardwerte verwendet.

    • nodePools[i].labels
    • nodePools[i].taints
    • nodePools[i].bootDiskSizeGB
    • nodePools[i].osImageType
    • nodePools[i].vsphere.datastore
    • nodePools[i].vsphere.tags
  2. Führen Sie dazu diesen Befehl aus:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Ersetzen Sie Folgendes:

    • [ADMIN_CLUSTER_KUBECONFIG] ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.

    • [USER_CLUSTER_CONFIG] ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.

Konfigurationsbeispiel

In der folgenden Beispielkonfiguration gibt es vier Knotenpools mit jeweils unterschiedlichen Attributen:

  • pool-1: nur mindestens erforderliche Attribute sind angegeben
  • pool-2: enthält vsphere.datastore und vsphere.tags
  • pool-3: enthält taints und labels
  • pool-4: enthält osImageType und bootDiskSizeGB
nodePools:
- name: pool-1
  cpus: 4
  memoryMB: 8192
  replicas: 5
- name: pool-2
  cpus: 8
  memoryMB: 16384
  replicas: 3
  vsphere:
    datastore: my_datastore
    tags:
    - category: "purpose"
      name: "testing"
- name: pool-3
  cpus: 4
  memoryMB: 8192
  replicas: 5
  taints:
    - key: "example-key"
      effect: NoSchedule
  labels:
    environment: production
    app: nginx
- name: pool-4
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: cos
  bootDiskSizeGB: 40

Knotenpool aktualisieren

Mit der Befehlszeile können Sie alle Felder im Abschnitt nodePools Ihrer Konfigurationsdatei für den Nutzercluster aktualisieren. Derzeit können nur die folgenden Knotenpoolfelder mit der Google Cloud Console aktualisiert werden:

  • Anzahl der Replikate
  • Speicher
  • Anzahl der vCPUs

Wenn Sie die Anzahl der Replikate erhöhen, fügt Anthos-Cluster auf VMware die erforderliche Anzahl von Knoten zum Nutzercluster hinzu. Wenn Sie die Anzahl der Replikate verringern, werden Knoten entfernt. Die Änderung der Anzahl von Replikaten für einen Knotenpool unterbricht die Arbeitslasten nicht. Achten Sie darauf, dass IP-Adressen zur Verfügung stehen, wenn Sie die Anzahl der Replikate erhöhen.

Wenn Sie ein anderes Knotenpoolfeld aktualisieren, löst dies ein Rolling Update im Cluster aus. Bei einem Rolling Update erstellt Anthos-Cluster auf VMware einen neuen Knoten und löschen dann einen alten Knoten. Dieser Vorgang wird wiederholt, bis alle alten Knoten durch neue Knoten ersetzt wurden. Dieser Vorgang verursacht keine Ausfallzeit, aber der Cluster muss eine zusätzliche IP-Adresse haben, die während des Updates verwendet werden kann.

Angenommen, ein Knotenpool hat am Ende einer Aktualisierung N Knoten. Dann müssen Sie mindestens N + 1 IP-Adressen für Knoten in diesem Pool haben. Wenn Sie also die Größe eines Clusters anpassen, indem Sie einem oder mehreren Pools Knoten hinzufügen, müssen Sie mindestens eine IP-Adresse mehr als die Gesamtzahl der Knoten haben, die sich am Ende der Größenänderung in allen Knotenpools des Clusters befinden werden. Weitere Informationen finden Sie unter Prüfen, ob genügend IP-Adressen verfügbar sind.

So aktualisieren Sie einen Knotenpool in einem Nutzercluster:

Console

  1. Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.

    Zur Seite "Anthos-Cluster"

  2. Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  3. Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.

  4. Klicken Sie auf den Tab Knoten.

  5. Klicken Sie auf den Namen des Knotenpools, den Sie ändern möchten.

  6. Klicken Sie neben dem Feld, das Sie ändern möchten, auf Bearbeiten und dann auf Fertig.

  7. Klicken Sie auf , um zur vorherigen Seite zurückzukehren.

  8. In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.

Befehlszeile

  1. Ändern Sie die Werte in den Feldern, die Sie ändern möchten, im Abschnitt nodePools der Konfigurationsdatei des Nutzerclusters.

  2. Aktualisieren Sie den Cluster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Ersetzen Sie Folgendes:

    • [ADMIN_CLUSTER_KUBECONFIG] ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.

    • [USER_CLUSTER_CONFIG] ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.

Von einem Knotenpool verwendeten osImageType aktualisieren

Zum Aktualisieren eines Knotenpools für die Verwendung eines anderen osImageType müssen Sie die Befehlszeile verwenden. Wenn Sie den von einem Knotenpool verwendeten osImageType ändern möchten, aktualisieren Sie die Konfigurationsdatei für den Knotenpool, wie im folgenden Beispiel gezeigt, und führen Sie gkectl update cluster aus.

nodePools:
- name: np-1
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd

Änderungen prüfen

Sehen Sie sich die Clusterknoten an, um sicherzustellen, dass Ihre Knotenpools wie vorgesehen erstellt oder aktualisiert wurden:

Console

  1. Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.

    Zur Seite "Anthos-Cluster"

  2. Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  3. Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.

  4. Klicken Sie auf den Tab Knoten.

  5. Klicken Sie auf den Namen des Knotenpools, den Sie sich ansehen möchten.

Befehlszeile

Führen Sie dazu diesen Befehl aus:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes -o wide

Wenn Sie Ihre Änderungen rückgängig machen möchten, bearbeiten Sie die Clusterkonfigurationsdatei und führen Sie gkectl update cluster aus.

Knotenpool löschen

Sie können Knotenpools zwar löschen, Ihr Nutzercluster muss jedoch mindestens einen Knotenpool haben. Das Löschen eines Knotenpools führt dazu, dass die Knoten des Pools sofort entfernt werden, unabhängig davon, ob auf diesen Knoten Arbeitslasten ausgeführt werden.

So löschen Sie einen Knotenpool aus einem Nutzercluster:

Console

  1. Achten Sie darauf, dass auf den betroffenen Knoten keine Arbeitslasten ausgeführt werden.

  2. Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.

    Zur Seite "Anthos-Cluster"

  3. Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  4. Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.

  5. Klicken Sie auf den Tab Knoten.

  6. Klicken Sie auf den Namen des Knotenpools, den Sie löschen möchten.

  7. Klicken Sie auf Löschen.

  8. Klicken Sie auf , um zur vorherigen Seite zurückzukehren.

  9. In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.

Befehlszeile

  1. Achten Sie darauf, dass auf den betroffenen Knoten keine Arbeitslasten ausgeführt werden.

  2. Entfernen Sie seine Definition aus dem Abschnitt nodePools der Konfigurationsdatei des Nutzerclusters.

  3. Aktualisieren Sie den Cluster:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
    

    Ersetzen Sie Folgendes:

    • [ADMIN_CLUSTER_KUBECONFIG] ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.

    • [USER_CLUSTER_CONFIG] ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.

Fehlerbehebung

  • Im Allgemeinen liefert der Befehl gkectl update cluster detaillierte Informationen, wenn er fehlschlägt. Wenn der Befehl erfolgreich ausgeführt wurde und die Knoten nicht angezeigt werden, können Sie anhand des Leitfadens Clusterprobleme diagnostizieren eine Fehlerbehebung durchführen.

  • Es ist möglich, dass nicht genügend Clusterressourcen vorhanden sind, z. B. wenn beim Erstellen oder Aktualisieren des Knotenpools nicht genügend IP-Adressen verfügbar sind. Weitere Informationen dazu, wie Sie die Verfügbarkeit von IP-Adressen prüfen, finden Sie unter Größe eines Nutzerclusters anpassen.

  • Sie können auch den allgemeinen Leitfaden zur Fehlerbehebung lesen.

  • Wenn Sie nicht weiter als bis Creating node MachineDeployment(s) in user cluster… gelangen:

    Es kann eine Weile dauern, bis die Knotenpools in Ihrem Nutzercluster erstellt oder aktualisiert wurden. Wenn die Wartezeit jedoch extrem lang ist und Sie den Verdacht haben, dass etwas nicht richtig funktioniert, können Sie so vorgehen:

    1. Führen Sie kubectl get nodes aus, um den Status Ihrer Knoten abzurufen.
    2. Führen Sie für alle Knoten, die nicht bereit sind, kubectl describe node NODE_NAME aus, um Details zu erfahren.