Gestione dei componenti del piano di runtime

Questo argomento spiega come configurare e gestire i componenti del piano di runtime di Apigee hybrid . Per un elenco dei componenti del piano di runtime che puoi configurare, consulta Panoramica della configurazione dei servizi di runtime.

Informazioni sul file di overrides

La prima volta che installi il runtime di hybrid in un cluster, devi creare un file di overrides della configurazione. Questo file ti consente di sostituire i valori di configurazione predefiniti in base alle esigenze, configurare gli ambienti, fare riferimento ai certificati TLS e alle chiavi degli account di servizio , assegnare i node pool Kubernetes a componenti hybrid specifici e così via.

I passaggi di installazione di hybrid installation steps ti guidano nella creazione di un file di overrides e nell'applicazione della configurazione a un cluster. Se vuoi modificare la configurazione in un secondo momento, modifica il file di overrides che hai creato e riapplicalo.

Apportare una modifica alla configurazione

Per apportare una modifica alla configurazione di un componente del piano di runtime di hybrid, modifica il file di overrides e utilizza Helm per eseguire l'upgrade del grafico corrispondente al componente. Il seguente grafico mostra quali grafici corrispondono a quali componenti di Apigee hybrid:

AmbitoComponentiGrafico Helm
Operatore Apigee Operatore Apigee apigee-operator
Spazio di archiviazione Cassandra apigee-datastore
Spazio di archiviazione in memoria Redis apigee-redis
Report Logger
Metriche
apigee-telemetry
In entrata Gateway in entrata Apigee apigee-ingress-manager
Organizzazione Agente Apigee Connect
MART
UDCA
Watcher
apigee-org
Ambiente Runtime
Synchronizer
apigee-env
Gruppo di ambienti virtualhost apigee-virtualhost

Ad esempio, per modificare il numero di repliche nel processore di messaggi:

  1. Apri il tuo OVERRIDES.yaml file. Assicurati di utilizzare lo stesso file di overrides utilizzato per installare il runtime di hybrid nel cluster.
  2. Individua l'elemento runtime nel file. Ad esempio:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Vedi:

  4. Modifica le proprietà del conteggio delle repliche in base alle esigenze. Ad esempio:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  5. Esegui l'upgrade dell'ambiente.
  6. Devi installare un ambiente alla volta. Specifica l'ambiente con --set env=ENV_NAME.

    Dry run:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run=server
    
    • ENV_RELEASE_NAME è il nome con cui hai installato in precedenza il apigee-env grafico. In hybrid v1.10, in genere è apigee-env-ENV_NAME. In Hybrid v1.11 e versioni successive, in genere è ENV_NAME.
    • ENV_NAME è il nome dell'ambiente di cui stai eseguendo l'upgrade.
    • OVERRIDES_FILE è il nuovo file di overrides per la versione 1.15.3.
  7. Esegui l'upgrade del grafico:
  8. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  9. Verifica che sia in esecuzione controllando lo stato dell'ambiente corrispondente:
  10. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

Quali proprietà di configurazione puoi modificare?

Puoi trovare l'elenco completo delle proprietà configurabili nel riferimento alle proprietà di configurazione. Il riferimento elenca solo le proprietà che puoi modificare; se provi a modificare una proprietà non presente nel riferimento, la modifica viene ignorata.

Come utilizzare il riferimento alla configurazione

Il riferimento alle proprietà di configurazione utilizza la notazione con punti per descrivere gli elementi di configurazione, dove il primo elemento è il nome dell'elemento di primo livello seguito dalle proprietà e dalle proprietà secondarie. Ad esempio:

ao.image.pullPolicy

Nel file di overrides, le proprietà sono formattate in formato YAML corretto. Nell'esempio precedente, l'elemento di primo livello ao è rientrato a sinistra e le proprietà degli elementi secondari sono rientrate sotto di esso. Inoltre, YAML richiede un due punti alla fine di ogni elemento ed elemento secondario.

Ad esempio, per impostare la proprietà ao.image.pullPolicy su Always, individua questa sezione YAML nel file di overrides e impostala come segue:

ao:
  image:
    pullPolicy: Always

Per un altro esempio, la proprietà cassandra.auth.admin.password (come elencata nel Riferimento alle proprietà di configurazione) viene utilizzata per impostare la password di amministratore di Cassandra. Per modificarla, individua il seguente YAML nel file di overrides e impostalo come segue:

cassandra:
  auth:
    admin:
      password: abc123

Ricorda che il riferimento alle proprietà di configurazione descrive tutte le proprietà che puoi impostare sui componenti del piano di runtime di hybrid. Segui il pattern spiegato sopra per modificare questi elementi nel file di overrides prima di applicare le modifiche al cluster.

Utilizzare file di overrides di esempio predefiniti

Quando installi per la prima volta il runtime di hybrid, Apigee consiglia di utilizzare uno dei file di overrides di esempio preconfigurati. Questi esempi forniscono un set completo di configurazione proprietà per scenari di installazione specifici, ad esempio per la configurazione di un'installazione di produzione o di test. Non devi fare altro che fornire i valori appropriati per le proprietà e applicare il file di overrides al cluster. Per ulteriori informazioni, consulta il passaggio 7: Crea gli overrides.

Informazioni sui valori predefiniti di configurazione

Apigee gestisce la configurazione predefinita dei componenti nel file HYBRID_ROOT_DIR/config/values.yaml. I file di overrides seguono la stessa struttura YAML di values.yaml.

Un file di overrides in genere include solo un sottoinsieme delle proprietà di configurazione presenti in values.yaml. Ricorda che non tutte le proprietà sono modificabili. Quando applichi una configurazione a un cluster, gli overrides vengono uniti ai valori predefiniti per creare la configurazione completa del cluster Kubernetes. Consulta anche Test la configurazione unita.

Il seguente codice mostra la configurazione predefinita del componente mart come si trova in values.yaml. Tieni presente che alcuni valori hanno valori predefiniti, mentre altri, come sslCertPath e sslKeyPath, non ne hanno. Devi fornire questi valori mancanti nel tuo file di overrides, come spiegato nei passaggi di installazione. Se vuoi modificare uno dei valori predefiniti, assicurati che siano modificabili controllando il riferimento alle proprietà di configurazione.

...
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.15.3"
    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: |
...

Se vuoi modificare i valori predefiniti di un componente e il componente non è già presente nel file di overrides, puoi copiare il relativo YAML da values.yaml nel tuo file di overrides e modificarlo lì.

Annotazioni personalizzate

Le annotazioni sono mappe chiave/valore utilizzate per allegare metadati ai pod Kubernetes di Apigee hybrid. Puoi creare annotazioni personalizzate per le seguenti proprietà elencate in riferimento alle proprietà di configurazione:

Per aggiungere un'annotazione personalizzata, aggiungi una sezione al file OVERRIDES.yaml per il componente corrispondente.

Il seguente esempio illustra come è possibile specificare un'annotazione nei runtime pod:

runtime:
  annotations:
    businessunit: "bu1"

Testare la configurazione unita

Puoi utilizzare il flag --dry-run per testare il file di configurazione unito senza applicarlo effettivamente al cluster. Questa opzione è utile per il debug di un problema di installazione perché mostra esattamente cosa verrà applicato al cluster. È anche una buona pratica testare la configurazione e archiviarla nel controllo del codice sorgente in modo da avere un riferimento alle risorse installate e configurate nel cluster.

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

Creare più file di overrides in base alle esigenze

Puoi creare tutti i file di overrides che vuoi, ognuno dei quali soddisfa un requisito specifico. Ad esempio, potresti avere un file di overrides che ottimizza il cluster per la produzione e un altro per la creazione di un cluster di test. Puoi quindi gestire questi file nel sistema di controllo del codice sorgente.

Ad esempio:

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

Eliminare i componenti del piano di runtime specifici di hybrid

I componenti del piano di runtime includono synchronizer, mart, runtime, cassandra, e udca.

Per eliminare i componenti del piano di runtime specifici di hybrid dal cluster, utilizza il helm delete comando. Assicurati di specificare lo stesso file di overrides che hai utilizzato per installare i componenti di runtime.

Ad esempio:

Utilizzando Helm, devi eliminare ogni componente singolarmente. Ad esempio, per eliminare il cassandra componente, utilizza il seguente comando:

helm -n APIGEE_NAMESPACE delete datastore

Nell'esempio precedente, il componente del datastore è stato installato con il nome "datastore". Se l'hai installato con un nome diverso, devi fornire quel nome per eliminare il componente. Ad esempio, se hai installato il grafico apigee-datastore con helm install my-cassandra-storage apigee-datastore/. Puoi eliminarlo con il seguente comando:

helm delete -n apigee my-cassandra-storage

Per ricreare un componente o componenti specifici (il gruppo di ambienti in questo esempio):

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