Gestionar componentes del plano del entorno de ejecución

En este tema se explica cómo configurar y gestionar los componentes del plano de tiempo de ejecución de Apigee hybrid. Para ver una lista de los componentes del plano de tiempo de ejecución que puedes configurar, consulta Información general sobre la configuración del servicio del entorno de ejecución.

Acerca del archivo de anulaciones

La primera vez que instales el entorno de ejecución híbrido en un clúster, debes crear un archivo de anulaciones de configuración. Este archivo le permite anular los valores de configuración predeterminados según sea necesario, configurar entornos, hacer referencia a certificados TLS y claves de cuentas de servicio, asignar grupos de nodos de Kubernetes a componentes híbridos específicos, etc.

En los pasos de instalación de la versión híbrida se explica cómo crear un archivo de anulaciones y aplicar la configuración a un clúster. Si quieres cambiar la configuración más adelante, modifica el archivo de anulaciones que has creado y vuelve a aplicarlo.

Hacer un cambio de configuración

Para cambiar la configuración de un componente del plano de tiempo de ejecución híbrido, edita el archivo de anulaciones y aplica los cambios con Helm o apigeectl, según la herramienta de gestión que uses.

Por ejemplo, para cambiar el número de réplicas del procesador de mensajes, sigue estos pasos:

  1. Abre el archivo OVERRIDES.yaml. Asegúrate de usar el mismo archivo de anulaciones que se usó para instalar el tiempo de ejecución híbrido en el clúster.
  2. Busca el elemento runtime en el archivo. Por ejemplo:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Cambia las propiedades de recuento de réplicas según sea necesario. Por ejemplo:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    
  4. Aplica los cambios con los siguientes comandos:

    Helm

    Debes instalar un entorno cada vez. Especifica el entorno con --set env=ENV_NAME.

    1. Primero, haz una prueba de funcionamiento:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
      
      • ENV_RELEASE_NAME es el nombre con el que instalaste el gráfico apigee-env. En la versión híbrida 1.10, suele ser apigee-env-ENV_NAME. En Hybrid 1.11 y versiones posteriores, suele ser ENV_NAME.
      • ENV_NAME es el nombre del entorno que vas a actualizar.
      • OVERRIDES_FILE es la ruta a tu archivo de anulaciones.1.3.6
    2. Actualiza el gráfico:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
      

    apigeectl

    Usa apigeectl para aplicar el cambio al clúster:

    apigeectl apply -f OVERRIDES.yaml --org --env apigee-env
  5. Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:
    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

¿Qué propiedades de configuración puede modificar?

Puede consultar la lista completa de propiedades configurables en la referencia de propiedades de configuración. En la referencia solo se indican las propiedades que puede modificar. Si intenta modificar una propiedad que no aparece en la referencia, el cambio se ignorará.

Cómo usar la referencia de configuración

La referencia de la propiedad Configuration usa la notación de puntos para describir los elementos de configuración. El primer elemento es el nombre del elemento de nivel superior, seguido de las propiedades y las propiedades secundarias. Por ejemplo:

ao.image.pullPolicy

En el archivo de anulaciones, las propiedades tienen el formato YAML adecuado. En el ejemplo anterior, el elemento ao de nivel superior tiene una sangría a la izquierda y las propiedades de los subelementos tienen una sangría debajo. Además, YAML requiere dos puntos al final de cada elemento y subelemento.

Por ejemplo, para definir la propiedad ao.image.pullPolicy como Always, busca esta estrofa YAML en el archivo de anulaciones y configúrala de la siguiente manera:

ao:
  image:
    pullPolicy: Always

Otro ejemplo es la propiedad cassandra.auth.admin.password (que se indica en la referencia de la propiedad de configuración), que se usa para definir la contraseña de administrador de Cassandra. Para cambiarlo, busca el siguiente YAML en el archivo de anulaciones y configúralo de la siguiente manera:

cassandra:
  auth:
    admin:
      password: abc123

Recuerde que en la referencia de la propiedad de configuración se describen todas las propiedades que puede definir en los componentes del plano de tiempo de ejecución híbrido. Sigue el patrón explicado anteriormente para modificar estos elementos en tu archivo de anulaciones antes de aplicar los cambios al clúster.

Usar archivos de anulaciones de ejemplo predefinidos

Cuando instales el tiempo de ejecución híbrido por primera vez, Apigee te recomienda que uses uno de los archivos de ejemplo de anulaciones preconfigurados. Estos ejemplos proporcionan un conjunto completo de propiedades de configuración para casos de instalación específicos, como la configuración de una instalación de producción o de prueba. Solo tienes que proporcionar los valores adecuados para las propiedades y aplicar el archivo de anulaciones a tu clúster. Para obtener más información, consulta el paso 6: Configura el clúster.

Acerca de los valores predeterminados de configuración

Apigee mantiene la configuración predeterminada de sus componentes en el archivo HYBRID_ROOT_DIR/config/values.yaml. Los archivos de anulaciones siguen la misma estructura YAML que values.yaml.

Un archivo de anulaciones suele incluir solo un subconjunto de las propiedades de configuración que se encuentran en values.yaml. Recuerde que no todas las propiedades se pueden editar. Cuando aplicas una configuración a un clúster, tus anulaciones se combinan con los valores predeterminados para crear la configuración completa del clúster de Kubernetes. Consulta también Probar la configuración combinada.

El siguiente código muestra la configuración predeterminada del componente mart tal como se encuentra en values.yaml. Tenga en cuenta que algunos valores tienen valores predeterminados, mientras que otros, como sslCertPath y sslKeyPath, no. Debes proporcionar estos valores que faltan en el archivo de anulaciones, tal como se explica en los pasos de instalación. Si quieres cambiar alguno de los valores predeterminados, comprueba que se puedan editar en la referencia de la propiedad de configuración.

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

Si quieres modificar los valores predeterminados de un componente y este aún no está en tu archivo de anulaciones, puedes copiar su YAML de values.yaml en tu archivo de anulaciones y modificarlo ahí.

Archivos de anulaciones de ejemplo

Apigee proporciona un conjunto de archivos de anulaciones de ejemplo para ayudarte a configurar tu implementación híbrida. Te recomendamos que copies y modifiques el archivo de anulaciones que mejor se adapte a los requisitos de tu instalación.

Los siguientes ejemplos se incluyen en el directorio HYBRID_ROOT_DIR/examples:

Archivos de anulaciones de ejemplo Descripción
overrides-small.yaml Esta muestra es ideal para empezar rápidamente. Usa el espacio mínimo recomendado para iniciar los componentes del tiempo de ejecución híbrido. Esta configuración de ejemplo se basa en la medida de lo posible en los ajustes y valores predeterminados. Todas las réplicas mínimas se han definido como 1.
overrides-medium.yaml Esta muestra es un buen punto de partida para entornos de prueba y control de calidad. Se ha asignado un nivel superior de recursos a los componentes individuales para gestionar el tráfico adicional. Cassandra usa discos SSD para mejorar el rendimiento. En este entorno, se recomienda que los usuarios instalen componentes con y sin estado en nodos independientes. Consulta Configurar nodos dedicados.
overrides-large.yaml Esta muestra es un buen punto de partida para entornos de alto rendimiento, como los de preproducción y producción. La muestra incluye propiedades para definir claves de cifrado, contraseñas y otros elementos. Los componentes individuales tienen un mínimo de dos réplicas.

Anotaciones personalizadas

Las anotaciones son mapas de pares clave-valor que se usan para adjuntar metadatos a los pods de Kubernetes de Apigee hybrid. Puede crear anotaciones personalizadas para las siguientes propiedades que se indican en la referencia de la propiedad de configuración:

Para añadir una anotación personalizada, añade una estrofa al archivo OVERRIDES.yaml del componente correspondiente.

En el siguiente ejemplo se muestra cómo se puede especificar una anotación en pods de runtime:

runtime:
  annotations:
    businessunit: "bu1"

Probar la configuración combinada

Puedes usar la marca --dry-run para probar el archivo de configuración combinado sin aplicarlo a tu clúster. Esta opción es útil para depurar un problema de instalación, ya que muestra exactamente lo que se aplicará al clúster. También es recomendable probar la configuración y almacenarla en un sistema de control de versiones para tener una referencia de los recursos instalados y configurados en el clúster.

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

Para obtener más información, consulta apigeectl.

Crear varios archivos de anulaciones según sea necesario

Puedes crear tantos archivos de anulaciones como quieras, donde cada uno cumpla un requisito específico. Por ejemplo, puede tener un archivo de anulaciones que ajuste su clúster para la producción y otro para crear un clúster de pruebas. Después, puedes mantener estos archivos en tu sistema de control de versiones.

Por ejemplo:

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

Eliminar componentes del plano del entorno de ejecución específicos de la configuración híbrida

Los componentes del plano de ejecución incluyen synchronizer, mart, runtime, cassandra y udca.

Para eliminar los componentes del plano de tiempo de ejecución específicos de Hybrid de tu clúster, usa los comandos helm delete o apigeectl delete. Asegúrate de especificar el mismo archivo de anulaciones que usaste para instalar los componentes del entorno de ejecución.

Por ejemplo:

Helm

Con Helm, debes eliminar cada componente por separado. Por ejemplo, para eliminar el componente cassandra, usa el siguiente comando:
helm -n apigee delete datastore

En el ejemplo anterior, el componente de almacén de datos se instaló con el nombre "datastore". Si lo has instalado con otro nombre, debes proporcionar ese nombre para eliminar el componente. Por ejemplo, si has instalado el gráfico apigee-datastore con helm install my-cassandra-storage apigee-datastore/. Para eliminarlo, usa el siguiente comando:

helm delete -n apigee my-cassandra-storage

apigeectl

Con apigeectl, puedes eliminar todos los componentes del tiempo de ejecución a la vez o limitar el ámbito para eliminar un componente cada vez. Por ejemplo, para eliminar todos los componentes a la vez, sigue estos pasos:
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml

Para eliminar el componente cassandra, sigue estos pasos:

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

Para volver a crear un componente o varios componentes específicos (en este ejemplo, el grupo de entornos):

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