Todos os produtos
Search
Central de documentação

Elastic Container Instance:Configurar hosts para um pod baseado em Elastic Container Instance

Última atualização: Jul 05, 2026

A anotação k8s.aliyun.com/eci-custom-hosts permite adicionar entradas personalizadas ao arquivo /etc/hosts de um pod durante a criação. Esse recurso é útil quando os containers precisam resolver um nome de domínio para um endereço IP específico, como ao baixar imagens de um repositório autogerenciado.

Não modifique o arquivo /etc/hosts diretamente em um container em execução, pois alterações manuais podem não persistir.

Pré-requisitos

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

  • Um cluster Kubernetes com suporte a Elastic Container Instance (ECI) ativado

  • Permissão para criar recursos do tipo Deployment

Como funciona

Ao adicionar a anotação k8s.aliyun.com/eci-custom-hosts a um pod, o ECI injeta os mapeamentos de host para IP especificados no arquivo /etc/hosts.

Cada mapeamento usa o seguinte formato JSON:

{"host":"<domain-name>","ip":"<ip-address>"}

Para especificar vários mapeamentos, use um array JSON:

[{"host":"example.com","ip":"100.100.XX.XX"},{"host":"aliyundoc.com","ip":"100.100.XX.XX"}]
Importante

Cada objeto mapeia exatamente um nome de domínio a um endereço IP. Para mapear vários domínios ao mesmo IP, adicione um objeto separado para cada domínio.

Restrições:

  • Adicione a anotação durante a criação do pod. Adicionar ou modificar a anotação em um pod existente não surte efeito.

  • Em Deployments, insira a anotação em spec.template.metadata.annotations, e não no campo metadata de nível superior.

Adicionar entradas de host personalizadas

O exemplo a seguir cria um Deployment com duas entradas de host personalizadas. O container nginx baixa imagens de example.com e o container busybox baixa de aliyundoc.com. Ambos os domínios resolvem para os endereços IP especificados na anotação.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      name: test
      labels:
        app: test
        alibabacloud.com/eci: "true"
      annotations:
        k8s.aliyun.com/eci-custom-hosts: "[{\"host\":\"example.com\",\"ip\":\"100.100.XX.XX\"},{\"host\":\"aliyundoc.com\",\"ip\":\"100.100.XX.XX\"}]"
    spec:
      containers:
      - name: nginx
        image: example.com/test/nginx:latest
        ports:
        - containerPort: 80
      - name: busybox
        image: aliyundoc.com/test/busybox:1.30
        command: ["sleep"]
        args: ["999999"]

Substitua 100.100.XX.XX pelos endereços IP reais dos seus repositórios de imagens.

Verificar a configuração

Depois que o pod estiver em execução, confirme se as entradas personalizadas aparecem no arquivo /etc/hosts:

kubectl exec <pod-name> -- cat /etc/hosts

Se as entradas personalizadas estiverem ausentes, verifique se a anotação estava presente na criação inicial do pod, e não se foi adicionada posteriormente.