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 e assim sucessivamente.

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 aplique as alterações com o Helm ou o apigeectl, consoante a sua ferramenta de gestão.

Por exemplo, para alterar a contagem 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 motor 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. Aplique as alterações com os seguintes comandos:

    Leme

    Tem de instalar um ambiente de cada vez. Especifique o ambiente com --set env=ENV_NAME.

    1. Faça primeiro uma execução de ensaio:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
      
      • 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 caminho para o ficheiro de substituições.1.3.6
    2. Atualize o gráfico:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
      

    apigeectl

    Use apigeectl para aplicar a alteração ao cluster:

    apigeectl apply -f OVERRIDES.yaml --org --env apigee-env
  5. Verifique se está em funcionamento consultando o estado do ambiente respetivo:
    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 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: configure o cluster 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 às 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.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: |
...

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

Ficheiros de substituições de exemplo

O Apigee fornece um conjunto de ficheiros de substituições de exemplo para ajudar a configurar a sua implementação híbrida. É uma boa prática copiar e modificar o ficheiro de substituições que corresponde mais de perto aos requisitos de instalação.

Os seguintes exemplos estão incluídos no diretório HYBRID_ROOT_DIR/examples:

Ficheiros de substituições de exemplo Descrição
overrides-small.yaml Este exemplo é ideal para começar rapidamente. Usa a área de ocupação mínima recomendada para iniciar os componentes de tempo de execução híbrido. Esta configuração de exemplo baseia-se o mais possível nas definições e nos valores predefinidos. Todas as réplicas mínimas estão definidas como 1.
overrides-medium.yaml Este exemplo é um bom ponto de partida para ambientes de teste e controlo de qualidade. Os componentes individuais receberam um nível mais elevado de recursos para lidar com tráfego adicional. O Cassandra usa discos SSD para o desempenho. Neste ambiente, recomenda-se que os utilizadores instalem componentes com estado e sem estado em nós separados. Consulte Configure nós dedicados.
overrides-large.yaml Este exemplo é um bom ponto de partida para ambientes de elevado desempenho, como pré-produção e produção. O exemplo inclui propriedades para definir chaves de encriptação, palavras-passe e outras. Os componentes individuais têm um mínimo de duas réplicas.

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 da propriedade 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, uma vez que 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.

Leme

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 mais informações, consulte apigeectl.

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:

Leme

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

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 cluster, use os comandos helm delete ou apigeectl 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:

Leme

Se usar o Helm, tem de eliminar cada componente individualmente. Por exemplo, para eliminar o componente cassandra, use o seguinte comando:
helm -n apigee 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

apigeectl

Com o comando apigeectl, pode eliminar todos os componentes de tempo de execução de uma vez ou limitar o âmbito para eliminar um componente de cada vez. Por exemplo, para eliminar todos os componentes de uma só vez:
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml

Para eliminar o componente cassandra:

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

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

Leme

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