Configurer les composants Apigee hybrid sans état pour la production

Pour les environnements de production, les composants sans état Apigee hybrid tels que MART, Runtime et Synchronizer nécessitent des configurations de ressources spécifiques pour garantir la stabilité et les performances. Cette rubrique fournit les configurations minimales recommandées pour ces composants Apigee hybrid sans état dans une installation en production. Les composants sans état s'exécutent dans le pool de nœuds apigee-runtime, comme décrit dans Configurer des pools de nœuds dédiés.

Ces recommandations sont basées sur le provisionnement par défaut d'Apigee pour les organisations payantes. Elles doivent être considérées comme des exigences minimales pour un déploiement en production. Vous devrez peut-être ajuster ces valeurs en fonction de vos schémas de trafic spécifiques et des résultats des tests de charge.

Recommandations de ressources de production

Le tableau suivant répertorie les demandes et limites de ressources recommandées pour les composants Apigee hybrid dans un environnement de production.

Composant Demande de processeur Demande de mémoire Limite de processeur Limite de mémoire
MART 500m 2Gi 2000m 5Gi
Watcher 1 4Gi 4 16Gi
Durée d'exécution 2 6Gi 4 12Gi
Synchronisateur 1 3Gi 2000m 5Gi
Agrégateur de métriques 1 10Gi 4 32Gi
Application Métriques 500m 10Gi 2 32Gi
Proxy de métriques 500m 1Gi 2 32Gi
Exportateurs de métriques
(application/proxy)
500m 3Gi 1 10Gi
Logger 100m 200Mi 200m 200Mi
Agent Connect 500m 1Gi 500m 512Mi
Mint Task Scheduler
(si vous utilisez la monétisation)
100m 100Mi 2000m 4Gi

Exemples de remplacements

Ajoutez les configurations suivantes à votre fichier overrides.yaml pour configurer votre installation Apigee hybrid pour la production.

# Production resource requests for MART
mart:
  resources:
    requests:
      cpu: 500m
      memory: 2Gi
    limits:
      cpu: 2000m
      memory: 5Gi

# Production resource requests for Watcher
watcher:
  resources:
    requests:
      cpu: 1
      memory: 4Gi
    limits:
      cpu: 4
      memory: 16Gi

# Production resource requests for environment-scoped components
envs:
  - name: your-env-name
    runtime:
      resources:
        requests:
          cpu: 2
          memory: 6Gi
        limits:
          memory: 12Gi
    synchronizer:
      resources:
        requests:
          cpu: 1
          memory: 3Gi
        limits:
          cpu: 2000m
          memory: 5Gi
  - name: your-other-env-name
    runtime:
      resources:
        requests:
          cpu: 2
          memory: 6Gi
        limits:
          memory: 12Gi
    synchronizer:
      resources:
        requests:
          cpu: 1
          memory: 3Gi
        limits:
          cpu: 2000m
          memory: 5Gi

# Production resource requests for Metrics
metrics:
  aggregator:
    resources:
      requests:
        cpu: 1
        memory: 10Gi
      limits:
        cpu: 4
        memory: 32Gi
  app:
    resources:
      requests:
        cpu: 500m
        memory: 10Gi
      limits:
        cpu: 2
        memory: 32Gi
  proxy:
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
      limits:
        cpu: 2
        memory: 32Gi
  appStackdriverExporter:
    resources:
      requests:
        cpu: 500m
        memory: 3Gi
      limits:
        cpu: 1
        memory: 10Gi
  proxyStackdriverExporter:
    resources:
      requests:
        cpu: 500m
        memory: 3Gi
      limits:
        cpu: 1
        memory: 10Gi

# Production resource requests for Logger
logger:
  resources:
    requests:
      cpu: 100m
      memory: 200Mi
    limits:
      cpu: 200m
      memory: 200Mi

# Production resource requests for Connect Agent
connectAgent:
  resources:
    requests:
      cpu: 500m
        memory: 1Gi
    limits:
      cpu: 500m
      memory: 512Mi

# Production resource requests for Mint Task Scheduler (if using Monetization)
mintTaskScheduler:
  resources:
    requests:
      cpu: 100m
      memory: 100Mi
    limits:
      cpu: 2000m
      memory: 4Gi

Appliquer la configuration

Après avoir mis à jour votre fichier overrides.yaml, appliquez les modifications à votre cluster à l'aide de helm upgrade pour chaque composant.

Pour Helm, appliquez les modifications dans l'ordre :

Mettez à jour apigee-operator :

helm upgrade operator apigee-operator/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml

Appliquez les modifications pour les composants Logger et Metrics :

helm upgrade telemetry apigee-telemetry/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml

Appliquez les modifications aux composants MART, Watcher, Connect Agent et Mint Task Scheduler :

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

Appliquez les modifications aux composants Runtime et Synchronizer pour chaque environnement de votre installation :

helm upgrade ENV_RELEASE_NAME apigee-env/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set env=ENV_NAME \
  -f OVERRIDES_FILE.yaml

Voir aussi