Configurar proxy para nós híbridos - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Configurar proxy para nós híbridos

Caso esteja usando um servidor proxy no ambiente on-premises para tráfego que sai do data center ou do ambiente de borda, você precisa configurar o sistema operacional, containerd, kubelet e kube-proxy para usar o servidor proxy. Você deve configurar kube-proxy após criar o cluster do Amazon EKS. Você pode fazer as alterações para o sistema operacional, o containerd e o kubelet durante o processo de criação das imagens do sistema operacional ou antes de executar nodeadm init em cada nó híbrido.

Configuração no nível do nó

As configurações nesta seção devem ser aplicadas nas suas imagens do sistema operacional ou antes de executar nodeadm init em cada nó híbrido.

Configuração do proxy containerd

containerd é o runtime padrão de gerenciamento de contêineres para o Kubernetes. Caso esteja usando um proxy para acesso à internet, você deverá configurar o containerd para que ele possa extrair as imagens de contêiner exigidas pelo Kubernetes e pelo Amazon EKS.

Crie um arquivo em cada nó híbrido denominado http-proxy.conf no diretório /etc/systemd/system/containerd.service.d com os conteúdos a seguir. Substitua proxy-domain e port pelos valores do seu ambiente.

[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"

Configuração de proxy do kubelet

kubelet é o agente de nó do Kubernetes que é executado em cada nó do Kubernetes e é responsável por gerenciar os nós e pods em execução nele. Caso esteja usando um proxy no ambiente on-premises, você deverá configurar o kubelet para que ele possa se comunicar com os endpoints públicos ou privados do cluster do Amazon EKS.

Crie um arquivo em cada nó híbrido denominado http-proxy.conf no diretório /etc/systemd/system/kubelet.service.d/ com o conteúdo a seguir. Substitua proxy-domain e port pelos valores do seu ambiente.

[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"

Configuração de proxy do sistema operacional

Caso esteja usando um proxy para acesso à internet, você deve configurar o sistema operacional para poder extrair as dependências dos nós híbridos do gerenciador de pacotes do sistema operacional.

Ubuntu

  1. Configure snap para usar o proxy com os seguintes comandos:

    sudo snap set system proxy.https=http://proxy-domain:port sudo snap set system proxy.http=http://proxy-domain:port
  2. Para habilitar o proxy para apt, crie um arquivo denominado apt.conf no diretório /etc/apt/. Substitua proxy-domain e a porta pelos valores do seu ambiente.

    Acquire::http::Proxy "http://proxy-domain:port"; Acquire::https::Proxy "http://proxy-domain:port";

Amazon Linux 2023 e Red Hat Enterprise Linux

  1. Configure yum para usar o proxy. Crie um arquivo /etc/yum.conf com os valores de proxy-domain e port para seu ambiente.

    proxy=http://proxy-domain:port

Configuração de todo o cluster

As configurações nesta seção devem ser aplicadas depois de você criar o cluster do Amazon EKS e antes de executar nodeadm init em cada nó híbrido.

Configuração do proxy kube-proxy

O Amazon EKS instala automaticamente o kube-proxy em cada nó híbrido como um DaemonSet quando os nós híbridos se unem ao cluster. O kube-proxy permite o roteamento entre serviços que são apoiados por pods nos clusters do Amazon EKS. Para configurar cada host, o kube-proxy requer resolução de DNS para o endpoint de cluster do Amazon EKS.

  1. Editar o DaemonSet do kube-proxy com o comando a seguir

    kubectl -n kube-system edit ds kube-proxy

    Isso abrirá a definição do DaemonSet do kube-proxy no editor configurado.

  2. Adicione variáveis de ambiente para HTTP_PROXY e HTTPS_PROXY. Observe que a variável de ambiente NODE_NAME já deve existir na configuração. Substitua proxy-domain e port pelos valores do seu ambiente.

    containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --hostname-override=$(NODE_NAME) env: - name: HTTP_PROXY value: http://proxy-domain:port - name: HTTPS_PROXY value: http://proxy-domain:port - name: NODE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.nodeName