Como escalar os contêineres do Docker usando o nginx como balanceador de carga e proxy reverso

Como escalar os contêineres do Docker usando o nginx como balanceador de carga e proxy reverso
O Docker Scaling é um dos recursos essenciais da plataforma Docker. Ele nos permite executar diferentes cópias ou réplicas de contêineres ou serviços do Docker no comando Docker Compose. Docker-Compose é uma solução que nos ajuda a gerenciar aplicativos e microsserviços multi-containers.

Ao escalar qualquer serviço no Docker compor, pode mostrar o conflito que a porta de ligação será alocada a apenas um serviço. Existem muitas maneiras de resolver o problema especificado, mas um balanceador de carga é uma das abordagens mais eficazes para gerenciar o tráfego de diferentes contêineres.

Este blog demonstrará como escalar um contêiner do Docker usando Nginx como um balanceador de carga e proxy reverso.

Como escalar os contêineres do Docker usando o nginx como balanceador de carga e proxy reverso?

O balanceador de carga gerencia e distribui o tráfego no servidor de contêineres. Aumenta a confiabilidade, capacidade e disponibilidade de aplicativos e serviços. À medida que as réplicas de contêineres são executadas na mesma rede pelo mesmo protocolo, que podem causar conflitos, como expor erros de porta. Para esse fim, um proxy reverso ou balanceador de carga Nginx pode ser utilizado para dividir o tráfego de serviços de escala usando robin redondo ou outras técnicas de roteamento.

Para gerenciar os serviços de escala usando o NGINX como balanceador de carga, siga as instruções.

Etapa 1: Faça o Dockerfile

Primeiro, crie um DockerFile para recipiente do programa. Para esse fim, especificamos as instruções para dockerizar o “principal.ir”Programa de Golang:

De Golang: 1.8
Workdir/go/src/app
Cópia principal.ir .
Run Go Build -O WebServer .
PONTO DE ENTRADA ["./servidor web"]

Etapa 2: Crie “Docker-Compose.arquivo yml ”

Em seguida, crie um “Docker-Compose.yml”Arquive e copie as instruções fornecidas no arquivo. Essas instruções contêm:

  • ““Serviços"Chave para configurar o serviço. Por exemplo, configuramos o “rede”Serviço e“nginx" serviço. Aqui o "nginx”O serviço atua como um balanceador de carga para gerenciar o tráfego de escalar o serviço“ web ”.
  • ““construir”Key demonstra que o serviço“ web ”usará o DockerFile para contêiner o serviço.
  • Não há necessidade de fornecer a porta exposta ao “rede”Serviço como o Balancer de Carga Nginx gerencia.
  • ““volumes"É usado para vincular o"conf”Arquivo para o caminho do contêiner:
  • ““depende de”É utilizado para determinar as dependências entre os serviços de composição.
  • ““portas”É usado para especificar o serviço Nginx expondo a porta onde os serviços de escala são gerenciados por meio de alguma técnica de roteamento:
Versão: "Alpine"
Serviços:
rede:
construir: .
nginx:
Imagem: Nginx: mais recente
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf: ro
depende de:
- rede
Portas:
- 8080: 8080

Etapa 3: faça “nginx.arquivo conf ”

Em seguida, faça um “nginx.conf"Arquivo para usar"nginx“Como balanceador de carga e proxy reverso. Para esse fim, especificamos as instruções listadas no arquivo:

  • ““a montante tudo”Define os serviços a montante. Aqui, definimos o “rede”Serviço que deve expor na porta 8080.
  • No "servidor"Suportes, fornecemos a porta de escuta do balanceador de carga nginx"8080”E definiu o proxy“http: // all/”Para gerenciar o serviço upstream:
usuário nginx;
Eventos
trabalhador_connections 1000;

http
a montante tudo
Web do servidor: 8080;

servidor
Ouça 8080;
Localização /
proxy_pass http: // all/;


Etapa 4: Escala o serviço e inicie os contêineres

Em seguida, escala e inicie o serviço utilizando o “-escala"Opção com a"Docker-compor”Comando. Por exemplo, iniciamos as duas réplicas do “rede" serviço:

Docker -Compose Up -Cale web = 2

Depois disso, navegue pelo serviço nginx expondo a porta e verifique se isso está aceitando o fluxo do “rede”Serviço ou não. Atualize a página para alternar entre as saídas de serviços de escala ou réplicas usando o “nginx" balanceador de carga:

É tudo sobre como escalar um contêiner do docker usando o nginx como balanceador de carga e proxy reverso.

Conclusão

Para escalar o contêiner do docker utilizando o Nginx como um balanceador de carga e um proxy reverso, configure primeiro os serviços no arquivo de composição. Então, crie um “nginx.conf”Arquive e adicione instruções para o serviço a montante, a porta de escuta do balanceador de carga e passe o proxy para a montante o serviço. Depois disso, especifique o “nginx”Serviço no“Docker-Compose.yml”Arquivo que atua como um balanceador de carga. Este artigo demonstrou como escalar contêineres do Docker usando o nginx como um balanceador de carga.