Todos os produtos
Search
Central de documentação

Enterprise Distributed Application Service:Adicionar um Service

Última atualização: Jun 26, 2026

Quando várias aplicações são executadas no mesmo cluster Kubernetes, seus pods precisam de endpoints estáveis para comunicação. Os pods possuem endereços IP independentes, mas são criados e excluídos rapidamente, o que torna as conexões diretas não confiáveis. Um Service do Kubernetes fornece um endpoint de rede fixo que roteia o tráfego para os pods, independentemente das mudanças no ciclo de vida deles.

Adicione um Service a uma aplicação implantada no Enterprise Distributed Application Service (EDAS) para expor a aplicação dentro ou fora do cluster.

Como os Services funcionam

Uma aplicação implantada em um cluster do Container Service for Kubernetes (ACK) por meio do EDAS é executada como um grupo de pods que compartilham a mesma imagem docker. Cada pod tem seu próprio endereço IP, mas os pods são criados e excluídos rapidamente. Um Service do Kubernetes resolve esse problema ao fornecer um endpoint estável que roteia automaticamente o tráfego para os pods. Os Services também desacoplam frontends de backends, permitindo uma arquitetura de microsserviços com baixo acoplamento.

Tipos de Service

O EDAS oferece suporte a dois tipos de Service:

Tipo

Escopo de acesso

Caso de uso

ClusterIP (padrão)

Apenas interno ao cluster

Comunicação entre Services no mesmo cluster

NodePort

Acesso externo via <NodeIP>:<NodePort>

Acesso à aplicação por sistemas ou usuários externos usando o endereço IP e uma porta de um nó

  • ClusterIP: Expõe a aplicação em um endereço IP interno do cluster. Apenas cargas de trabalho dentro do mesmo cluster podem alcançar este Service. Use um Service ClusterIP quando os Services da aplicação dentro do cluster precisarem acessar uns aos outros, pois eles não conseguem se comunicar por meio de uma instância de SLB voltada para a Internet ou interna.

  • NodePort: Expõe a aplicação em uma porta estática em todos os nós do cluster. O Kubernetes cria automaticamente um Service ClusterIP de suporte e roteia o tráfego do NodePort para ele.

Nota

Você também pode usar uma instância de Server Load Balancer (SLB) voltada para a Internet ou uma instância de SLB interna para expor a aplicação.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma aplicação implantada em um cluster Kubernetes no EDAS

  • Acesso ao console do EDAS

Adicionar um Service a uma aplicação

  1. Faça login no console do EDAS.

  2. No painel de navegação à esquerda, escolha Application Management > Applications.

  3. Na barra de navegação superior, selecione uma região e um Microservices Namespace. Na lista suspensa Cluster Type, selecione Kubernetes Cluster. Clique em nome da aplicação de destino.

  4. Na página Application Overview, na seção Access configuration, clique em ícone Plus icon ao lado de service.

    Nota

    Se já existir um Service, o nome e o endereço IP dele serão exibidos. Clique em ícone Edit icon para modificar a porta ou o protocolo, ou clique em ícone Delete icon para remover o Service.

  5. Na caixa de diálogo Service, configure os seguintes parâmetros e clique em OK.

    sgtdrh

    Parâmetro

    Descrição

    Service Name

    Nome exclusivo para o Service. Deve ter de 2 a 32 caracteres e pode conter letras minúsculas, dígitos e hifens (-). Deve começar com uma letra e terminar com uma letra ou um dígito.

    Service Type

    Escopo de acesso do Service. Valores válidos:

    • Cluster IP: Expõe o Service em um endereço IP interno do cluster. O Service é acessível apenas de dentro do cluster. Este é o valor padrão.

    • Node Port: Expõe o Service em uma porta estática em cada nó. Clientes externos se conectam via <NodeIP>:<NodePort>. Um Service ClusterIP é criado automaticamente para dar suporte a este Service NodePort.

    External Traffic Policy

    Controla como o tráfego externo ao cluster é distribuído para os pods. Valores válidos:

    • Local: Roteia o tráfego apenas para os pods no nó onde o Service está implantado.

    • Cluster: Roteia o tráfego para pods em outros nós do cluster.

    Service Port

    Porta na qual o Service escuta. Outros Services ou clientes externos usam esta porta para se conectar. Valores válidos: 1 a 65535.

    Container Port

    Porta na qual o processo da aplicação escuta dentro do contêiner. Esta porta é definida pela aplicação. Valores válidos: 1 a 65535.

    Node Port

    Porta em cada nó usada para expor o Service externamente. Esta porta é definida pela aplicação. Valores válidos: 30000 a 32767. Este parâmetro está disponível apenas quando Service Type está definido como Node Port.

    Protocol

    Protocolo de transporte. Valores válidos: TCP (padrão), UDP.

Regras de mapeamento de portas

  • Um único Service suporta múltiplos mapeamentos de porta. Para atribuir mapeamentos de porta diferentes a nomes de Service distintos, repita as etapas 4 e 5 para criar Services adicionais.

  • Ao adicionar vários mapeamentos de porta ao mesmo Service, cada mapeamento deve ter uma combinação exclusiva de porta de Service e protocolo. Por exemplo, 80|8080|TCP e 80|8081|TCP não podem ser salvos porque ambos os mapeamentos compartilham a mesma porta de Service (80) e protocolo (TCP), e a mensagem "Port mapping has duplicate entries" é exibida.

Verificar o resultado

Após adicionar o Service, verifique a conectividade acessando a aplicação de dentro do cluster usando o endereço IP do Service.

O exemplo a seguir testa uma aplicação web. As etapas de verificação para outros tipos de aplicação podem variar.

  1. Faça login no console do ACK.

  2. No painel de navegação à esquerda, clique em Clusters.

  3. Na página Clusters, localize o cluster de destino e escolha More > Manage ACK clusters na coluna Actions.

    O Cloud Shell abre automaticamente na parte inferior da página e carrega o arquivo kubeconfig do cluster.

  4. Liste todos os pods no cluster:

    kubectl get pods

    Saída de exemplo:

    NAME                                             READY   STATUS    RESTARTS   AGE
    store-pre-****-group-1-19-****7569b-f7***        1/1     Running   0          28h
    store-prod-***duct-group-1-1-****7f894-zh***     1/1     Running   0          28h
  5. Abra uma sessão de shell em um dos pods:

    Substitua <pod-name> pelo nome real de um pod obtido na saída. Exemplo:

    kubectl exec -it <pod-name> /bin/sh
    kubectl exec -it store-prod-***duct-group-1-1-****7f894-zh*** /bin/sh
  6. Envie uma solicitação para o endereço IP e a porta do Service:

    Substitua <service-ip> e <service-port> pelos valores reais. Exemplo:

    wget <service-ip>:<service-port>
    wget 10.XX.XX.XX:8081

    Se a conexão for bem-sucedida, uma saída semelhante à seguinte será retornada:

    Connecting to 10.XX.XX.XX:8081 (10.XX.XX.XX:8081)
    index.html           100% |*******************************************************|  2203  0:00:00 ETA
Nota

Este exemplo verifica uma aplicação web. Para outros tipos de aplicação, a saída e o método de verificação diferem dependendo do Service.