O Alibaba Cloud DNS PrivateZone mapeia nomes de domínio privados em uma ou mais Virtual Private Clouds (VPCs) para endereços IP e bloqueia o acesso externo a essas VPCs. O ACK Serverless integra-se ao PrivateZone para fornecer um nome DNS estável a cada Service do cluster, sem necessidade de rastrear endereços IP.
A descoberta de service baseada no PrivateZone oferece suporte a três tipos de Service: Services de intranet, Services headless e Services ClusterIP.
Se preferir uma abordagem baseada em CoreDNS, consulte How DNS resolution works in ACK Serverless clusters.
Pré-requisitos
Antes de começar, verifique se você tem:
-
Alibaba Cloud DNS PrivateZone ativado no console do Alibaba Cloud DNS
NotaO PrivateZone não está disponível na região dos Emirados Árabes Unidos (Dubai).
-
Um cluster ACK Serverless criado com o componente PrivateZone habilitado. Use um dos métodos a seguir:
Novo cluster: Selecione PrivateZone no parâmetro Service Discovery durante a criação do cluster.

Cluster existente: Defina o parâmetro
enablePrivateZoneno ConfigMapeci-profilecomotrue.
Cliente kubectl conectado ao cluster
Faturamento
Para obter detalhes sobre os preços do PrivateZone, consulte Pricing.
Como funciona
O PrivateZone cria registros DNS no formato $svc.$ns. Cada tipo de Service corresponde a uma estrutura diferente de registro DNS:
|
Tipo de Service |
Quantidade de registros |
Resolve para |
|
LoadBalancer (intranet) |
1 |
Endereço IP da instância SLB |
|
ClusterIP |
1 |
Endereço IP do cluster |
|
Headless |
Múltiplos |
Endereços IP de todos os pods de backend |
Após a criação dos registros, os pods na VPC podem acessar qualquer Service pelo nome de domínio privado.
Formatos de nome de domínio:
|
Formato |
Escopo |
Exemplo |
|
|
Mesmo namespace |
|
|
|
Namespace diferente |
|
|
|
Cluster atual (nome completo); também funciona para acesso entre clusters |
|
Ative a descoberta de service com PrivateZone
Etapa 1: Implantar um Deployment e crie Services
Salve o YAML a seguir em nginx-service.yaml e execute kubectl create -f nginx-service.yaml.
apiVersion: v1
kind: Service
metadata:
name: nginx-headless-service
spec:
ports:
- port: 80
protocol: TCP
selector:
app: nginx
clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
name: nginx-clusterip-service
spec:
ports:
- port: 80
protocol: TCP
selector:
app: nginx
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: nginx-intranet-service
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
spec:
ports:
- port: 80
protocol: TCP
selector:
app: nginx
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
Etapa 2: Verifique se os recursos estão em execução
kubectl get svc,pod,deployment
Confirme se todos os três Services e os pods do Deployment aparecem com o status esperado antes de prosseguir.
Etapa 3: Visualize registros do PrivateZone no console
Faça login no console do Alibaba Cloud DNS.
No painel de navegação à esquerda, clique em Private DNS (PrivateZone).
No canto superior direito da página, clique em Configuration Mode.
Clique em aba Built-in Authoritative Module e selecione User Defined Zones.
Na coluna Actions do domínio que deseja inspecionar, clique em Resource Records Settings.
O console exibe os registros DNS criados pelo PrivateZone para seus Services. Verifique se cada Service tem a quantidade correta de entradas e endereços IP de destino, conforme a tabela em Como funciona.
Próximos passos
Para mais exemplos e configurações avançadas, consulte serverless-k8s-examples.