Citrix ADC

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.

Wichtig

Die Gewünschte Status-API für die ServiceGroup-Mitgliedschaft wird in der Citrix ADC Clusterbereitstellung unterstützt.

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.

Gewünschte Zustands-API löst das Problem, indem die beabsichtigte Elementgruppe für eine Dienstgruppe in einer einzigen API akzeptiert wird, wodurch die Konfiguration effektiv aktualisiert wird.

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. Sie können die Dienstgruppe von nicht automatisch skalieren auf den Typ “Gewünschte Zustands-API” festlegen, wenn alle angegebenen Bedingungen übereinstimmen.

Der Befehl “ServiceGroup automatisch skalieren festlegen” 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 Typen von Autoskalierung (Cloud, API, DNS und Policy) in einem Satz ServiceGroup-Befehl auswählen und ServiceGroup Befehl hinzufügen.

Wichtig:

  • Die Parameter AutoDisableGraceful und AutoDisableDelay sind nur für die Dienstgruppen des 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 ein ordnungsgemäßes Aufheben der Bindung identifiziert wurden, werden nur angezeigt, wenn der Befehl show service group 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 ein Beispiel für den Befehl show service group.

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 Verkehrsverwaltung > Lastenausgleich > Dienstgruppen.

    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 YES 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 für AutoScale Mode die Option API oder CLOUD auswählen.