O SAE oferece suporte ao registro e à descoberta de serviços multilíngues por meio de K8s Services. Configure um nome de domínio fixo para uma aplicação em um cluster SAE para evitar que os endereços IP das instâncias mudem após cada implantação.
Contexto
Em uma arquitetura distribuída de microsserviços, o registro e a descoberta de serviços garantem comunicação confiável entre componentes de servidor e cliente durante a inicialização e a interrupção dos serviços.
Registro de serviço: uma instância de serviço registra suas informações em um registro, que os clientes leem e assinam posteriormente.
Descoberta de serviço: um cliente consulta o registro para obter os endereços dos serviços dependentes antes de fazer uma solicitação. O registro expõe os endereços das instâncias e metadados por meio de uma interface predefinida.
Limitações
Este nome de domínio serve apenas para acessar instâncias na mesma aplicação SAE. Para permitir o acesso de outros serviços, como FC, ACK ou ECS, associe um Classic Load Balancer (CLB) privado ou público. Para mais informações, consulte Configure application service access by using a CLB.
Não é possível usar o comando ping para acessar um K8s Service. Em vez disso, utilize TCP ou UDP no seu código. Para verificar a conectividade de rede, use o comando ping para testar o endereço IP do pod da aplicação.
Um pod de aplicação não consegue acessar a si mesmo usando seu K8s Service.
Caso uma aplicação servidora e uma aplicação cliente precisem se chamar mutuamente, ambas devem ter um K8s Service configurado.
Procedimento
-
Acesse a página de configuração.
Durante a criação
Faça login no console do SAE. No painel de navegação à esquerda, escolha . Selecione uma região e um namespace e clique em Create Application.
Selecione uma versão da aplicação e clique em Create Application.
Na página do assistente Basic Information, defina as configurações e clique em Next: Advanced Settings.
Na página do assistente Advanced Settings, localize e expanda a seção Service Registration and Discovery.
Durante a implantação
AvisoApós reimplantar uma aplicação, ela será reiniciada. Para evitar erros imprevisíveis, como interrupções nos negócios, recomendamos implantar aplicações fora dos horários de pico.
Faça login no console do SAE. No painel de navegação à esquerda, escolha . Selecione uma região e um namespace e clique no nome da sua aplicação.
Na página Basic Information da aplicação, clique em Deploy Application.
Na página do assistente Deploy Application, localize e expanda a seção Service Registration and Discovery.
-
Configure o registro e descoberta de serviços baseados em Kubernetes Service.
Ative a opção Kubernetes Service-based service registration and discovery.
-
Defina o Service name, a Port e o Protocol.
Parâmetro
Descrição
Nome do serviço
Insira um nome de serviço personalizado. O nome deve ser exclusivo por conta dentro de uma região e não pode ser alterado após a criação.
NotaPor padrão, o nome da aplicação é usado como nome do serviço.
Porta
Insira um número de Port entre 1 e 65535.
NotaÉ possível adicionar até cinco configurações de porta e protocolo.
Porta do contêiner
Insira a porta do contêiner.
Protocolo
Selecione um protocolo. Os seguintes protocolos são suportados:
-
TCP
-
UDP
-
Nomes de domínio de acesso
Na página Basic Information da aplicação desejada, vá até a seção Application Access Settings e visualize as informações na aba Kubernetes Service-based Access.
Os quatro tipos de nomes de domínio a seguir são suportados:
Para acessar aplicações no mesmo namespace, utilize o nome do serviço. Exemplo:
demo.-
Para acessar aplicações entre namespaces diferentes, use um dos seguintes formatos de nome de domínio.
-
demo.nsfooNeste exemplo,
nsfooé um namespace personalizado. Se a aplicação alvo estiver no namespace padrão, usedefaultcomo nome do namespace. Exemplo:demo.default. demo.nsfoo.svc.cluster.localdemo.nsfoo.svc.cluster.local.cn-hangzhou
-
Exemplo de mapeamento de portas: a porta é 2000, a porta do contêiner é 5000 e o protocolo é TCP.