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.

Reply via email to