Aplicações implantadas em clusters Kubernetes que precisam receber tráfego da Internet ou de uma rede privada exigem um balanceador de carga associado. O Enterprise Distributed Application Service (EDAS) permite associar instâncias de Classic Load Balancer (CLB) voltadas para a Internet ou para uso interno às aplicações e gerencia automaticamente a configuração dos listeners e os recursos de CLB.
Faça todas as alterações em listeners e certificados no console do EDAS. Alterações feitas pelo console do Server Load Balancer (SLB) podem causar falhas de configuração e tornar a aplicação inacessível.
O comportamento de associação do CLB varia conforme o tipo de cluster:
|
Tipo de cluster |
Comportamento do CLB |
|
Cluster Kubernetes autogerenciado |
Cada aplicação exige uma nova instância de CLB dedicada |
|
Cluster Container Service for Kubernetes (ACK) |
Cada aplicação pode usar uma nova instância de CLB dedicada ou compartilhar uma instância existente com outras aplicações |
Pré-requisitos
Antes de começar, verifique se você tem:
Uma aplicação implantada em um cluster ACK ou em um cluster Kubernetes autogerenciado no EDAS
Permissões para gerenciar recursos de SLB no console do EDAS
Associar uma instância de CLB voltada para a Internet
Faça login no console do EDAS. No painel de navegação à esquerda, escolha Application Management > Applications. Na barra de navegação superior, selecione uma região. Na parte superior da página, selecione um namespace de microsserviço. Selecione Kubernetes Cluster na lista suspensa Cluster Type e clique em nome da aplicação desejada.
-
Na página Application Overview, na seção Access configuration, clique em ícone + ao lado de SLB (Public Network).
NotaSe já houver uma instância de CLB associada, o endereço IP e o número da porta serão exibidos. Clique em ícone de edição para modificar a configuração ou em ícone de exclusão para desassociar a instância de CLB.
-
Na caixa de diálogo Load balancing (public network), configure os parâmetros abaixo e clique em OK. Configuração de listener Adicione um ou mais listeners por tipo de protocolo. Clique em Add Listener para adicionar mais.
NotaAo selecionar Create SLB, um resumo de preços aparece abaixo de External Traffic Policy, mostrando resultados de verificação de recursos, especificações disponíveis, quantidade, método de faturamento e período de validade para instâncias por assinatura. Clique em View Price para visualizar detalhes dos preços.
Parâmetro
Descrição
Select SLB
Selecione Create SLB para adquirir uma nova instância de CLB ou escolha uma instância existente na lista suspensa.
Scheduling Algorithm
Algoritmo de balanceamento de carga. Valores válidos: RR (Round Robin) e WRR (Weighted Round Robin).
External Traffic Policy
Controla como o tráfego é roteado para os pods. Valores válidos: Local e Cluster. Para mais detalhes, consulte Política de tráfego externo: Local vs. Cluster.
Existing listening information of the SLB instance
Exibido apenas quando você seleciona uma instância de CLB existente. Mostra o protocolo de rede, o número da porta e o número da porta do contêiner já configurados.
Protocolo
Parâmetros
TCP ou HTTP
SLB Port (Application): Porta frontend (1--65535) usada para acessar a aplicação. Container Port (Target Port): Porta em que a aplicação escuta, como
8080para aplicações web.UDP
SLB Port (Application): Porta frontend (1--65535) usada para acessar a aplicação. Container Port (Target Port): Porta em que a aplicação escuta.
HTTPS
HTTPS Port (Application): Porta frontend (1--65535) usada para acessar a aplicação. SSL Certificate: Selecione um certificado enviado anteriormente na lista suspensa. Container Port (Target Port): Porta em que a aplicação escuta, como
8080para aplicações web. -
(Opcional) Caso o tráfego exceda a capacidade de uma única instância de CLB, repita as etapas 2 e 3 para associar instâncias adicionais e distribuir a carga.
NotaA capacidade do CLB é medida por maximum connections, new connections per second e queries per second (QPS).
Associar uma instância de CLB voltada para uso interno
O procedimento para associar uma instância de CLB voltada para uso interno é semelhante ao de uma instância voltada para a Internet, com as seguintes diferenças:
Na etapa 2, clique em ícone + ao lado de SLB (Private Network) em vez de SLB (Public Network).
O título da caixa de diálogo será SLB (Private Network).
Instâncias de CLB voltadas para uso interno suportam listeners TCP, HTTP e HTTPS. O protocolo UDP não está disponível.
Para o procedimento completo, consulte Associar uma instância de CLB voltada para a Internet e aplique as diferenças listadas acima.
Política de tráfego externo: Local vs. Cluster
A política de tráfego externo define como a instância de CLB roteia o tráfego para os pods no cluster.
|
Política |
Comportamento |
Preservação do IP de source |
Algoritmo recomendado |
|
Local |
Roteia o tráfego apenas para pods nos nós onde os pods do Service estão em execução. Somente esses nós são adicionados como servidores backend. |
Preserva endereços IP de source da camada 4 |
WRR -- O Container Controller Manager (CCM) ajusta o peso do nó com base na quantidade de pods para melhorar a distribuição de carga. |
|
Cluster |
Roteia o tráfego para pods em qualquer nó do cluster. Todos os nós são adicionados como servidores backend. As requisições podem alcançar um pod mesmo que nenhum pod esteja em execução no nó acessado. |
Não preserva endereços IP de source da camada 4 |
-- |
Verificar a associação
Após concluir a associação, confirme se o tráfego está chegando à aplicação:
Na página Application Overview, verifique a seção Access configuration. O endereço IP e o número da porta do CLB aparecem ao lado de SLB (Public Network) ou SLB (Private Network).
Abra um navegador e acesse
<CLB-IP>:<CLB-port>(por exemplo,115.xx.xx.xx:80). A página inicial da aplicação deve carregar.
Se a associação falhar:
O endereço IP e a porta não aparecem na seção Access configuration.
Acesse a página Change Records para visualizar os detalhes da alteração e solucionar problemas com base nos erros registrados.
Limitações
Violar estas limitações pode causar falhas de configuração e tornar a aplicação inacessível.
Não use o console do ACK, kubectl ou ferramentas de terceiros para excluir ou modifique recursos de Service criados pelo EDAS (rótulo:
edas-domain:edas-admin).Não use o console do SLB para excluir ou modifique instâncias de CLB adquiridas pelo EDAS.
Não use o console do SLB para excluir ou modifique listeners em instâncias de CLB utilizadas pelo EDAS.
Não use kubectl ou o console do ACK para modifique políticas de tráfego externo dos Services.