No Kubernetes, os pods são efêmeros e têm endereços IP variáveis. Um Service fornece um endpoint estável, como um endereço IP virtual, para acessar um conjunto de pods. Isso desacopla os clientes de frontend dos pods de backend e garante comunicação confiável mesmo durante a criação ou destruição de pods. Este tópico descreve como criar um Service do tipo ClusterIP pelo console do Alibaba Cloud Container Service (ACS).
Informações básicas
No Kubernetes, um Service é uma abstração que define um conjunto lógico de pods e uma política de acesso a eles, frequentemente chamado de microsserviço. Um seletor de rótulos geralmente determina o conjunto de pods direcionados por um Service.
Os pods têm endereços IP próprios, mas são efêmeros e podem ser criados ou destruídos dinamicamente. Expor pods diretamente ao tráfego externo impede a implementação de uma arquitetura de alta disponibilidade. Um Service desacopla o frontend do backend e permite que o frontend opere sem precisar conhecer os pods específicos de backend. Esse mecanismo viabiliza um design de microsserviços com baixo acoplamento.
Para mais informações, consulte Kubernetes Service.
Etapa 1: Criar um Deployment
Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.
Na página Deployments, clique em Create from YAML.
-
Selecione um modelo ou insira seu próprio YAML e clique em Create.
Este modelo de exemplo define um Deployment para Nginx.
apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx-svc namespace: default spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest ports: - containerPort: 80 Na página Deployments, clique no nome da aplicação desejada ou em Details na coluna Actions. Monitore o status do Deployment e aguarde até que todas as instâncias de pod fiquem disponíveis.
Etapa 2: Criar um Service
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Network > Services.
-
Na página Services, clique em Create. Na caixa de diálogo Create Service, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Exemplo
Name
Nome do Service.
my-nginx-svc
Service Type
Selecione Cluster IP. Esse tipo expõe o Service em um endereço IP interno do cluster e torna-o acessível apenas dentro dele. Trata-se do tipo padrão de Service.
NotaOpcionalmente, ative o Headless Service. Essa opção permite integrar outros sistemas de descoberta de service sem dependência da implementação do Kubernetes.
ClusterIP
Backend
Escolha a aplicação de backend para a qual o Service roteará o tráfego. Sem a associação de um backend, o sistema não cria um objeto Endpoints. Para mais detalhes, consulte Services without selectors.
Name: app
Value: nginx
Port Mapping
Adicione um mapeamento entre a Service Port, correspondente ao campo
portno YAML do Service, e a Container Port, correspondente ao campotargetPort. A porta do contêiner deve corresponder à porta exposta pelos pods de backend.Service Port: 80
Container Port: 80
Protocol: TCP
Annotations
Adicione uma anotação ao Service.
Nenhum
Label
Adicione um rótulo para identificar o Service.
Nenhum
Após a criação, o Service aparece na página Services. Na coluna Actions, use as opções Update, Edit YAML ou Delete para gerenciá-lo.