Skip to main content

Integrated CoreDNS

The integrated CoreDNS feature allows you to run CoreDNS as part of the syncer, which saves the overhead of an external CoreDNS pod.

Key Benefits

Avoiding Cluster Max Pods Limit: As clusters scale, number of pods allowed or kubernetes apiserver load may be a bottleneck.

Optimized Resource Allocation: More components sharing the same allocated resources instead of having independently allocated resources means less wastage of resources due to bin-packing constraints.

A normal deployment of vCluster consists usually of two pods per vCluster:

  • vCluster Pod:
    • APIServer container
    • syncer container
  • CoreDNS Pod

vCluster.Pro integrates the CoreDNS container and the vCluster syncer. As a result of this, when enabled there will only be a single pod containing all 3 components

  • vCluster Pod
    • APIServer container
    • (syncer + CoreDNS) container

Enabling Integrated CoreDNS

Enabled by Default

The Integrated CoreDNS feature is already enabled in the default vCluster.Pro template

To enable this feature, simply create the vCluster with the following values:

coredns:
integrated: true

Custom CoreDNS Configuration

The platform provides an option to pass in your custom CoreDNS configuration which can be passed to extend the default one used by vCluster. To utilize this, one needs to pass the Corefile configuration as part of a configmap named coredns-custom in the same namespace as the vCluster

apiVersion: v1
kind: configmap
metadata:
name: coredns-custom
namespace: <vcluster-namespace>
data:
custom1.server: |-
... <your_custom_config> ...
custom2.server: |-
... <your_custom_config> ...