If your domain suffix is .local
, you will notice that the name resolution does not work in your TKG nodes and as a result, the TKG deployment fails. This is a known issue. In modern Linux systems, attempts to resolve hostnames that have a domain suffix that ends in .local
can fail. This issue occurs because, the DNS resolver in most Linux distributions, attempts to resolve the .local
domain via multi-cast DNS (mDNS), not via standard DNS servers.
Workaround:
To work around this known issue, you should add a searchDomains
line with your local domain suffix at the end of the vsphere-overlay-dns-control-plane.yaml
and vsphere-overlay-dns-workers.yaml
files.
Example Files:
vsphere-overlay-dns-control-plane.yaml
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")
#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-control-plane"}})
---
spec:
template:
spec:
network:
devices:
#@overlay/match by=overlay.all, expects="1+"
-
#@overlay/match missing_ok=True
nameservers: ["8.8.8.8"]
#@overlay/match missing_ok=True
searchDomains: ["corp.local"]
vsphere-overlay-dns-workers.yaml
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")
#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-worker"}})
---
spec:
template:
spec:
network:
devices:
#@overlay/match by=overlay.all, expects="1+"
-
#@overlay/match missing_ok=True
nameservers: ["8.8.8.8"]
#@overlay/match missing_ok=True
searchDomains: ["corp.local"]
Update the nameservers and the search domain as per your environment and place the YAML files in the ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/
directory of your bootstrap machine.
Note: This is a workaround and it is not recommended to be used in a production environment.
Hope this information helps. If it did, feel free to share it with others. Happy learning! 🙂
Leave a Reply