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
containersyncer
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
PodAPIServer
container- (
syncer
+CoreDNS
) container
Enabling Integrated CoreDNS
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> ...