It creates records such as myservice.service.domain.io, so your application 
must be able to contact a dns forwarder which has the zone for that 
domain.io. 
What I am using at the moment are stubdomains to include the domain.io but 
it's at cluster level. What I need to do is to solve different consul names 
per namespace or pod.
I tried to use a service definition as follows:

kind: Service
apiVersion: v1
metadata:
  name: consul-resolution
  namespace: default
spec:
  type: ExternalName
  externalName: consul.service.domain.io

And an endpoint:
kind: Endpoints
apiVersion: v1
metadata:
  name: consulresolution
subsets:
  - addresses:
      - ip: 10.24.7.26
    ports:
      - port: 8300

But I am not even able to ping consul.service.cnqr.io.. any idea? 
Thanks

Il giorno martedì 26 settembre 2017 16:03:16 UTC+2, Rodrigo Campos ha 
scritto:
>
> Sorry, never used consul and I don't follow what you said.
>
> Does it create records like <service name>.k8s-service that won't work 
> with just a k8s external type service?
>
> Then it might be possible to say to kube dns to use some upstream to some 
> domains, probably? I've not played with it, as I don't need it. But I'd 
> guess something like that might be possible to do. And use different 
> domains on apps that need to query different consul clusters?
>
> On Tuesday, September 26, 2017, Simone D'Andreta <simone....@gmail.com 
> <javascript:>> wrote:
>
>> I am afraid it won't work. I will be able to solve consul.service.domain 
>> but I won't be able to solve external services registered within consul, 
>> such as mydatabase.service.domain because I need a NS record.. unless I can 
>> use that CNAME as a NS record, but I don't think it's the right approach..
>>
>>
>> Il giorno martedì 26 settembre 2017 10:21:13 UTC+2, Simone D'Andreta ha 
>> scritto:
>>>
>>> Hi Rodrigo,
>>> ideally we would need this per pod, but I can give it a try with 
>>> creating a service per namespace.
>>> Thanks for the hint, I will let you know how it goes.
>>> Simone
>>>
>>> Il giorno lunedì 25 settembre 2017 18:34:07 UTC+2, Rodrigo Campos ha 
>>> scritto:
>>>>
>>>> Sorry, I must be missing something. But if you want to resolve to 
>>>> different consul clusters in different kubernetes namespaces, can't you 
>>>> just use a service type external on each?
>>>>
>>>> You create a service, named as you want them to contact, and is per ns 
>>>> and returns a CNAME.
>>>>
>>>> Wouldn't that do the trick?
>>>>
>>>> On Monday, September 25, 2017, Simone D'Andreta <simone....@gmail.com> 
>>>> wrote:
>>>>
>>>>> I need to be able to overwrite the resolv.conf per pods. If I tweak 
>>>>> the kube-dns configmap, I will have additional nameservers per node, not 
>>>>> per pods.
>>>>> The scenario is: I have a  kubernetes cluster which is shared between 
>>>>> different teams, and each team has his own namespace to deploy pods. 
>>>>> Anyway 
>>>>> these pods must be able to communicate with different consul clusters 
>>>>> which 
>>>>> are in different environments. Since they are in different envs, we need 
>>>>> to 
>>>>> point to different DNS. Since pods get dns resolutions from the nodes, 
>>>>> but 
>>>>> the nodes are shared, we need a way to overwrite the dns settings per 
>>>>> pods. 
>>>>> I know this is a bad practice - I get what Tim said above in this 
>>>>> thread - but this is just a proof of concept and we'd like to know 
>>>>> whether 
>>>>> there is a way to do this (the cleaner the better :D)
>>>>> Thanks
>>>>> Simone
>>>>>
>>>>> Il giorno lunedì 25 settembre 2017 15:15:43 UTC+2, Rodrigo Campos ha 
>>>>> scritto:
>>>>>>
>>>>>> Can you explain what do you what to achieve?
>>>>>>
>>>>>> Maybe changing the configmap kube-dns uses it's enough (and is 
>>>>>> prepared to be changed easily, now).
>>>>>>
>>>>>> On Monday, September 25, 2017, Simone D'Andreta <simone....@gmail.com> 
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Tim,
>>>>>>> I know what you mean and that's definitely a big issue on our side. 
>>>>>>> This is for us more a proof of concept to understand if we can go this 
>>>>>>> way. 
>>>>>>> Since I am not a big expert with Kubernetes, I wanted to know if there 
>>>>>>> are 
>>>>>>> solutions I haven't considered that might solve my problem.
>>>>>>> That said, I thank you a lot for your explanations here. I  found 
>>>>>>> something that can help me, though it sets dns names at node level - 
>>>>>>> not 
>>>>>>> per pod:
>>>>>>>
>>>>>>> https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
>>>>>>> If I include the different IPs in the stub domains I definitely 
>>>>>>> should get an answer for the service discovery part. Not ideal, but I 
>>>>>>> think 
>>>>>>> better than mounting and overriding the resolv.conf.
>>>>>>> Cheers
>>>>>>> Simone
>>>>>>>
>>>>>>> Il giorno venerdì 22 settembre 2017 19:10:01 UTC+2, Tim Hockin ha 
>>>>>>> scritto:
>>>>>>>>
>>>>>>>> you're trying to mount a directory (emptyDir) onto a file 
>>>>>>>> (/etc/resolv.conf).  Without seeing the error that is a wild 
>>>>>>>> guess.  I 
>>>>>>>> can't stop you from doing this, but I strongly encourage you to 
>>>>>>>> re-read and internalize what I wrote about multiple nameserver 
>>>>>>>> records. 
>>>>>>>>
>>>>>>>> On Fri, Sep 22, 2017 at 6:19 AM, Simone D'Andreta 
>>>>>>>> <simone....@gmail.com> wrote: 
>>>>>>>> > I am trying to mount that volume but my container won't start. I 
>>>>>>>> guess I am 
>>>>>>>> > doing something wrong. This is the yaml 
>>>>>>>> > apiVersion: extensions/v1beta1 
>>>>>>>> > kind: Deployment 
>>>>>>>> > metadata: 
>>>>>>>> >   name: {{ template "fullname" . }} 
>>>>>>>> >   namespace: code 
>>>>>>>> >   labels: 
>>>>>>>> >     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" 
>>>>>>>> }}" 
>>>>>>>> >   annotations: 
>>>>>>>> >     commitSHA: {{ .Chart.AppVersion }} 
>>>>>>>> >     isNotifiable : "true" 
>>>>>>>> > spec: 
>>>>>>>> >   replicas: {{ .Values.replicaCount }} 
>>>>>>>> >   template: 
>>>>>>>> >     metadata: 
>>>>>>>> >       labels: 
>>>>>>>> >         app: {{ template "fullname" . }} 
>>>>>>>> > 
>>>>>>>> >     spec: 
>>>>>>>> > 
>>>>>>>> >       containers: 
>>>>>>>> >       - name: {{ .Chart.Name }} 
>>>>>>>> >         image: "{{ .Values.image.repository }}:{{ 
>>>>>>>> .Values.image.tag }}" 
>>>>>>>> >         imagePullPolicy: {{ .Values.image.pullPolicy }} 
>>>>>>>> >         volumeMounts: 
>>>>>>>> >         - name: new-resolv 
>>>>>>>> >           mountPath: /etc/resolv.conf 
>>>>>>>> >         command: ["/bin/sh"] 
>>>>>>>> >         args: ["-c", "echo nameserver 10.24.26.102 > 
>>>>>>>> /etc/resolv.conf"] 
>>>>>>>> > 
>>>>>>>> > 
>>>>>>>> >         ports: 
>>>>>>>> >           - name: frontend 
>>>>>>>> >             containerPort: {{ .Values.port}} 
>>>>>>>> >         readinessProbe: 
>>>>>>>> >           httpGet: 
>>>>>>>> >             path: {{ .Values.lifecheck }} 
>>>>>>>> >             port: {{ .Values.port}} 
>>>>>>>> > 
>>>>>>>> >       volumes: 
>>>>>>>> >       - name: new-resolv 
>>>>>>>> >         emptyDir: {} 
>>>>>>>> > 
>>>>>>>> > I am using helm to deploy so the variables get expanded via 
>>>>>>>> Values.yaml or 
>>>>>>>> > other template files. 
>>>>>>>> > I think I am just not able to mount that volume properly.. 
>>>>>>>> > Thanks 
>>>>>>>> > 
>>>>>>>> > 
>>>>>>>> > Il giorno giovedì 21 settembre 2017 19:21:39 UTC+2, Tim Hockin ha 
>>>>>>>> scritto: 
>>>>>>>> >> 
>>>>>>>> >> You'd have to craft a new file and mount it onto your 
>>>>>>>> resolv.conf, 
>>>>>>>> >> which makes it harder to "just add another line" because you 
>>>>>>>> don't 
>>>>>>>> >> have the base. 
>>>>>>>> >> 
>>>>>>>> >> But more than that, what you're asking for is really 
>>>>>>>> non-standard 
>>>>>>>> >> behavior.  You can't safely add a nameserver record to 
>>>>>>>> resolv.conf 
>>>>>>>> >> that produces different results.  The behavior of DNS resolvers 
>>>>>>>> varies 
>>>>>>>> >> widely, and this will cause you pain eventually (kubernetes used 
>>>>>>>> to do 
>>>>>>>> >> this, it was bad). 
>>>>>>>> >> 
>>>>>>>> >> Consider this - some resolvers ask all DNS servers in parallel, 
>>>>>>>> and 
>>>>>>>> >> take the first response.  If one resolver can answer a query and 
>>>>>>>> >> another can't (NXDOMAIN), your app will sometimes get an address 
>>>>>>>> and 
>>>>>>>> >> will sometimes fail.  This actually happens. 
>>>>>>>> >> 
>>>>>>>> >> 
>>>>>>>> >> On Thu, Sep 21, 2017 at 6:33 AM, Simone D'Andreta 
>>>>>>>> >> <simone....@gmail.com> wrote: 
>>>>>>>> >> > Bad news, my idea doesn't work. Could you explain me more 
>>>>>>>> about the 
>>>>>>>> >> > volumeMount? I know how to mount but I don't know how I can 
>>>>>>>> effectively 
>>>>>>>> >> > add 
>>>>>>>> >> > a nameserver on that file. 
>>>>>>>> >> > 
>>>>>>>> >> > Thanks 
>>>>>>>> >> > Simone 
>>>>>>>> >> > 
>>>>>>>> >> > 
>>>>>>>> >> > Il giorno giovedì 21 settembre 2017 10:26:48 UTC+2, Simone 
>>>>>>>> D'Andreta ha 
>>>>>>>> >> > scritto: 
>>>>>>>> >> >> 
>>>>>>>> >> >> Hi Tim, 
>>>>>>>> >> >> thanks for your answer. I don't actually need to override all 
>>>>>>>> the 
>>>>>>>> >> >> settings 
>>>>>>>> >> >> in the resolv.conf, I just need to add another nameserver at 
>>>>>>>> the top of 
>>>>>>>> >> >> the 
>>>>>>>> >> >> file. How about if I run a command in the pod such as: 
>>>>>>>> >> >> 
>>>>>>>> >> >> command: ['/bin/sh', '-c', 'echo 'nameserver x.y.z.w' | cat - 
>>>>>>>> >> >> /etc/resolv.conf > temp && mv temp /etc/resolv.conf'] 
>>>>>>>> >> >> would it work? 
>>>>>>>> >> >> Thanks 
>>>>>>>> >> >> 
>>>>>>>> >> >> Il giorno mercoledì 20 settembre 2017 17:29:16 UTC+2, Tim 
>>>>>>>> Hockin ha 
>>>>>>>> >> >> scritto: 
>>>>>>>> >> >>> 
>>>>>>>> >> >>> There's no supported way to do that, in part because it 
>>>>>>>> would give up 
>>>>>>>> >> >>> all of the Service names that kubernetes provides.  I don't 
>>>>>>>> know what 
>>>>>>>> >> >>> would happen if you tried to volumeMount a file over 
>>>>>>>> /etc/resolv.conf 
>>>>>>>> >> >>> - might be worth a shot. 
>>>>>>>> >> >>> 
>>>>>>>> >> >>> On Wed, Sep 20, 2017 at 3:15 AM, Simone D'Andreta 
>>>>>>>> >> >>> <simone....@gmail.com> wrote: 
>>>>>>>> >> >>> > Hello, 
>>>>>>>> >> >>> > I wanted to know if there is a way to override DNS 
>>>>>>>> settings for pods 
>>>>>>>> >> >>> > (not 
>>>>>>>> >> >>> > per cluster). I tried to use HostAliases but it only 
>>>>>>>> creates an A 
>>>>>>>> >> >>> > record for 
>>>>>>>> >> >>> > that entry. I basically need a NS record cause I need to 
>>>>>>>> point to 
>>>>>>>> >> >>> > different 
>>>>>>>> >> >>> > Consul clusters and then Consul must be able to do service 
>>>>>>>> >> >>> > discovery. 
>>>>>>>> >> >>> > So I 
>>>>>>>> >> >>> > was thinking to change the resolv.conf for the pod to use 
>>>>>>>> Consul for 
>>>>>>>> >> >>> > specific requests. Any idea? 
>>>>>>>> >> >>> > Thank you, 
>>>>>>>> >> >>> > Simone 
>>>>>>>> >> >>> > 
>>>>>>>> >> >>> > -- 
>>>>>>>> >> >>> > You received this message because you are subscribed to 
>>>>>>>> the Google 
>>>>>>>> >> >>> > Groups 
>>>>>>>> >> >>> > "Kubernetes user discussion and Q&A" group. 
>>>>>>>> >> >>> > To unsubscribe from this group and stop receiving emails 
>>>>>>>> from it, 
>>>>>>>> >> >>> > send 
>>>>>>>> >> >>> > an 
>>>>>>>> >> >>> > email to kubernetes-use...@googlegroups.com. 
>>>>>>>> >> >>> > To post to this group, send email to 
>>>>>>>> kubernet...@googlegroups.com. 
>>>>>>>> >> >>> > Visit this group at 
>>>>>>>> >> >>> > https://groups.google.com/group/kubernetes-users. 
>>>>>>>> >> >>> > For more options, visit https://groups.google.com/d/optout. 
>>>>>>>>
>>>>>>>> >> > 
>>>>>>>> >> > -- 
>>>>>>>> >> > You received this message because you are subscribed to the 
>>>>>>>> Google 
>>>>>>>> >> > Groups 
>>>>>>>> >> > "Kubernetes user discussion and Q&A" group. 
>>>>>>>> >> > To unsubscribe from this group and stop receiving emails from 
>>>>>>>> it, send 
>>>>>>>> >> > an 
>>>>>>>> >> > email to kubernetes-use...@googlegroups.com. 
>>>>>>>> >> > To post to this group, send email to 
>>>>>>>> kubernet...@googlegroups.com. 
>>>>>>>> >> > Visit this group at 
>>>>>>>> https://groups.google.com/group/kubernetes-users. 
>>>>>>>> >> > For more options, visit https://groups.google.com/d/optout. 
>>>>>>>> > 
>>>>>>>> > -- 
>>>>>>>> > You received this message because you are subscribed to the 
>>>>>>>> Google Groups 
>>>>>>>> > "Kubernetes user discussion and Q&A" group. 
>>>>>>>> > To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>> send an 
>>>>>>>> > email to kubernetes-use...@googlegroups.com. 
>>>>>>>> > To post to this group, send email to kubernet...@googlegroups.com. 
>>>>>>>>
>>>>>>>> > Visit this group at 
>>>>>>>> https://groups.google.com/group/kubernetes-users. 
>>>>>>>> > For more options, visit https://groups.google.com/d/optout. 
>>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Kubernetes user discussion and Q&A" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to kubernetes-users+unsubscr...@googlegroups.com.
>>>>>>> To post to this group, send email to 
>>>>>>> kubernetes-users@googlegroups.com.
>>>>>>> Visit this group at https://groups.google.com/group/kubernetes-users
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Kubernetes user discussion and Q&A" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to kubernetes-users+unsubscr...@googlegroups.com.
>>>>> To post to this group, send email to kubernetes-users@googlegroups.com
>>>>> .
>>>>> Visit this group at https://groups.google.com/group/kubernetes-users.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Kubernetes user discussion and Q&A" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to kubernetes-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to kubernetes-users@googlegroups.com.
>> Visit this group at https://groups.google.com/group/kubernetes-users.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Kubernetes user discussion and Q&A" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to kubernetes-users+unsubscr...@googlegroups.com.
To post to this group, send email to kubernetes-users@googlegroups.com.
Visit this group at https://groups.google.com/group/kubernetes-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to