O DNS externo sincroniza os serviços expostos do balanceador de carga do cluster TKG e as entradas com os provedores de DNS. Você pode implantar o Tanzu Package for External DNS para fornecer descoberta de serviço dinâmica para seu cluster.

Requisitos do pacote

As configurações de exemplo fornecidas com o pacote DNS externo incluem exemplos com e sem o controlador de entrada Contour. Se você estiver usando o Contour, instale-o antes de instalar o pacote DNS externo. Consulte Instalar o pacote Tanzu para o Contour Ingress usando o Kubectl.

O pacote DNS externo permite a descoberta dinâmica de serviços. Consulte DNS externo para exemplos de casos de uso.

No contexto do TKG, um caso de uso comum para DNS externo é o uso com o Harbor Registry. O Harbor requer uma zona DNS configurada em um provedor de DNS dinâmico compatível com RFC 2136, como AWS Route53, DNS do Azure, DNS do Google Cloud ou um servidor DNS local, como BIND.

Instalar o pacote DNS externo

Conclua as etapas a seguir para instalar o Tanzu Package for External DNS.

  1. Crie a especificação dns.yaml.
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: dns-sa
      namespace: tkg-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: dns-role-binding
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: dns-sa
        namespace: tkg-system
    ---
    apiVersion: packaging.carvel.dev/v1alpha1
    kind: PackageInstall
    metadata:
      name: dns
      namespace: tkg-system
    spec:
      serviceAccountName: dns-sa
      packageRef:
        refName: dns.tanzu.vmware.com
        versionSelection:
          constraints: 1.20.2+vmware.1-tkg.1-rc.2
      values:
      - secretRef:
          name: dns-data-values
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: dns-data-values
      namespace: tkg-system
    stringData:
      values.yml: |
        ---
        dns:
          pspNames: "vmware-system-restricted"
    
  2. Instale o pacote DNS externo.
    kubectl apply -f dns.yaml

Configurar o pacote DNS externo

Você pode configurar o pacote DNS externo com configurações personalizadas.

Configure os parâmetros de implantação do seu provedor DNS externo. Consulte o site do Kubernetes https://github.com/kubernetes-sigs/external-dns#running-externaldns para obter orientações adicionais.
Tabela 1. Configuração do pacote DNS externo
Parâmetro Descrição Tipo Padrão
externalDns.namespace Namespace em que o external-dns será implantado seqüência de caracteres tanzu-system-service-discovery
externalDns.image.repository Repositório que contém a imagem de DNS externo seqüência de caracteres projects.registry.vmware.com/tkg
externalDns.image.name Nome do DNS externo seqüência de caracteres external-dns
externalDns.image.tag Tag de imagem ExternalDNS seqüência de caracteres v0.7.4_vmware.1
externalDns.image.pullPolicy Política de pull de imagem ExternalDNS seqüência de caracteres IfNotPresent
externalDns.deployment.annotations Anotações sobre a implantação de DNS externo map<string,string> {}
externalDns.deployment.args Argumentos passados via linha de comando para external-dns lista<string> [] ( Parâmetro obrigatório )
externalDns.deployment.env Variáveis de ambiente a serem passadas para external-dns lista<string> []
externalDns.deployment.securityContext Contexto de segurança do contêiner de DNS externo SecurityContext {}
externalDns.deployment.volumeMounts Montagens de volume do contêiner external-dns list<VolumeMount> []
externalDns.deployment.volumes Volumes do pod de DNS externo list<Volume> []