Ir para o conteúdo

Instalar um Grupo de Agentes Privados no Kubernetes Usando o Helm

Introdução

Um grupo de agentes privados Harmony pode ser configurado para registro e escalonamento automáticos usando Kubernetes. Esta página descreve como configurar um grupo de agentes privados usando Kubernetes e Helm.

Referência: O Arquivo YAML de Valores

O grupo de agentes é configurado usando um values.yaml arquivo. Estes são os atributos e definições no arquivo, com base no register.jsondefinido para o grupo de agentes (original no repositório GitHub de gráficos Jitterbit):

Importante

Tokens de acesso de registro do Agente requer agentes versão 10.83 / 11.21 ou posterior.

Atributo Valores de exemplo Descrição
nameOverride private-agent-group Usado para nomear recursos do Kubernetes; por padrão, o nome do gráfico (agent-group) é usado, mas pode ser substituído por este
image: Mapeamento de imagens
    repository jitterbit/agent
    tag latest A menos que seja especificamente necessário, use latest
agent: Do agente register.json mapeamento
    registerjson:
        cloudURL https://na-east.jitterbit.com URL de sua região Harmony; consultar exemplo register.json para a lista de regiões
        token jb_a1b23c45-d6ef-789a-b0cd-e12fabcd3e4f Token de acesso de registro do Agente
        agentGroupId 346591 ID do grupo de Agente
        agentNamePrefix "%host%" Um prefixo adicionado ao registro de data e hora UTC da criação do agente para formar o nome do agente
        deregisterAgentOnDrainStop true Executa cancelamento de registro do agente após parada de drenagem do agente
hpa: Autoescalador de Pod Horizontal mapeamento
    minReplicas 2 Número mínimo de réplicas
    maxReplicas 3 Número máximo de réplicas
    replicas 3 Número inicial de réplicas; uma salvaguarda é defini-lo igual ao maxReplicas

Importante

Se estiver usando agentes versão 10.83/11.21 ou posterior, recomendamos usar Tokens de acesso de registro de Agente sobre credenciais de usuário criptografadas do Agent Installer. Os tokens de acesso do Registro do Agente não expiram e podem ser gerenciados no Management Console a qualquer momento.

Atributo Valores de Exemplo Descrição
nameOverride private-agent-group Usado para nomear recursos do Kubernetes; por padrão, o nome do gráfico (agent-group) é usado, mas pode ser substituído por este
image: Mapeamento de imagens
    repository jitterbit/agent
    tag latest A menos que seja especificamente necessário, use latest
agent: Do agente register.json mapeamento
    registerjson:
        cloudURL https://na-east.jitterbit.com URL de sua região Harmony; consultar exemplo register.json para a lista de regiões
        username $00+LongEncryptedAndHashedUsername== Nome de usuário criptografado e com hash de gerando o grupo de agentes register.json
        password $00LongEncryptedAndHashedPassword= Senha criptografada e com hash de gerando o grupo de agentes register.json
        agentGroupId 346591 ID do grupo de Agente
        agentNamePrefix "%host%" Um prefixo adicionado ao registro de data e hora UTC da criação do agente para formar o nome do agente
        deregisterAgentOnDrainStop true Executa cancelamento de registro do agente após parada de drenagem do agente
hpa: Autoescalador de Pod Horizontal mapeamento
    minReplicas 2 Número mínimo de réplicas
    maxReplicas 3 Número máximo de réplicas
    replicas 3 Número inicial de réplicas; uma salvaguarda é defini-lo igual ao maxReplicas

Instalar e Executar o Grupo de Agentes

Siga estas etapas para instalar e executar um grupo de agentes no Kubernetes usando o Helm:

  1. Certifique-se de que seu cluster Kubernetes esteja instalado e funcionando e que seu cliente Helm esteja configurado corretamente para usar o cluster junto com o repositório público Helm do Jitterbit.

  2. Gere o grupo de agentes register.json arquivo, se ainda não o fez. As instruções sobre isso estão em Registro automático e escalonamento automático do Agente.

  3. Crie o grupo do seu agente values.yaml arquivo. Observe que como YAML é um superconjunto de JSON, você pode atribuir agent.registerjson para o seu register.json Objeto JSON de 's. Aqui está um exemplo values.yaml arquivo criado usando o register.json arquivo da etapa anterior. Ele foi convertido em YAML colocando-o em agent.registerjson:

    Importante

    Tokens de acesso de registro do Agente requer agentes versão 10.83 / 11.21 ou posterior.

    nameOverride: private-agent-group
    image:
      repository: jitterbit/agent
      tag: latest
    agent:
      registerjson:
        cloudUrl: https://na-east.jitterbit.com
        token: jb_a1b23c45-d6ef-789a-b0cd-e12fabcd3e4f
        agentGroupId: 346591
        agentNamePrefix: "%host%"
        deregisterAgentOnDrainstop: true
    hpa:
      minReplicas: 2
      maxReplicas: 3
    replicas: 3
    

    Importante

    Se estiver usando agentes versão 10.83/11.21 ou posterior, recomendamos usar Tokens de acesso de registro de Agente sobre credenciais de usuário criptografadas do Agent Installer. Os tokens de acesso do Registro do Agente não expiram e podem ser gerenciados no Management Console a qualquer momento.

    nameOverride: private-agent-group
    image:
      repository: jitterbit/agent
      tag: latest
    agent:
      registerjson:
        cloudUrl: https://na-east.jitterbit.com
        username: $00+LongEncryptedAndHashedUsername==
        password: $00LongEncryptedAndHashedPassword=
        agentGroupId: 346591
        agentNamePrefix: "%host%"
        deregisterAgentOnDrainstop: true
    hpa:
      minReplicas: 2
      maxReplicas: 3
    replicas: 3
    

    Aviso

    Se você estiver usando um sistema operacional Windows, certifique-se de que o values.yaml arquivo tem as terminações de linha UNIX \n em vez de DOS's \r\n.

  4. Verifique se o tempo de execução do Docker possui recursos suficientes alocados para acomodar o número máximo de réplicas que você especificou. Cada agente privado Docker requer 0,25 núcleos e 2 GB de memória:

    Recurso Cálculo de valor Valor a não exceder
    Núcleos 0,25 núcleos x maxReplicas (número de CPUs) x (número de núcleos/CPU)
    Memória 2 GB x maxReplicas Memória disponível alocada para o cluster Kubernetes
  5. No exemplo do sistema Docker Kubernetes mostrado abaixo (um computador macOS com 6 núcleos - rotulados CPUs na UI do Docker - e 16 GB de memória alocada para o Docker), você poderia executar no máximo 7 agentes privados do Docker. Oito agentes exigiriam 2 núcleos e 16 GB de memória, utilizando toda a memória disponível. No entanto, como o próprio Kubernetes executa alguns contêineres no mesmo tempo de execução do Docker (conhecido como Kubernetes no Docker), permita no mínimo um espaço livre de um núcleo e uma parte da memória em vez de dedicar todos os recursos disponíveis ao grupo de agentes:

    anexo

  6. Adicione o repositório público de gráficos Helm do Jitterbit ao seu cliente. Nenhuma credencial é necessária:

    helm repo add jitterbit https://jitterbit.github.io/charts
    # "jitterbit" has been added to your repositories
    
  7. Atualize o cache local de repositórios do seu cliente Helm (recomendado). Isso garantirá que você esteja usando a versão mais recente do gráfico Helm:

    helm repo update
    
  8. Instale a versão Helm do seu grupo de agentes:

    helm upgrade --install --force --atomic --timeout 1h -f ./values.yaml private-agent-group jitterbit/agent-group
    
  9. Aguarde até que cada pod de agente seja ativado e monitore usando o Harmony Management Console:

    watch kubectl get pods
    

Acesse um Agente Individual

Se você precisar acessar um dos agentes, você pode executar um shell Bash em seu contêiner usando o seguinte código, substituindo private-agent-group-0 com o nome Docker do agente específico que você precisa acessar:

kubectl exec -it private-agent-group-0 bash

Desmontagem do Grupo de Agente

Quando estiver pronto para desmontar o grupo de agentes, desinstale a versão do Helm:

helm uninstall private-agent-group