Faça a gestão dos componentes do plano de tempo de execução

Este tópico explica como configurar e gerir os componentes do plano de execução do Apigee hybrid. Para ver uma lista dos componentes do plano de tempo de execução que pode configurar, consulte a vista geral da configuração do serviço de tempo de execução.

Acerca do ficheiro de substituições

Quando instala o tempo de execução híbrido num cluster pela primeira vez, tem de criar um ficheiro de substituições de configuração. Este ficheiro permite substituir os valores de configuração predefinidos conforme necessário, configurar ambientes, fazer referência a certificados TLS e chaves de contas de serviço, atribuir pools de nós do Kubernetes a componentes híbridos específicos, etc.

Os passos de instalação híbrida explicam o processo de criação de um ficheiro de substituições e de aplicação da sua configuração a um cluster. Se quiser alterar a configuração mais tarde, modifique o ficheiro de substituições que criou e volte a aplicá-lo.

Fazer uma alteração de configuração

Para fazer uma alteração de configuração a um componente do plano de tempo de execução híbrido, edite o ficheiro de substituições e use o Helm para atualizar o gráfico que corresponde ao componente. O gráfico seguinte mostra a correspondência entre os gráficos e os componentes do Apigee Hybrid:

ÂmbitoComponentesGráfico de leme
Operador do Apigee Operador do Apigee apigee-operator
Armazenamento Cassandra apigee-datastore
Armazenamento na memória Redis apigee-redis
Relatórios Logger
Metrics
apigee-telemetry
Ingress Gateway de entrada do Apigee apigee-ingress-manager
Organização Apigee Connect Agent
MART
UDCA
Watcher
apigee-org
Ambiente Runtime
Synchronizer
apigee-env
Grupo de ambientes virtualhost apigee-virtualhost

Por exemplo, para alterar a quantidade de réplicas no processador de mensagens, siga estes passos:

  1. Abra o ficheiro OVERRIDES.yaml. Certifique-se de que usa o mesmo ficheiro de substituições que foi usado para instalar o tempo de execução híbrido no cluster.
  2. Localize o elemento runtime no ficheiro. Por exemplo:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Altere as propriedades de contagem de réplicas conforme necessário. Por exemplo:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  4. Atualize o ambiente.
  5. Tem de instalar um ambiente de cada vez. Especifique o ambiente com --set env=ENV_NAME.

    Execução de ensaio:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run=server
    
    • ENV_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico apigee-env. No híbrido v1.10, normalmente, é apigee-env-ENV_NAME. No Hybrid v1.11 e mais recente, normalmente, é ENV_NAME.
    • ENV_NAME é o nome do ambiente que está a atualizar.
    • OVERRIDES_FILE é o seu novo ficheiro de substituições para a versão 1.13.4
  6. Atualize o gráfico:
  7. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  8. Verifique se está em funcionamento consultando o estado do ambiente respetivo:
  9. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

Que propriedades de configuração pode modificar?

Pode encontrar a lista completa de propriedades configuráveis na referência de propriedades de configuração. A referência apenas lista as propriedades que pode modificar. Se tentar modificar uma propriedade que não esteja na referência, a alteração é ignorada.

Como usar a referência de configuração

A referência da propriedade de configuração usa a notação de pontos para descrever os elementos de configuração, em que o primeiro item é o nome do elemento de nível superior seguido de propriedades e propriedades secundárias. Por exemplo:

ao.image.pullPolicy

No ficheiro de substituições, as propriedades estão formatadas em YAML adequado. Para o exemplo acima, o elemento ao de nível superior tem uma indentação à esquerda e as propriedades dos subelementos têm uma indentação abaixo. Além disso, o YAML requer dois pontos no final de cada elemento e subelemento.

Por exemplo, para definir a propriedade ao.image.pullPolicy como Always, localize esta secção YAML no ficheiro de substituições e defina-a da seguinte forma:

ao:
  image:
    pullPolicy: Always

Por outro lado, a propriedade cassandra.auth.admin.password (conforme está listada na referência da propriedade de configuração) é usada para definir a palavra-passe de administrador do Cassandra. Para a alterar, localize o seguinte YAML no ficheiro de substituições e defina-o da seguinte forma:

cassandra:
  auth:
    admin:
      password: abc123

Lembre-se de que a referência da propriedade de configuração descreve todas as propriedades que pode definir em componentes do plano de tempo de execução híbrido. Siga o padrão explicado acima para modificar estes elementos no ficheiro de substituições antes de aplicar as alterações ao cluster.

Usar ficheiros de substituições de exemplos predefinidos

Quando instala o tempo de execução híbrido pela primeira vez, o Apigee recomenda que use um dos ficheiros de substituições de exemplo pré-configurados. Estes exemplos fornecem um conjunto completo de propriedades de configuração para cenários de instalação específicos, como a configuração de uma instalação de produção ou de teste. Só tem de fornecer valores adequados para as propriedades e aplicar o ficheiro de substituições ao seu cluster. Consulte o Passo 6: crie as substituições para mais informações.

Acerca das predefinições de configuração

O Apigee mantém a sua configuração de componentes predefinida no ficheiro HYBRID_ROOT_DIR/config/values.yaml. Os ficheiros de substituições seguem a mesma estrutura YAML que values.yaml.

Normalmente, um ficheiro de substituições inclui apenas um subconjunto das propriedades de configuração encontradas em values.yaml. Lembre-se de que nem todas as propriedades são editáveis. Quando aplica uma configuração a um cluster, as substituições são unidas com as predefinições para criar a configuração completa do cluster do Kubernetes. Consulte também o artigo Teste a configuração unida.

O código seguinte mostra a configuração predefinida do componente mart , conforme encontrado em values.yaml. Tenha em atenção que alguns valores têm predefinições, enquanto outros, como sslCertPath e sslKeyPath, não têm. Tem de fornecer estes valores em falta no ficheiro de substituições, conforme explicado nos passos de instalação. Se quiser alterar algum dos valores predefinidos, certifique-se de que são editáveis consultando a referência da propriedade de configuração.

...
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.13.4"
    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 quiser modificar as predefinições de um componente e o componente ainda não estiver no ficheiro de substituições, pode copiar o respetivo YAML de values.yaml para o ficheiro de substituições e modificá-lo aí.

Anotações personalizadas

As anotações são mapas de chaves/valores usados para anexar metadados a pods do Kubernetes híbrido do Apigee. Pode criar anotações personalizadas para as seguintes propriedades indicadas na Referência de propriedades de configuração:

Para adicionar uma anotação personalizada, adicione uma estrofe ao ficheiro OVERRIDES.yaml para o componente respetivo.

O exemplo seguinte ilustra como uma anotação pode ser especificada em runtime pods:

runtime:
  annotations:
    businessunit: "bu1"

Teste a configuração unida

Pode usar a flag --dry-run para testar o ficheiro de configuração unido sem o aplicar realmente ao cluster. Esta opção é útil para depurar um problema de instalação, porque mostra exatamente o que vai ser aplicado ao cluster. Também é uma boa prática testar a configuração e armazená-la no controlo de origem para ter uma referência dos recursos instalados e configurados no 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

Crie vários ficheiros de substituições conforme necessário

Pode criar quantos ficheiros de substituições quiser, em que cada um cumpre um requisito específico. Por exemplo, pode ter um ficheiro de substituições que ajuste o cluster para produção e outro para criar um cluster de testes. Em seguida, pode manter estes ficheiros no seu sistema de controlo de origem.

Por exemplo:

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

Elimine componentes do plano de tempo de execução específicos do híbrido

Os componentes do plano de tempo de execução incluem synchronizer, mart, runtime, cassandra e udca.

Para eliminar os componentes do plano de tempo de execução específicos do híbrido do seu cluster, use o comando helm delete. Certifique-se de que especifica o mesmo ficheiro de substituições que usou para instalar os componentes de tempo de execução.

Por exemplo:

Se usar o Helm, tem de eliminar cada componente individualmente. Por exemplo, para eliminar o componente cassandra, use o seguinte comando:

helm -n APIGEE_NAMESPACE delete datastore

No exemplo acima, o componente da base de dados foi instalado com o nome "datastore". Se o tiver instalado com um nome diferente, deve indicar esse nome para eliminar o componente. Por exemplo, se instalou o gráfico apigee-datastore com helm install my-cassandra-storage apigee-datastore/. pode eliminá-lo com o seguinte comando:

helm delete -n apigee my-cassandra-storage

Para recriar um componente ou componentes específicos (o grupo de ambientes neste exemplo):

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