Konfigurieren Sie einen gewünschten Satz von Servicegruppenmitgliedern für eine Servicegruppe in einem NITRO API-Aufruf

Es wird Unterstützung hinzugefügt, um eine gewünschte Gruppe von Service-Gruppenmitgliedern für eine Service-Gruppe in einem NITRO API-Aufruf zu konfigurieren. Zur Unterstützung dieser Konfiguration wird eine neue API, die die gewünschte Zustands-API, hinzugefügt. Mit der API für den gewünschten Zustand können Sie:

  • Geben Sie eine Liste von Dienstgruppenmitgliedern in einer einzelnen PUT-Anforderung für die Ressource servicegroupmemberlist_binding an.
  • Geben Sie ihr Gewicht und ihren Status (optional) in dieser PUT-Anforderung an.
  • Effektive Synchronisierung der Appliance-Konfiguration mit Bereitstellungsänderungen um Anwendungsserver.

Die Citrix ADC Appliance vergleicht die angeforderte gewünschte Elementgruppe mit der konfigurierten Elementgruppe. Dann bindet es automatisch die neuen Elemente und entbindet die Elemente, die nicht in der Anforderung vorhanden sind.

Hinweis:

  • Diese Funktion wird nur für Service-Gruppen vom TypAPI.
  • Sie können IP-adressbasierte Dienste nur mit der API für den gewünschten Zustand binden. Domänennamenbasierte Dienste sind nicht zulässig.
  • Zuvor kann nur ein Servicegruppenmitglied in einem NITRO -Aufruf gebunden werden.

Anwendungsfall: Synchronisieren von Bereitstellungsänderungen mit Citrix ADC Appliance in großen Bereitstellungen, z. B. Kubernetes

In großen und hochdynamischen Bereitstellungen (z. B. Kubernetes) besteht die Herausforderung darin, die Appliance-Konfiguration mit der Geschwindigkeit der Änderungen der Bereitstellungen auf dem neuesten Stand zu halten, um den Anwendungsdatenverkehr genau zu bedienen. In solchen Bereitstellungen sind Controller (Ingress oder E-W Controller) für die Aktualisierung der ADC-Konfiguration verantwortlich. Wenn Änderungen an der Bereitstellung vorgenommen werden, sendet der kube-api Server den effektiven Satz von Endpunkten über das ‘Endpunkteereignis’ an den Controller. Der Controller verwendet den Read-Delta-Modify-Ansatz, bei dem er Folgendes durchführt:

  • Ruft den aktuell konfigurierten Endpunktsatz (Dienstgruppenmitgliedsatz einer Dienstgruppe) für den Dienst von der ADC-Appliance ab.
  • Vergleicht den konfigurierten Endpunktsatz mit dem Satz im empfangenen Ereignis.
  • Bindet die neuen Endpunkte (Servicegruppenmitglieder) oder entbindet die gelöschten Endpunkte.

Da die Änderungsrate und die Größe der Dienste in dieser Umgebung hoch ist, ist diese Konfigurationsmethode nicht effizient und kann Konfigurationsupdates verzögern.

Die API für den gewünschten Status löst dieses Problem, indem sie die beabsichtigte Elementgruppe für eine Servicegruppe in einer einzigen API akzeptiert und dadurch die Konfiguration effektiv aktualisiert.

Erstellen einer Service-Gruppe vom Typ-API mit der CLI

Geben Sie an der Eingabeaufforderung;

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>]

Beispiel:

add serviceGroup svg1 HTTP -autoScale API

Sie können die ParameterautoDisablegraceful, autoDisabledelay und autoScale und konfigurieren, indem Sie den Befehl serviceGroup hinzufügen oder den Befehl serviceGroup festlegen.

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>] [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

set serviceGroup <serviceGroupName [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

set serviceGroup <serviceGroupName [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

Beispiel:

add serviceGroup svg1 HTTP autoDisablegraceful YES -autoDisabledelay 100

add serviceGroup svg1 HTTP -autoScale API

set serviceGroup svg1 -autoDisablegraceful  YES -autoDisabledelay 100

set serviceGroup svg1 -autoScale API

Argumente

autoDisablegraceful

Zeigt ein ordnungsgemäßes Herunterfahren des Dienstes an. Wenn diese Option aktiviert ist, wartet die Appliance darauf, dass alle ausstehenden Verbindungen zu diesem Dienst geschlossen werden, bevor der Dienst gelöscht wird. Für Clients, die bereits eine dauerhafte Sitzung auf dem System haben, werden neue Verbindungen oder Anforderungen weiterhin an diesen Dienst gesendet. Das Dienstmitglied wird nur gelöscht, wenn keine ausstehenden Verbindungen vorhanden sind. Standardwert: NO

autoDisabledelay

Gibt die zulässige Zeit (in Sekunden) für ein ordnungsgemäßes Herunterfahren an. Während dieser Zeit werden neue Verbindungen oder Anforderungen an diesen Dienst für Clients gesendet, die bereits eine dauerhafte Sitzung auf dem System haben. Verbindungen oder Anforderungen von neuen Clients, die keine Persistenzsitzungen auf dem System haben, werden nicht an den Dienst gesendet. Stattdessen werden sie unter anderen verfügbaren Diensten lastausgeglichen. Nach Ablauf der Verzögerungszeit wird das Dienstmitglied gelöscht.

autoScale API

Aktiviert die Verwendung der API für den gewünschten Status, um die Elementgruppe an eine beabsichtigte Dienstgruppe zu binden. Wenn alle angegebenen Bedingungen übereinstimmen, können Sie die Servicegruppe von Nicht-Autoskalierung auf den automatischen Skalierungstyp der gewünschten Zustands-API festlegen.

Der Befehl set serviceGroup autoScale schlägt möglicherweise fehl, wenn die vorhandenen Elementbindungen eine der folgenden Bedingungen erfüllen:

  • Wenn der an die Dienstgruppe gebundene Server entweder ein Nameserver oder ein domänenbasierter Server ist.
  • Wenn der Name des an die Dienstgruppe gebundenen Servers eine IP-Adresse ist, muss er mit der tatsächlichen Server-IP-Adresse übereinstimmen. Im folgenden Beispiel stimmen der Servername und die Server-IP-Adresse nicht überein.
    • CLI: add server IPaddress server name
    • Beispiel: add server 1.2.3.4 4.3.2.1
  • Wenn der Name des Loopback-Servers einen anderen Wert als 127.0.0.1 oder 0000:0000:0000:0000:0000:0000:0000:0001 hat.
  • Wenn Sie verschiedene Arten von Autoskalierung (Cloud, API, DNS und Richtlinie) in einem Satz ServiceGroup-Befehl auswählen und den Befehl ServiceGroup hinzufügen.

Wichtig:

  • Die Parameter autoDisablegraceful und autoDisabledelay sind nur für die Service-Gruppen des Autoscale-Typs API und CLOUD anwendbar.
  • Wenn die Parameter autoDisablegraceful oder autoDisabledelay nicht konfiguriert sind, werden Dienstmitglieder sofort gelöscht.

Bindung eines Servicegruppenmitglieds ordnungsgemäß aufheben

Wenn sich eines der Dienstgruppenmitglieder nicht in der Liste des gewünschten Zustands befindet, werden diese Mitglieder aufgrund der ParameterkonfigurationautoDisablegraceful oder autoDisabledelay ordnungsgemäß ungebunden.

  • Wenn einer dieser Parameter festgelegt ist, wird das Dienstgruppenmitglied ordnungsgemäß ungebunden.
  • Wenn keiner dieser Parameter festgelegt ist, wird das Dienstgruppenmitglied sofort ungebunden.

Hinweis:

  • Dienstgruppenmitglieder, die für die ordnungsgemäße Unbind identifiziert wurden, werden nur angezeigt, wenn der Befehl show servicegroup ausgeführt wird.
  • Sie können keinen Vorgang (z. B. Set, Unset) für das Dienstgruppenmitglied ausführen, das für die ordnungsgemäße Aufheben der Bindung identifiziert wurde.

Die folgende Abbildung zeigt einen Beispielbefehl show servicegroup.

Beispiel: Dienstgruppenbefehl anzeigen

Erstellen einer Service-Gruppe vom Typ-API mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Service Groups, und klicken Sie auf Hinzufügen.

  2. Wählen Sie für AutoScale Mode die Option API aus.

Konfigurieren eines ordnungsgemäßen Herunterfahrens oder einer Zeitverzögerung für eine API-Typ-Servicegruppe mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Service Groups.

    Grundeinstellungen von Servicegruppen

  2. Wählen Sie für AutoScale Mode die Option API aus.

  3. Wählen Sie unter Auto Disable Graceful die Option JA aus.

  4. Geben Sie unter Automatische Deaktivierungsverzögerung die Wartezeit für ein ordnungsgemäßes Herunterfahren ein.

Hinweis: Die Felder Auto Disable Gracefu oder Automatische Anzeigeverzögerung sind nur aktiviert, wenn Sie im AutoScale ModeAPI oder CLOUD auswählen.