Komponenten der Laufzeitebene verwalten

In diesem Thema wird erläutert, wie Sie die hybriden Komponenten der Laufzeit von Apigee konfigurieren und verwalten. Eine Liste der Komponenten der Laufzeitebene, die Sie konfigurieren können, finden Sie unter Übersicht über die Laufzeitdienstkonfiguration.

Informationen zu Überschreibungen

Wenn Sie die Hybridlaufzeit zum ersten Mal in einem Cluster installieren, müssen Sie eine Überschreibungsdatei für die Konfiguration erstellen. Mit dieser Datei können Sie die Standardkonfigurationswerte nach Bedarf überschreiben, Umgebungen konfigurieren, TLS-Zertifikate und Dienstkontoschlüssel referenzieren, Kubernetes-Knotenpools bestimmten Hybridkomponenten zuweisen usw.

Bei den hybriden Installationsschritten werden die Schritte zum Erstellen einer Überschreibungsdatei und die Konfiguration auf einen Cluster angewendet. Wenn Sie die Konfiguration später ändern möchten, ändern Sie die erstellte Datei mit den Einstellungen und wenden Sie sie noch einmal an.

Konfigurationsänderung vornehmen

Wenn Sie eine Konfigurationsänderung an einer Komponente der Hybrid-Laufzeitebene vornehmen möchten, bearbeiten Sie die Überschreibungsdatei und wenden Sie die Änderungen je nach Managementtool mit Helm oder apigeectl an.

So können Sie beispielsweise die Anzahl der Replikate auf dem Nachrichtenprozessor ändern:

  1. Öffnen Sie Ihre OVERRIDES.yaml-Datei. Achten Sie darauf, dieselbe Überschreibungsdatei zu verwenden, mit der die Hybrid-Laufzeit im Cluster installiert wurde.
  2. Suchen Sie in der Datei das Element runtime. Beispiel:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Ändern Sie die Attribute der Replikatanzahl nach Bedarf. Beispiele:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  4. Helm

    Wenden Sie die Änderungen mit dem apigee-org-Diagramm an:

      helm upgrade ORG_NAME apigee-org/ \
        --namespace apigee \
        --atomic \
        -f OVERRIDES_FILE.yaml
      

    apigeectl

    Verwenden Sie apigeectl, um die Änderung auf den Cluster anzuwenden:

    apigeectl apply -f ./OVERRIDES.yaml --org --env ENV_NAME

Welche Konfigurationsattribute können Sie ändern?

Eine vollständige Liste der konfigurierbaren Attribute finden Sie in der Referenz des Konfigurationsattributs. In der Referenz werden nur die Attribute aufgeführt, die Sie ändern können. Wenn Sie versuchen, ein Attribut zu ändern, das nicht in der Referenz enthalten ist, wird die Änderung ignoriert.

Konfigurationsreferenz verwenden

In der Konfigurationsattributreferenz werden Konfigurationselemente durch Punktschreibweise beschrieben. Das erste Element ist der Name des Elements auf oberster Ebene, gefolgt von Attributen und untergeordneten Eigenschaften. Beispiel:

ao.image.pullPolicy

In der Überschreibungsdatei sind die Attribute in der richtigen YAML-Datei formatiert. Für das obige Beispiel ist das Element ao der obersten Ebene links einrücken. Die untergeordneten Elemente werden darunter eingerückt. Außerdem ist am Ende jedes Elements und des Unterelements ein Doppelpunkt erforderlich.

Wenn Sie beispielsweise das Attribut ao.image.pullPolicy auf Always setzen möchten, suchen Sie die folgende YAML-Stanza in der Überschreibungsdatei und legen Sie sie so fest:

ao:
  image:
    pullPolicy: Always

In einem anderen Beispiel wird das Attribut cassandra.auth.admin.password (wie in der Konfigurationsattributreferenz aufgeführt) verwendet, um das Cassandra-Administratorpasswort festzulegen. Um es zu ändern, suchen Sie die folgende YAML-Datei in der Überschreibungsdatei und legen Sie sie so fest:

cassandra:
  auth:
    admin:
      password: abc123

Denken Sie daran, dass in der Konfigurationsattributreferenz alle Eigenschaften beschrieben werden, die Sie für Komponenten der Hybrid-Laufzeitebene festlegen können. Folgen Sie dem oben beschriebenen Muster, um diese Elemente in Ihrer Überschreibungsdatei zu ändern, bevor Sie die Änderungen auf den Cluster anwenden.

Vordefinierte Beispiele von Überschreibungsdateien verwenden

Wenn Sie die Hybridlaufzeit erstmalig installieren, empfiehlt Apigee, dass Sie eine der vorkonfigurierten Beispieldateien verwenden. Diese Beispiele enthalten einen vollständigen Satz von Konfigurationseigenschaften für bestimmte Installationsszenarien, z. B. zum Einrichten einer Produktions- oder Testinstallation. Sie müssen lediglich die entsprechenden Werte für die Attribute angeben und die Überschreibungsdatei auf den Cluster anwenden. Weitere Informationen finden Sie unter Schritt 6: Cluster konfigurieren.

Informationen zu Standardeinstellungen für die Konfiguration

Apigee behält seine Standardkonfiguration der Datei HYBRID_ROOT_DIR/config/values.yaml bei. Ihre Überschreibungen für Dateien entsprechen derselben YAML-Struktur wie values.yaml.

Eine Überschreibungsdatei enthält in der Regel nur eine Teilmenge der Konfigurationsattribute in values.yaml. Beachten Sie, dass nicht alle Attribute bearbeitet werden können. Wenn Sie eine Konfiguration auf einen Cluster anwenden, werden die Überschreibungen mit den Standardeinstellungen zusammengeführt, um die vollständige Konfiguration des Kubernetes-Clusters zu erstellen. Weitere Informationen finden Sie unter Zusammengeführte Konfiguration testen.

Der folgende Code zeigt die Standardkonfiguration für die Komponente mart, wie sie in values.yaml zu finden ist. Beachten Sie, dass einige Werte Standardwerte haben, andere nicht, zum Beispiel sslCertPath und sslKeyPath. Sie müssen diese fehlenden Werte in der Überschreibungsdatei angeben, wie in den Installationsschritten erläutert. Sie können die Standardwerte auch ändern, indem Sie in der Referenz des Konfigurationsattributs nachsehen.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.3.6"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

Wenn Sie die Standardeinstellungen einer Komponente ändern möchten und die Komponente noch nicht in der Überschreibungsdatei enthalten ist, können Sie die YAML-Datei aus values.yaml in die Überschreibungsdatei kopieren und dort ändern.

Beispiel für Überschreibungsdateien

Apigee bietet eine Reihe von Beispielüberschreibungen für Dateien, die Sie bei der Einrichtung Ihrer Hybridbereitstellung unterstützen. Es wird empfohlen, die Überschreibungsdatei zu kopieren und zu ändern, die Ihren Installationsanforderungen am ehesten entspricht.

Die folgenden Beispiele sind im Verzeichnis HYBRID_ROOT_DIR/examples enthalten:

Beispiel für Überschreibungsdateien Beschreibung
overrides-small.yaml Dieses Beispiel ist ideal für einen schnellen Einstieg. Zum Starten der hybriden Laufzeitkomponenten werden die empfohlenen Mindestanforderungen verwendet. Diese Beispielkonfiguration basiert so weit wie möglich auf Standardeinstellungen und -werten. Die minimale Replikatanzahl ist jeweils auf 1 festgelegt.
overrides-medium.yaml Dieses Beispiel ist ein guter Ausgangspunkt für Test- und QA-Umgebungen. Den einzelnen Komponenten wurden mehr Ressourcen zugewiesen, um zusätzlichen Traffic zu verarbeiten. Cassandra nutzt SSD-Laufwerke zur Leistung. In dieser Umgebung empfiehlt es sich, die zustandsorientierten und zustandslosen Komponenten auf separaten Knoten zu installieren. Siehe Dedizierte Knoten konfigurieren.
overrides-large.yaml Dieses Beispiel ist ein guter Ausgangspunkt für leistungsstarke Umgebungen wie Vor- und Produktion. Das Beispiel enthält Attribute zum Festlegen von Verschlüsselungsschlüsseln, Passwörtern usw. Einzelne Komponenten haben mindestens zwei Replikate.

Benutzerdefinierte Annotationen

Annotationen sind Schlüssel/Wert-Zuordnungen, mit denen Metadaten an Apigee Hybrid-Kubernetes-Pods angehängt werden. Sie können benutzerdefinierte Annotationen für die folgenden Attribute erstellen, die in der Referenz zu Konfigurationsattributen aufgeführt sind:

Zum Hinzufügen einer benutzerdefinierten Annotation fügen Sie der Datei OVERRIDES.yaml für die entsprechende Komponente eine Stanza hinzu.

Das folgende Beispiel zeigt, wie eine Annotation in runtime-Pods angegeben werden kann:

runtime:
  annotations:
    businessunit: "bu1"

Zusammengeführte Konfiguration testen

Mit dem Flag --dry-run können Sie die zusammengeführte Konfigurationsdatei testen, ohne sie tatsächlich auf Ihren Cluster anzuwenden. Diese Option ist nützlich, um ein Installationsproblem zu beheben, da Sie genau sehen, was auf den Cluster angewendet wird. Es empfiehlt sich außerdem, die Konfiguration zu testen und in der Versionsverwaltung zu speichern, damit Sie einen Verweis auf die Ressourcen haben, die im Cluster installiert und konfiguriert sind.

Helm

kubectl apply -k  apigee-operator/etc/crds/default/
      
helm upgrade operator apigee-operator/ \
  --install \
  --namespace apigee-system \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run
helm upgrade ingress-manager apigee-ingress-manager/ /
  --install \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run

apigeectl

APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=client

Weitere Informationen finden Sie unter apigeectl.

Nach Bedarf mehrere Überschreibungen erstellen

Sie können beliebig viele Überschreibungen erstellen, wobei jede Datei eine bestimmte Anforderung erfüllt. Nehmen wir z. B. an, dass Sie eine Überschreibungsdatei haben, die Ihren Cluster für die Produktion wiedergibt, und eine weitere Datei zum Erstellen eines Testclusters. Sie können diese Dateien dann in Ihrem Versionsverwaltungssystem verwalten.

Beispiele:

Helm

helm upgrade test-1-env apigee-env/ \
  --namespace apigee \
  --atomic \
  --set env=test-1-env \
  -f test-1-env-overrides.yaml

apigeectl

$APIGEECTL_HOME/apigeectl apply -f test-1-env-overrides.yaml --env test-1-env

Hybrid-spezifische Laufzeitebenen-Komponenten löschen

Die Komponenten der Laufzeitebene umfassen synchronizer, mart, runtime, cassandra und udca.

Mit den Befehlen helm delete oder apigeectl delete löschen Sie die hybriden Laufzeitkomponentenkomponenten aus dem Cluster. Achten Sie darauf, dieselbe Überschreibungsdatei anzugeben, mit der Sie die Laufzeitkomponenten installiert haben:

Beispiele:

Helm

In Helm müssen Sie jede Komponente einzeln löschen. Löschen Sie beispielsweise die cassandra-Komponente mit dem folgenden Befehl:
helm -n apigee delete datastore

Im obigen Beispiel wurde die Datenspeicherkomponente mit dem Namen „datastore” installiert. Wenn Sie sie mit einem anderen Namen installiert haben, geben Sie diesen Namen an, um die Komponente zu löschen. Wenn Sie beispielsweise das Diagramm apigee-datastore mit helm install my-cassandra-storage apigee-datastore/ installiert haben, Sie würden diese mit dem folgenden Befehl löschen:

helm delete -n apigee my-cassandra-storage

apigeectl

Mit apigeectl können Sie alle Laufzeitkomponenten gleichzeitig löschen oder den Bereich einschränken, sodass nur eine Komponente auf einmal gelöscht wird. So löschen Sie beispielsweise alle Komponenten gleichzeitig:
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml

So löschen Sie die Komponente cassandra:

$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml --datastore

So erstellen Sie eine bestimmte Komponente oder Komponenten (die Umgebungsgruppe in diesem Beispiel) neu:

Helm

helm upgrade ENV_GROUP apigee-virtualhost/ \
  --install \
  --namespace apigee \
  --atomic \
  --set envgroup=ENV_GROUP_NAME \
  -f OVERRIDES_FILE.yaml

apigeectl

$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --env ENV_NAME --settings virtualhosts