The Cluster Network Addons Operator (CNAO) deploys a Domain Name Server (DNS) server and monitoring components when you enable deployKubeSecondaryDNS
in the HyperConverged
custom resource (CR).
-
You installed the OpenShift CLI (
oc
). -
You configured a load balancer for the cluster.
-
You logged in to the cluster with
cluster-admin
permissions.
-
Edit the
HyperConverged
CR in your default editor by running the following command:$ oc edit hyperconverged kubevirt-hyperconverged -n {CNVNamespace}
-
Enable the DNS server and monitoring components according to the following example:
apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: {CNVNamespace} spec: deployKubeSecondaryDNS: true (1) # ...
-
Enables the DNS server
-
-
Save the file and exit the editor.
-
Create a load balancer service to expose the DNS server outside the cluster by running the
oc expose
command according to the following example:$ oc expose -n {CNVNamespace} deployment/secondary-dns --name=dns-lb \ --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
-
Retrieve the external IP address by running the following command:
$ oc get service -n {CNVNamespace}
Example outputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-lb LoadBalancer 172.30.27.5 10.46.41.94 53:31829/TCP 5s
-
Edit the
HyperConverged
CR again:$ oc edit hyperconverged kubevirt-hyperconverged -n {CNVNamespace}
-
Add the external IP address that you previously retrieved to the
kubeSecondaryDNSNameServerIP
field in the enterprise DNS server records. For example:apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: {CNVNamespace} spec: deployKubeSecondaryDNS: true kubeSecondaryDNSNameServerIP: "10.46.41.94" (1) # ...
-
Specify the external IP address exposed by the load balancer service.
-
-
Save the file and exit the editor.
-
Retrieve the cluster FQDN by running the following command:
$ oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
Example outputopenshift.example.com
-
Point to the DNS server. To do so, add the
kubeSecondaryDNSNameServerIP
value and the cluster FQDN to the enterprise DNS server records. For example:vm.<FQDN>. IN NS ns.vm.<FQDN>.
ns.vm.<FQDN>. IN A <kubeSecondaryDNSNameServerIP>