Docker compor balanceamento de carga e escala

Docker compor balanceamento de carga e escala
O Docker Compose é um componente de núcleo bem querido do Docker que é universalmente usado para processar e gerenciar vários aplicativos de contêineres e serviços. Como o Docker Compose executa aplicativos de múltiplas contadores, é necessário gerenciar esses serviços ou contêineres com sabedoria com sabedoria. Graças ao Docker, a escala e o balanceamento de carga nos permitem gerenciar e executar vários serviços com eficiência.

Este blog demonstrará como implementar o escala e o balanceamento de carga no Docker Compose.

Como ampliar os serviços no Docker Compose?

A escala no docker significa fazer réplicas de serviços de composição ou contêineres. Essas réplicas são gerenciadas no host. Para implementar a escala no Docker Compose, siga as instruções fornecidas.

Etapa 1: Gere Dockerfile
Gerar um DockerFile que contê -lo o Golang “Main1.ir" programa. Para esse fim, cole o código fornecido no arquivo:

De Golang: 1.8
Workdir/go/src/app
Copie Main1.ir .
Run Go Build -O WebServer .
Expor 8080: 8080
PONTO DE ENTRADA ["./servidor web"]

Etapa 2: gerar arquivo de composição
Em seguida, crie outro arquivo chamado “Docker-Compose.yml”Arquive e cole as instruções abaixo fornecidas:

Versão: "Alpine"
Serviços:
rede:
construir: .
Portas:
- 8080

Aqui:

  • ““Serviços”É usado para criar e configurar o serviço Docker-Compompose. Para esse fim, configuramos o “rede" serviço.
  • ““construir”É utilizado para especificar o Dockerfile. No bloco de código fornecido, a chave de construção usará o Dockerfile acima fornecido.
  • ““portas”Estão expondo portas para contêineres. Aqui, utilizamos o “8080" em vez de "8080: 8080”. Isso ocorre porque quando escalamos os diferentes serviços, a porta de ligação “8080”Será alocado para apenas um serviço e o outro gerará o erro. O "portas" valor "8080”Permite que o Docker atribua as portas aos serviços na rede host automaticamente:

Como alternativa, os usuários podem atribuir o “portas”Valor no intervalo como“80-83: 8080”. Isso atribuirá automaticamente as portas expostas dentro do intervalo especificado a cada contêiner ou serviço.

Etapa 3: disparar os recipientes
Em seguida, acenda os recipientes usando o “Docker-compor”Comando. Para replicar o “rede”Serviço, utilize o“-escala”Opção junto com a“=”Valor como mostrado abaixo:

Docker-compor Up-Web em escala = 2

Etapa 4: Lista compor contêineres
Liste os contêineres compostos e verifique se os serviços de escala estão executando ou não:

Docker -Compor PS -A

Você pode ver duas réplicas do “rede”O serviço está sendo executado em“61844" e "61845”Portas de host local, respectivamente:

Para confirmação, navegue até as portas atribuídas do host local e verifique se o serviço está em execução ou não.

Pode -se observar que o “rede”O serviço foi executado com sucesso em portas atribuídas:

Como implementar o balanceamento de carga no Docker Compose?

O balanceador de carga é uma das melhores soluções para gerenciar o tráfego de diferentes contêineres ou clientes no servidor. Aumenta a confiabilidade e a disponibilidade de aplicativos e serviços. Diferentes critérios de roteamento são usados ​​no back -end para gerenciar os aplicativos de vários contêineres, como Round Robin.

Para implementar a técnica de balanceamento de carga nos serviços de compposição, utilize as instruções fornecidas.

Etapa 1: Crie “nginx.arquivo conf ”
Criar um "nginx.conf”Arquive e cole o código abaixo no arquivo. Essas instruções incluem:

  • ““a montante"Com o nome"todos”Especifique o serviço a montante. Aqui, você pode especificar quantos serviços forem necessários para gerenciar. Por exemplo, definimos o “rede”Serviço que deve expor na porta 8080.
  • No "servidor", Definimos a porta de escuta"8080”Para o balanceador de carga nginx e passou 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 2: Configurar o serviço Nginx Balancero de carga em “Docker-Compose.arquivo yml ”
Em seguida, configure o balanceador de carga “nginx”Serviço no“Docker-Compose" arquivo. Para esse fim, especificamos as seguintes chaves:

  • ““imagem”Define a imagem base para o“nginx" serviço.
  • ““volumes"É usado para vincular o"nginx.conf”Para o caminho -alvo do contêiner.
  • ““depende de”Especifica que o“nginx”O serviço dependerá do“rede" serviço:
  • ““portas”Especifique a porta de escuta do serviço Nginx Balancero de carga:
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: Executar contêineres compostos
Agora, execute o contêiner de composição junto com o “-escala”Opção para executar as réplicas de serviço da web:

Docker-compor Up-Web em escala = 2

Aqui, essas réplicas de serviços da web são gerenciadas no serviço de balanceador de carga “nginx”:

Navegue pela porta de escuta do “nginx”Serviço e verifique se o saldo da carga gerencia os dois recipientes do serviço da web na mesma porta. Atualize a página para mudar para o segundo contêiner e refresque novamente a página para mudar para o primeiro contêiner:

É tudo sobre o Docker compor o balanceamento de carga e a escala.

Conclusão

Balanceamento e escala de carga são técnicas para aumentar a disponibilidade e confiabilidade do aplicativo. A escala do Docker gera as réplicas de serviços especificados e o balanço do balanceador de carga ou gerencia o tráfego de e para diferentes contêineres no servidor. Para esse fim, usamos “nginx”Como um balanceador de carga. Este blog demonstrou o Docker compor balanceamento e escala de carga.