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
- Provisione um cluster TKG 2 com uma classe de armazenamento padrão. Consulte Provisionando clusters do TKG 2 em Supervisor.
- Conecte-se ao cluster do TKG 2. Consulte Gerenciando identidade e acesso para clusters TKG 2 em Supervisor.
- Instale os pré-requisitos do pacote Tanzu. Consulte Instalar os pré-requisitos do pacote Tanzu usando o Kubectl
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.
- 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"
- 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.
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> | [] |