-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Add DNS entry for Endpoint IP (if not using type loadbalancer) #187
Comments
AFAIK this should "just work" for service and ingress as long as the Kubernetes field There is no special check for service type "LoadBalancer" as you can see in https://github.com/kubernetes-incubator/external-dns/blob/master/source/service.go . Maybe you can describe your use case in more detail? I'm not entirely sure what you want to achieve. |
Hey @hjacobs , thanks for quick response! I deploy my service like this :
However, this creates a LoadBalancer with External IP address.
I want this IP : 10.108.2.78 in my DNS zone configuration :) |
@evaldasou hmm, why do you want to expose the internal endpoint IPs in public DNS? Also why are you talking about endpoint IPs and not the ClusterIP of the service (10.111.253.237 in your example)? The service might have an "unlimited" number of endpoints --- would you expect to have load balancing on the DNS side for all those IP (DNS round robin)? FYI: Inside the cluster you will get a DNS entry for the ClusterIP "out of the box" via I still don't get your use case, maybe you can elaborate... |
Sure. So first, ClusterIP is only reachable from within the cluster... If I could connect to it from outside of the cluster - it's all good! I want to access my resources from Internal only/ VPN network via DNS names. I agree that Endpoints IP makes no sense for multiple Endpoints too, but they are reachable at least outside of the cluster (not as ClusterIP). So I want my services to be reachable only via Internal IPs (not via internet). It could be cluster IP or endpoint IP. Thanks! |
We actually have exactly the same situation. We run PriTunl via a @evaldasou What we are in the process of doing currently is standing up an internal ELB that fronts the |
@evaldasou did you have a look at Headless Services? KubeDNS will serve A records for each pod belonging to a headless service. In your example above this would lead to something like this, I believe: $ dig @kubednsIP nginx.default.svc.cluster.local
10.108.2.78 <== pod IP
... |
That works, but it can be handy to have an abstraction over that that is "nicer" for end users that remains consistent and abstracts over the different namespaces. Our end users want something like |
- First pass at addresssing kubernetes-sigs#187 by allowing services with type ClusterIP to be directly supported
I see, that makes sense. I created an issue as well. |
thanks a lot guys! really appreciate Your time and effort! looks promising! 👍 |
@linki One thing I guess I should have mentioned with the Headless Service comment explicitly is that currently the I started some work to support the I started some work on this @ master...jrnt30:clusterip-sources |
* ClusterIP service support - First pass at addresssing #187 by allowing services with type ClusterIP to be directly supported * Getting existing tests to pass * Adjusting formatting for gofmt/govet * Adding in guard logic around publishing of ClusterIP sources * Addressing PR feedback * Adding in CHANGELOG entry * Adding in Headless service test
hey @jrnt30 ! |
I'm glad to see that it's working for you as well. Little context, a few questions and a direct answer to your question. Context: We went this route due to some limitations we saw with the Ingress controller's ability to map arbitrary protocols/ports and a few other things I can't recall immediately. Questions: Can you provide a bit more information about what you are attempting to expose and what IPs the endpoint vs. service actually exposes? Answer
|
thanks @jrnt30 |
That too will require the multiple target support as well, however we could create an issue to cover some of those. |
@jrnt30 , NodePort can work with single target too, for example it looks like this on my service :
IP is the same as ClusterIP and could be exposed in this case. |
@evaldasou , how did you get it to work with Endpoints?
running external-dns with the following flags: but external-dns doesn't find anything to export ( marked the service in question with stars ):
|
* ClusterIP service support - First pass at addresssing kubernetes-sigs#187 by allowing services with type ClusterIP to be directly supported * Getting existing tests to pass * Adjusting formatting for gofmt/govet * Adding in guard logic around publishing of ClusterIP sources * Addressing PR feedback * Adding in CHANGELOG entry * Adding in Headless service test
I would like to update external-dns with a node's PUBLIC IP as a deployment needs to use host networking and uses the hosts external IP. As suggested above how do I set status.loadBalancer.ingress with the external IP so that it can be picked up with external-dns? |
Vote for external-dns can use node public ip (ephemeral or static in GCE terms). |
* add: description how to install krew on fish * add: spaces after lists
Hey Guys,
Thanks for a great tool.
However, is it possible to get DNS entries updated with Internal IPs? Or with Endpoints IPs?
I do not want to expose service to the internet, so type loadbalancer is not ideal for this.
Thanks!
The text was updated successfully, but these errors were encountered: