-
Notifications
You must be signed in to change notification settings - Fork 480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kube-dns doesn't expose service scoped dns names for pod IPs #633
Comments
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
/remove-lifecycle rotten |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
Seems like a bug in the documentation, as according to the DNS specification mentioned in the section linked in the issue, section 2.4.1, it's only provided for headless services ( |
As @Michcioperz brought up, I wonder if kube-dns is supposed to provide these A records or if it's a bug in the docs. Perhaps a maintainer can comment if kube-dns will ever provide this functionality? In the meantime, I made a PR to update the docs. |
I'm in favor of changing the behavior to fulfill what OP described, because
thus we're currently in Hyrum's Law to expect this behavior from the K8s cluster as a whole (no matter the underlying DNS and official specs, etc.) |
Can you provide a repro Deployment+Service where CoreDNS and Cloud DNS do what OP described? I'm pretty confident that, like I said, Cloud DNS only does it for headless services. |
I made tests and support for the availability of DNS resolution like e.g.
tested with the below configuration apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
labels:
app: example-app
spec:
replicas: 1
selector:
matchLabels:
app: example-app
template:
metadata:
labels:
app: example-app
spec:
containers:
- name: example-container
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
clusterIP: None # To comment/un-comment
selector:
app: example-app
ports:
- protocol: TCP
port: 80
targetPort: 80 |
Problem statement
As described in https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1:
This is not the case for
kube-dns
. We're using (generating) those dns names fromEndpointSlice
s for inter cluster communication between services. It does work with coredns.This is relevant for a number of users since GKE by default uses kube-dns.
Usage of service scoped dns names is preferred because it allows for wildcard certificates like
*.service-name.my-namespace.svc.cluster-domain.example
to be used.Proposed solution
Serve service scoped dns names.
The text was updated successfully, but these errors were encountered: