I'm having a use case where each openshift project belongs to an own VLAN, which has more than just Openshift Nodes in it. Each VLAN has it's own independent DNS to resolve all the Hosts within that VLAN. The Openshift Cluster itself hosts more of such VLANs on the same time. To get the per-project dns resolution done, it is elementary to get a project-based DNS resolving implemented. Is there a way to change the pod's /etc/resolv.conf dependent on the Openshift project it runs in? The Cluster runs on RHEL 7.x, Openshift is 3.11
Personally I think the OpenShift
has not been supported configuration of DNS
per a project
unit. But you can consider the CustomPodDNS
feature to configure DNS
per Pod
unit. So you might configure the Pods
to use same DNS
config in a project
using this feature.
CustomPodDNS
feature for OCP
cluster, if you configure the following parameters in /etc/origin/master/master-config.yaml
.kubernetesMasterConfig:
apiServerArguments:
feature-gates:
- CustomPodDNS=true
controllerArguments:
feature-gates:
- CustomPodDNS=true
/etc/origin/node/node-config.yaml
.kubeletArguments:
feature-gates:
- CustomPodDNS=true
You should restart the related services master
and node
to take effect the changes.
Pod
, refer Pod's Config for more details.apiVersion: v1
kind: Pod
metadata:
namespace: default
name: dns-example
spec:
containers:
- name: test
image: nginx
dnsPolicy: "None"
dnsConfig:
nameservers:
- 1.2.3.4
searches:
- ns1.svc.cluster.local
- my.dns.search.suffix
options:
- name: ndots
value: "2"
- name: edns0