Knotenpools
Ein Knotenpool besteht aus einer Gruppe von Knoten in einem Cluster, die alle dieselbe Konfiguration haben.
Normalerweise definieren Sie separate Knotenpools, wenn Sie Pods mit unterschiedlichen Ressourcenanforderungen haben.
Die apigee-cassandra
-Pods erfordern beispielsweise nichtflüchtigen Speicher, die anderen Apigee Hybrid-Pods jedoch nicht.
In diesem Thema wird erläutert, wie Sie dedizierte Knotenpools für eine Hybridinstallation konfigurieren.
Standard-nodeSelectors verwenden
Als Best Practice wird empfohlen, zwei dedizierte Knotenpools einzurichten: einen für die Cassandra-Pods und einen für alle anderen Laufzeit-Pods. Mit den standardmäßigen nodeSelector-Konfigurationen weist das Installationsprogramm die Cassandra-Pods einem zustandsorientierten Knotenpool mit dem Namen apigee-data
und allen anderen Pods einem zustandslosen Knotenpool namens apigee-runtime
zu. Sie müssen lediglich Knotenpools mit diesen Namen erstellen. Apigee Hybrid übernimmt die Pod-Planungsdetails:
Name des Standardknotenpools | Beschreibung |
---|---|
apigee-data |
Ein zustandsorientierter Knotenpool. |
apigee-runtime |
Ein zustandsloser Knotenpool. |
Im Folgenden sehen Sie die nodeSelector
-Standardkonfiguration. Das Attribut apigeeData
gibt einen Knotenpool für die Cassandra-Pods an. Die apigeeRuntime
gibt den Knotenpool für alle anderen Pods an. Sie können diese Standardeinstellungen in Ihrer overrides-Datei überschreiben, wie später in diesem Thema erläutert:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Damit Ihre Pods für die richtigen Knoten geplant sind, müssen Sie zwei Knotenpools mit den Namen apigee-data
und apigee-runtime
erstellen.
Das Attribut „requiredForScheduling“
Der Konfigurationsabschnitt nodeSelector
hat ein Attribut mit dem Namen requiredForScheduling
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Wenn das Flag auf false
gesetzt ist, werden zugrunde liegende Pods geplant, unabhängig davon, ob Knotenpools mit den erforderlichen Namen definiert sind. Wenn Sie also Knotenpools vergessen oder versehentlich einen anderen Knotenpool als apigee-runtime
oder apigee-data
benennen, ist die Installation der Hybridlaufzeit erfolgreich. Kubernetes entscheidet, wo Ihre Pods ausgeführt werden sollen.
Wenn Sie requiredForScheduling
auf true
(Standard) setzen, schlägt die Installation fehl, es sei denn, es gibt Knotenpools, die mit den konfigurierten nodeSelector
-Schlüsseln und -Werten übereinstimmen.
Benutzerdefinierte Knotenpoolnamen verwenden
Wenn Sie keine Knotenpools mit den Standardnamen verwenden möchten, können Sie Knotenpools mit benutzerdefinierten Namen erstellen und diese Namen im nodeSelector
-Block angeben. Zum Beispiel weist die folgende Konfiguration die Cassandra-Pods dem Pool my-cassandra-pool
und allen anderen Pods dem Pool mit dem Namen my-runtime-pool
zu:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "my-runtime-pool" apigeeData: key: "cloud.google.com/gke-nodepool" value: "my-cassandra-pool"
Knotenpool für bestimmte Komponenten in GKE überschreiben
Sie können Knotenpools auch auf der Ebene einzelner Komponenten überschreiben. Die folgende Konfiguration weist beispielsweise den Knotenpool mit dem Wert apigee-custom
der Komponente runtime
zu:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
Sie können einen benutzerdefinierten Knotenpool für jede dieser Komponenten angeben:
istio
mart
synchronizer
runtime
cassandra
udca
logger
GKE- und Google Distributed Cloud-Knotenpoolkonfiguration
Auf GKE- und Google Distributed Cloud-Plattformen (GDC) müssen Knotenpools einen eindeutigen Namen haben, den Sie beim Erstellen der Pools angeben. GKE/GDC weist jedem Knoten automatisch Folgendes zu:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Wenn Sie Knotenpools mit den Namen apigee-data
und apigee-runtime
erstellen, ist keine weitere Konfiguration erforderlich. Wenn Sie benutzerdefinierte Knotennamen verwenden möchten, finden Sie weitere Informationen dazu unter Benutzerdefinierte Knotenpoolnamen verwenden.
Knotenpoolkonfiguration auf anderen Kubernetes-Plattformen.
Informationen zum Labeln und Verwalten von Knotenpools finden Sie in der Dokumentation Ihrer Kubernetes-Plattform.
Die Worker-Knoten werden in den Knotenpools standardmäßig automatisch mit Label versehen. Sie können den Worker-Knoten aber auch manuell ein Label zuweisen, und zwar so:
- Führen Sie den folgenden Befehl aus, um eine Liste der Worker-Knoten in Ihrem Cluster abzurufen:
kubectl -n APIGEE_NAMESPACE get nodes
Wenn Sie benutzerdefinierte Knotenpool-Labels verwenden, muss jedes Schlüssel/Wert-Paar eindeutig sein. Beispiel:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "pool1-key" value: "pool1-label" apigeeData: key: "pool2-key" value: "pool2-label"
Knotenpool für bestimmte Komponenten überschreiben
Sie können die Konfigurationen der Knotenpools auch auf der Ebene einzelner Komponenten überschreiben. Die folgende Konfiguration weist beispielsweise den Knotenpool mit dem Wert
apigee-custom
der Komponenteruntime
zu:runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
Sie können einen benutzerdefinierten Knotenpool für jede dieser Komponenten angeben:
apigeeingressgateway
cassandra
logger
mart
metrics
runtime
synchronizer
udca