Configuração dos agentes do Schematics para usar um servidor proxy

Muitos ambientes não permitem a conectividade direta com a Internet pública, mas requerem que as conexões sejam roteados por um gateway de proxy seguro Schematics As políticas de configuração do agente permitem o uso de um servidor proxy no qual o acesso direto à internet não é permitido Você pode usar um proxy HTTP ou HTTPS.

A configuração de proxy deve ser a mesma em cada host no cluster Portanto, ao configurar o proxy ou modificá-lo, você deve atualizar o arquivo de especificação YAML de implantação, ConfigMap, e NetworkPolicy. Em seguida, reinicie a implementação para aplicar a configuração do servidor proxy..

Antes de Iniciar

Confirme se os seguintes requisitos estão em vigor antes de configurar o acesso ao servidor proxy. O exemplo aqui usa um proxy squid na porta 3128..

  • Um servidor proxy que pode acessar Google usando HTTP ou HTTPS e é acessível a partir do cluster.
  • O endereço IP e porta do servidor proxy, por exemplo, http://53.25.191.193:3128
  • A ferramenta de linha de comandos curl está disponível nos pods do cluster..

Configurando um servidor proxy

  1. No Kubernetes cluster console. Clique em Kubernetes dashboard

  2. Alterne para schematics-runtime na caixa suspensa de seleção de namespace.

  3. Na seção Config and Storage, clique em Mapas de configuração para exibir os mapas para o namespace do schematics-runtime

    • Clique no recurso configmap schematics-runtime-job-config e selecione o ícone de lápis para editar o arquivo YAML para incluir as instruções de proxy HTTPS/HTTP.

    • Inclua entradas de proxy HTTPS/HTTP sob a propriedade data na seção inferior do arquivo:

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • Clique em Atualizar para salvar o configmap e confirme se as novas entradas de proxy estão sendo mostradas na lista de arquivos

    • Repita para o recurso configmap schematics-runtime-ansible-job-config.

  4. Na seção Cluster, clique em Políticas de rede para exibir as políticas para o namespace schematics-runtime

    • Edite o arquivo whitelist-runtime-egress-gen-ports NetworkPolicy para incluir a porta usada pelo proxy HTTPS/HTTP.
    • Inclua a porta do proxy do HTTPS/HTTP na propriedade de portas
      - ports:
        - protocol: TCP
          port: 3128
      
  5. Reinicie a implementação schematics-runtime e verifique se todos os pods estão em execução.

    • Na seção Workloads, clique em Implementações para exibir as implementações atuais para o namespace schematics-runtime.
    • Selecione o recurso runtime-job e reinicie o pod.
    • Selecione o recurso runtime-ansible-job e reinicie o pod.

Verificando o acesso do servidor proxy

Verifique se os pods do cluster podem acessar a Internet por meio de um servidor proxy

  • Efetue login no pod do schematics-runtime e execute o comando curl a seguir para verificar se as variáveis de ambiente de proxy estão sendo configuradas corretamente no contêiner

  • Em Workloads > Pods selecione o primeiro job-runtime e Exec nele.

    curl --head https://www.google.com
    

Se o proxy estiver funcionando para HTTPS, o comando curl retorna um 200 OK HTTP response.

Se o comando curl falhar ao se conectar, verifique se o proxy está acessível a partir do cluster e pode rotear o acesso para o website de destino Use o comando curl a seguir com a opção de proxy para validar que o proxy está acessível

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

Se o website não for acessível usando o parâmetro proxy, verifique se a regra de egresso de rede para o cluster está configurada corretamente e se há acesso à rede ao proxy.

Se o website estiver acessível usando o parâmetro proxy, verifique se o configmap foi atualizado corretamente e se as variáveis de ambiente de proxy do HTTPS/HTTP foram configuradas executando o comando env

As variáveis de ambiente HTTP_PROXY e HTTPS_PROXY devem estar listadas no resultado. Se não listado, verifique novamente as definições do configmap.