Registrando um subdomínio DNS para um NLB
Infraestrutura clássica
Este conteúdo é específico para NLBs em clusters clássicos. Para clusters VPC, consulte Registrando um nome do host do balanceador de carga do VPC com um subdomínio DNS.
Depois de configurar os balanceadores de carga de rede (NLBs), é possível criar entradas DNS para os IPs do NLB criando subdomínios. Também é possível configurar monitores TCP/HTTP (S) para a verificação de funcionamento dos endereços IP do NLB atrás de cada subdomínio.
- Subdomínio
- Ao criar um NLB público em um cluster de zona única ou multizona, é possível expor seu app para a Internet criando um subdomínio para o endereço IP do NLB. Além disso, o IBM Cloud cuida de gerar e manter para você o certificado SSL curinga para
o subdomínio. Em clusters multizona, é possível criar um subdomínio e incluir o endereço IP do NLB em cada zona para essa entrada DNS do subdomínio. Por exemplo, se você implementou NLBs para seu app em três zonas no Sul dos Estados Unidos,
será possível criar o subdomínio
mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloudpara os três endereços IP do NLB. Quando um usuário acessa seu subdomínio de app, o cliente acessa um desses IPs aleatoriamente, e a solicitação é enviada para esse NLB.
Atualmente, não é possível criar subdomínios para NLBs privados.
Ao usar o monitoramento HTTP, o agente de usuário padrão para o trabalho de monitoramento é NS1 HTTP Monitoring Job.
- Monitor de verificação de funcionamento
- Ative as verificações de funcionamento nos endereços IP do NLB por trás de um único subdomínio para determinar se eles estão disponíveis ou não. Ao ativar um monitor para seu subdomínio, o funcionamento do monitor verifica cada IP do NLB e mantém
os resultados da consulta de DNS atualizados com base nessas verificações de funcionamento. Por exemplo, se os seus NLBs tiverem endereços IP
1.1.1.1,2.2.2.2e3.3.3.3, uma consulta de DNS de operação normal de seu subdomínio retornará todos os três IPs, dos quais o cliente acessa um aleatoriamente. Se o NLB com o endereço IP3.3.3.3se tornar indisponível por qualquer motivo, como devido à falha na zona, em seguida, a verificação de funcionamento para esse IP falhará, o monitor removerá o IP com falha do subdomínio e a consulta de DNS retornará apenas os IPs funcionais1.1.1.1e2.2.2.2.
É possível ver todos os subdomínios que estão registrados para IPs do NLB em seu cluster executando o comando a seguir.
ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID
As atualizações de microsserviço DNS são assíncronas e podem levar vários minutos para serem aplicadas. Note que se você executar um comando ibmcloud oc nlb-dns e receber uma mensagem de confirmação de 200, ainda será possível esperar
que suas mudanças sejam implementadas. Para verificar o status de seu subdomínio, execute ibmcloud oc nlb-dns ls e encontre a coluna Status na saída.
Registrando IPs do NLB com um subdomínio DNS
Exponha seu app para a Internet pública, criando um subdomínio para o endereço IP do balanceador de carga de rede (NLB).
Antes de Iniciar:
- Revise as limitações a seguir.
- Não é possível criar subdomínios para NLBs privados.
- É possível registrar até 128 subdomínios. Esse limite pode ser aumentado solicitando um caso de suporte.
- Crie um NLB para seu app em um cluster de zona única ou crie NLBs em cada zona de um cluster multizona.
Para criar um subdomínio para um ou mais endereços IP do NLB:
-
Obtenha o endereço EXTERNAL-IP para seu NLB. Se tiver NLBs em cada zona de um cluster multizona que exponham um app, obtenha os IPs para cada NLB.
oc get svcNa saída de exemplo a seguir, os EXTERNAL-IPs do NLB são
168.2.4.5e88.2.4.5.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE lb-myapp-dal10 LoadBalancer 172.21.xxx.xxx 168.2.4.5 1883:30303/TCP 6d lb-myapp-dal12 LoadBalancer 172.21.xxx.xxx 88.2.4.5 1883:31303/TCP 6d -
Registre o IP ao criar um subdomínio DNS. Para especificar vários endereços IP, use várias opções
--ip.ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> -
Verifique se o subdomínio foi criado.
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>Saída de exemplo
Hostname IP(s) Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["168.2.4.5"] None created <certificate> -
Opcional: configure um domínio customizado para apontar para o subdomínio fornecido pela IBM que você criou na etapa anterior.
- Registre um domínio personalizado entrando em contato com seu provedor de Serviço de Nomes de Domínio (DNS).
- Registre um domínio personalizado usando o IBM Cloud DNS.
Você também pode registrar um domínio personalizado usando a anotação
service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-namena configuração do Load Balancer. -
Defina um alias para o seu domínio customizado especificando o subdomínio fornecido pela IBM como um registro de nome canônico (CNAME).
-
Em um navegador da web, insira a URL para acessar seu app por meio do subdomínio que você criou.
Em seguida, é possível ativar verificações de funcionamento no subdomínio, criando um monitor de funcionamento.
Entendendo o formato do subdomínio
Os subdomínios para NLBs seguem o formato <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud.
Por exemplo, um subdomínio que você cria para um NLB pode se parecer com mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud. A tabela a seguir descreve cada componente do subdomínio.
| Componente de subdomínio do NLB | Descrição |
|---|---|
* |
O curinga para o subdomínio é registrado por padrão para o seu cluster. |
<cluster_name> |
O nome do cluster. - Se o nome do cluster tiver 26 caracteres ou menos e for exclusivo nessa região, o nome inteiro será incluído e não será modificado:
|
<globally_unique_account_HASH> |
Um HASH exclusivo globalmente é criado para sua conta do IBM Cloud. Todos os subdomínios que você cria para NLBs em clusters em sua conta usam esse HASH exclusivo globalmente. |
0001 |
Age como um contador para cada subdomínio criado. |
<region> |
A região de criação do cluster. |
containers.appdomain.cloud |
O subdomínio para os subdomínios do Red Hat OpenShift on IBM Cloud. |
Ativar verificações de funcionamento em um subdomínio criando um monitor de funcionamento
Ative as verificações de funcionamento nos endereços IP do NLB por trás de um único subdomínio para determinar se eles estão disponíveis ou não.
Se você usar políticas de rede pré-DNAT do Calico, grupos de segurança de VPC, listas de controle de acesso(ACLs)de VPC ou outra solução de firewall personalizada para bloquear o tráfego de entrada para serviços de Ingress ou roteador, deverá permitir o tráfego de entrada dos endpoints de monitoramento de integridade. Para obter mais informações, consulte a documentação sobre como permitir o tráfego de rede de entrada para o monitoramento do subdomínio Ingress.
Antes de iniciar, registre os IPs de NLB com um subdomínio DNS.
-
Obtenha o nome de seu subdomínio. Na saída, observe que o host tem um monitor Status de
Unconfigured.ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Saída de exemplo
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud Unconfigured N/A 0 N/A -
Crie um monitor de verificação de funcionamento para o subdomínio. Se você não incluir um parâmetro de configuração, o valor padrão será usado.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --enable --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>-c, --cluster <cluster_name_or_ID>- Necessário: o nome ou ID do cluster no qual o subdomínio está registrado.
--nlb-host <host_name>- Necessário: o subdomínio para o qual ativar um monitor de verificação de funcionamento.
--enable- Inclua esta opção para ativar um novo monitor de verificação de integridade para um subdomínio.
--type <type>- O protocolo a ser usado para a verificação de funcionamento:
HTTP,HTTPSouTCP. Padrão:HTTP. --path <path>- Quando
typeéHTTPS: o caminho do terminal para realizar a verificação de funcionamento. Padrão:/ --timeout <timeout>- O tempo limite, em segundos, antes de o IP ser considerado inatingível. A verificação de funcionamento aguarda o número de segundos especificado no parâmetro
intervalantes de tentar atingir o IP novamente. O valor deve ser um número inteiro no intervalo de 1 a 60. Padrão:5 --interval <interval>- O intervalo, em segundos, entre cada verificação de funcionamento. Intervalos curtos podem melhorar o tempo de failover, mas aumentar o carregamento nos IPs. O valor deve ser um número inteiro no intervalo de 60 a 300. Padrão:
60. --port <port>- O número da porta à qual se conectar para a verificação de funcionamento. Quando
typeforTCP, esse parâmetro será necessário. QuandotypeforHTTPouHTTPS, defina a porta somente se você usar uma porta diferente de 80 para HTTP ou 443 para HTTPS. Padrão para TCP:0. Padrão para HTTP:80. Padrão para HTTPS:443. --header <header>- Obrigatório quando
typeéHTTPouHTTPS``: HTTP os cabeçalhos de solicitação para a verificação de integridade estão limitados ao cabeçalhoHost. Este sinalizador é válido apenas para os tiposHTTPouHTTPS. Este sinalizador aceita valores no seguinte formato:--header Header-Name=value. Ao atualizar um monitor, os cabeçalhos existentes são substituídos por aqueles que você especifica. Para excluir todos os cabeçalhos existentes, especifique o sinalizador com um valor vazio--header "".
Exemplo de comando
ibmcloud oc nlb-dns monitor configure --cluster mycluster --nlb-host mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud --enable --type HTTPS --path /alive --timeout 5 --interval 60 --header Host=example.com -
Verifique se o monitor de verificação de funcionamento está definido com as configurações corretas.
ibmcloud oc nlb-dns monitor get --cluster <cluster_name_or_id> --nlb-host <host_name>Saída de exemplo
Status: enabled Type: https Method: GET Path: /alive Expected Codes: 2xx Port: 443 Timeout: 5 Interval: 60 Headers: Host: example.com -
Visualize o status de verificação de funcionamento do seu subdomínio.
ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>Saída de exemplo
Hostname Status Type Port Path mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud enabled https 443 /alive
Atualizando e removendo IPs e monitores de subdomínios
É possível incluir e remover endereços IP do NLB de subdomínios que você gerou. Também é possível desativar e ativar monitores de verificação de funcionamento para subdomínios, conforme necessário.
IPs do NLB
Se você posteriormente incluir mais NLBs em outras zonas de seu cluster para expor o mesmo app, será possível incluir os IPs do NLB no subdomínio existente.
ibmcloud oc nlb-dns add --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> ... --nlb-host <host_name>
Também é possível remover endereços IP de NLBs que você não deseja mais que sejam registrados com um subdomínio. Observe que se deve executar o comando a seguir para cada endereço IP que você deseja remover. Se você remover todos os IPs de um subdomínio, o subdomínio ainda existirá, mas nenhum IP será associado a ele.
ibmcloud oc nlb-dns rm classic --cluster <cluster_name_or_id> --ip <ip> --nlb-host <host_name>
Monitores de verificação de funcionamento
Se for necessário mudar a configuração do monitor de funcionamento, será possível mudar as configurações específicas. Inclua apenas as opções das configurações que você deseja alterar.
ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>
É possível desativar o monitor de verificação de funcionamento para um subdomínio a qualquer momento executando o comando a seguir:
ibmcloud oc nlb-dns monitor disable --cluster <cluster_name_or_id> --nlb-host <host_name>
Para reativar um monitor para um subdomínio, execute o comando a seguir:
ibmcloud oc nlb-dns monitor enable --cluster <cluster_name_or_id> --nlb-host <host_name>