Configurer la limite de délai avant expiration de la cible dans Apigee hybrid

Présentation

À partir de la version 1.14.2, Apigee hybrid est compatible avec une limite de délai avant expiration de la cible allant jusqu'à 10 minutes.

Apigee hybrid est compatible avec le délai avant expiration de la cible io.timeout.millis (55 000 millisecondes par défaut). Consultez la spécification du transport du point de terminaison cible.

Pour permettre aux environnements de votre installation hybride d'augmenter la limite de délai avant expiration de la cible pour plusieurs points de terminaison cibles lents, apportez les modifications suivantes à votre configuration d'exécution :

  • Configurez virtualhosts[].requestTimeout entre Istio et le processeur de messages(MP). Voir virtualhosts
  • Configurer conf_http_HTTPTransport.io.timeout.millis entre le processeur de message et les cibles

Vous pouvez configurer ces paramètres pour des environnements individuels ou pour tous les environnements de votre installation.

Configurer l'hôte virtuel pour modifier la limite du délai avant expiration de la requête

requestTimeout correspond au délai maximal (en secondes) défini sur un hôte virtuel pour qu'une requête soit traitée par le MP.

Pour configurer la limite de délai avant expiration des requêtes, vous pouvez utiliser les propriétés virtualhosts[].requestTimeout. Apportez les modifications suivantes à votre fichier overrides.yaml :

  1. Ajoutez le stanza suivant à votre fichier overrides.yaml :
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. Vous devez installer un groupe d'environnements (hôte virtuel) à la fois. Spécifiez le groupe d'environnement avec --set envgroup=ENV_GROUP_NAME. Répétez les commandes suivantes pour chaque groupe d'environnements mentionné dans le fichier overrides.yaml :

    Effectuez un dry run :

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    ENV_GROUP_RELEASE_NAME est le nom avec lequel vous avez déjà installé le graphique apigee-virtualhost. Il s'agit généralement de ENV_GROUP_NAME.

    Mettez à niveau le graphique :

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. Vérifiez l'état de la ressource ApigeeRoute (AR).

    L'installation de virtualhosts crée ApigeeRouteConfig (ARC) qui crée ApigeeRoute en interne une fois que l'observateur Apigee extrait les détails liés au groupe d'environnement du plan de contrôle. Par conséquent, vérifiez que l'état d'AR correspondant est en cours d'exécution :

    kubectl -n APIGEE_NAMESPACE get arc
    
    NAME                                STATE   AGE
    apigee-org1-dev-egroup                       2d
    
    kubectl -n APIGEE_NAMESPACE get ar
    
    NAME                                        STATE     AGE
    apigee-org1-dev-egroup-cb9a8a              running   2d
    

Configurer des environnements individuels pour modifier la limite de délai avant expiration de la cible

Si les proxys dont les points de terminaison cibles sont lents ne se trouvent que dans un ou plusieurs environnements de votre installation, vous pouvez configurer les environnements individuellement pour modifier la limite de délai avant expiration cible. Cela permet d'éviter d'avoir un impact sur les autres environnements.

Pour configurer des environnements individuels afin de modifier la limite de délai avant expiration de la cible, vous pouvez utiliser les propriétés envs[].components.runtime. Apportez les modifications suivantes à votre fichier overrides.yaml :

  1. Ajoutez le stanza suivant à votre fichier overrides.yaml :
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Vous devez mettre à niveau un environnement à la fois. Mettez à niveau le chart apigee-env pour chaque environnement que vous mettez à jour :

    Effectuez un 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 est un nom utilisé pour suivre l'installation et les mises à niveau du graphique apigee-env. Ce nom doit être unique par rapport aux autres noms de version Helm de votre installation. Il s'agit généralement de la même valeur que ENV_NAME. Toutefois, si votre environnement porte le même nom que votre groupe d'environnements, vous devez utiliser des noms de version différents pour l'environnement et le groupe d'environnements (par exemple, dev-env-release et dev-envgroup-release). Pour en savoir plus sur les versions dans Helm, consultez Trois concepts importants class="external" dans la documentation Helm.
    • ENV_NAME est le nom de l'environnement que vous mettez à niveau.
    • OVERRIDES_FILE est votre fichier overrides.yaml modifié.
  3. Mettez à niveau le graphique :
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Vérifiez qu'il est opérationnel en vérifiant l'état de l'environnement correspondant :

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    my-org-my-env-123abc            running     2d
    

Configurer tous les environnements pour modifier la limite de délai avant expiration de la cible

Les modifications apportées à votre section runtime changeront la limite de délai avant expiration de la cible pour tous les environnements de votre installation. Vous pouvez remplacer ces paramètres pour des environnements individuels à l'aide des propriétés runtime.

  1. Ajoutez le stanza suivant à votre fichier overrides.yaml :
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Mettez à niveau le chart apigee-env pour chaque environnement de votre installation :

    Effectuez un dry run :

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mettez à niveau le graphique :

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE