/etc/resolv.conf ืขื‘ื•ืจ Kubernetes pods, ืืคืฉืจื•ืช ndots:5, ื›ื™ืฆื“ ื–ื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื‘ื™ืฆื•ืขื™ ื”ื™ื™ืฉื•ื

/etc/resolv.conf ืขื‘ื•ืจ Kubernetes pods, ืืคืฉืจื•ืช ndots:5, ื›ื™ืฆื“ ื–ื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื‘ื™ืฆื•ืขื™ ื”ื™ื™ืฉื•ื

ืœืื—ืจื•ื ื” ื”ืฉืงื ื• ืืช Kubernetes 1.9 ื‘-AWS ื‘ืืžืฆืขื•ืช Kops. ืืชืžื•ืœ, ืชื•ืš ืคืจืกื•ื ื—ืœืง ืฉืœ ืชืขื‘ื•ืจื” ื—ื“ืฉื” ืœืืฉื›ื•ืœื•ืช Kubernetes ื”ื’ื“ื•ืœื™ื ื‘ื™ื•ืชืจ ืฉืœื ื•, ื”ืชื—ืœืชื™ ืœื”ื‘ื—ื™ืŸ ื‘ืฉื’ื™ืื•ืช ื—ืจื™ื’ื•ืช ืฉืœ ืคืชืจื•ืŸ ืฉืžื•ืช DNS ืฉื ืจืฉืžื• ืขืœ ื™ื“ื™ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื•.

ื™ืฉ ื“ื™ ื”ืจื‘ื” ืขืœ ื–ื” ื‘-GitHub ื“ื™ื‘ืจ, ืื– ื”ื—ืœื˜ืชื™ ืœื”ื‘ื™ืŸ ื’ื ืืช ื–ื”. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื”ื‘ื ืชื™ ืฉื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื ื’ืจื ืžื”ืขื•ืžืก ื”ืžื•ื’ื‘ืจ ืขืœ kube-dns ะธ dnsmasq. ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื•ื”ื—ื“ืฉ ื‘ื™ื•ืชืจ ืขื‘ื•ืจื™ ื”ื™ื” ืขืฆื ื”ืกื™ื‘ื” ืœืขืœื™ื™ื” ื”ืžืฉืžืขื•ืชื™ืช ื‘ืชืขื‘ื•ืจืช ื‘ืงืฉื•ืช DNS. ื”ืคื•ืกื˜ ืฉืœื™ ืขื•ืกืง ื‘ื–ื” ื•ืžื” ืœืขืฉื•ืช ื‘ื ื™ื“ื•ืŸ.

ืจื–ื•ืœื•ืฆื™ื™ืช DNS ื‘ืชื•ืš ื”ืงื•ื ื˜ื™ื™ื ืจ - ื›ืžื• ื‘ื›ืœ ืžืขืจื›ืช ืœื™ื ื•ืงืก - ื ืงื‘ืขืช ืขืœ ืคื™ ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” /etc/resolv.conf. ื‘ืจื™ืจืช ืžื—ื“ืœ Kubernetes dnsPolicy ื–ื” ClusterFirst, ื›ืœื•ืžืจ ื›ืœ ื‘ืงืฉืช DNS ืชื•ืขื‘ืจ ืืœ dnsmasq, ืจืฅ ื‘ืชืจืžื™ืœ kube-dns ื‘ืชื•ืš ื”ืืฉื›ื•ืœ, ืืฉืจ ื‘ืชื•ืจื• ื™ืขื‘ื™ืจ ืืช ื”ื‘ืงืฉื” ืœื‘ืงืฉื” kube-dns, ืื ื”ืฉื ืžืกืชื™ื™ื ื‘ืกื™ื•ืžืช ืืฉื›ื•ืœ, ืื•, ืื—ืจืช, ืœืฉืจืช DNS ื‘ืจืžื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ.

ืงื•ื‘ืฅ /etc/resolv.conf ื‘ืชื•ืš ื›ืœ ืžื™ื›ืœ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืชื™ืจืื” ื›ืš:

nameserver 100.64.0.10
search namespace.svc.cluster.local svc.cluster.local cluster.local 
eu-west-1.compute.internal
options ndots:5

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื™ืฉื ืŸ ืฉืœื•ืฉ ื”ื ื—ื™ื•ืช:

  1. ืฉืจืช ื”ืฉืžื•ืช ื”ื•ื ื”-IP ืฉืœ ื”ืฉื™ืจื•ืช kube-dns
  2. ืฆื•ื™ื ื• 4 ื“ื•ืžื™ื™ื ื™ื ืœื—ื™ืคื•ืฉ ืžืงื•ืžื™ search
  3. ื™ืฉ ืืคืฉืจื•ืช ndots:5

ื”ื—ืœืง ื”ืžืขื ื™ื™ืŸ ื‘ืชืฆื•ืจื” ื–ื• ื”ื•ื ื›ื™ืฆื“ ืชื—ื•ื ื”ื—ื™ืคื•ืฉ ื”ืžืงื•ืžื™ ื•ื”ื”ื’ื“ืจื•ืช ndots:5 ืœื”ืกืชื“ืจ ื‘ื™ื—ื“. ื›ื“ื™ ืœื”ื‘ื™ืŸ ื–ืืช, ืขืœื™ืš ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืคื•ืขืœืช ืคืชืจื•ืŸ DNS ืขื‘ื•ืจ ืฉืžื•ืช ืœื ืžืชืื™ืžื™ื.

ืžื” ื–ื” ืฉื ืžืœื?

ืฉื ืžืœื ื”ื•ื ืฉื ืฉืœื ื™ื‘ื•ืฆืข ืขื‘ื•ืจื• ื—ื™ืคื•ืฉ ืžืงื•ืžื™ ื•ื”ืฉื ื™ื™ื—ืฉื‘ ืžื•ื—ืœื˜ ื‘ืžื”ืœืš ื”ื—ืœื˜ืช ื”ืฉื. ืœืคื™ ื”ืžื•ืกื›ืžื”, ืชื•ื›ื ืช DNS ืžื—ืฉื™ื‘ื” ืฉื ื›ืฉื™ืจ ืžืœื ืื ื”ื•ื ืžืกืชื™ื™ื ื‘ื ืงื•ื“ื” (.), ื•ืœื ื›ืฉื™ืจ ื‘ืื•ืคืŸ ืžืœื ืื—ืจืช. ื–ื” google.com. ืžื•ื’ื“ืจ ื‘ืžืœื•ืื• ื• google.com - ืœื.

ืื™ืš ืžื˜ืคืœื™ื ื‘ืฉื ืœื ืžืชืื™ื?

ื›ืืฉืจ ื™ื™ืฉื•ื ืžืชื—ื‘ืจ ืœืžืืจื— ื”ืžืจื•ื—ืง ืฉืฆื•ื™ืŸ ื‘ืฉื, ืคืชืจื•ืŸ ืฉื DNS ื ืขืฉื” ื‘ื“ืจืš ื›ืœืœ ื‘ืืžืฆืขื•ืช ืงืจื™ืืช ืžืขืจื›ืช, ืœืžืฉืœ. getaddrinfo(). ืื‘ืœ ืื ื”ืฉื ืœื ืžื•ืกืžืš (ืœื ืžืกืชื™ื™ื ื‘.), ืžืขื ื™ื™ืŸ ืื ืงืจื™ืืช ื”ืžืขืจื›ืช ืชื ืกื” ืœืคืชื•ืจ ืืช ื”ืฉื ื›ืฉื ืžื•ื—ืœื˜ ืงื•ื“ื, ืื• ืœืขื‘ื•ืจ ืงื•ื“ื ืขืœ ืชื—ื•ืžื™ ื”ื—ื™ืคื•ืฉ ื”ืžืงื•ืžื™? ื–ื” ืชืœื•ื™ ื‘ืื•ืคืฆื™ื” ndots.

ืžืชื•ืš ื”ืžื“ืจื™ืš resolv.conf:

ndots:n

ัƒัั‚ะฐะฝะฐะฒะปะธะฒะฐะตั‚ ะฟะพั€ะพะณ ะดะปั ะบะพะปะธั‡ะตัั‚ะฒะฐ ั‚ะพั‡ะตะบ, ะบะพั‚ะพั€ั‹ะต ะดะพะปะถะฝั‹ ะฟะพัะฒะธั‚ัŒัั ะฒ ะธะผะตะฝะธ, ะฟั€ะตะถะดะต ั‡ะตะผ ะฑัƒะดะตั‚ ัะดะตะปะฐะฝ ะฝะฐั‡ะฐะปัŒะฝั‹ะน ะฐะฑัะพะปัŽั‚ะฝั‹ะน ะทะฐะฟั€ะพั. ะ—ะฝะฐั‡ะตะฝะธะต ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะดะปั n ั€ะฐะฒะฝะพ 1, ั‡ั‚ะพ ะพะทะฝะฐั‡ะฐะตั‚, ั‡ั‚ะพ ะตัะปะธ ะฒ ะธะผะตะฝะธ ะตัั‚ัŒ ะบะฐะบะธะต-ะปะธะฑะพ ั‚ะพั‡ะบะธ, ะธะผั ะฑัƒะดะตั‚ ัะฝะฐั‡ะฐะปะฐ ะพะฟั€ะพะฑะพะฒะฐะฝะพ ะบะฐะบ ะฐะฑัะพะปัŽั‚ะฝะพะต ะธะผั, ะฟั€ะตะถะดะต ั‡ะตะผ ะบ ะฝะตะผัƒ ะฑัƒะดัƒั‚ ะดะพะฑะฐะฒะปะตะฝั‹ ะบะฐะบะธะต-ะปะธะฑะพ ัะปะตะผะตะฝั‚ั‹ ัะฟะธัะบะฐ ะฟะพะธัะบะฐ.

ื–ื” ืื•ืžืจ ืฉืื ื‘ืฉื‘ื™ืœ ndots ื‘ื”ื™ื ืชืŸ ืขืจืš ืฉืœ 5 ื•ื”ืฉื ืžื›ื™ืœ ืคื—ื•ืช ืž-5 ื ืงื•ื“ื•ืช, ืงืจื™ืืช ื”ืžืขืจื›ืช ืชื ืกื” ืœืคืชื•ืจ ื–ืืช ื‘ืจืฆืฃ, ืชื—ื™ืœื” ื—ื•ืฆื” ืืช ื›ืœ ืชื—ื•ืžื™ ื”ื—ื™ืคื•ืฉ ื”ืžืงื•ืžื™ื™ื, ื•ืื ืœื ืžืฆืœื™ื—ื”, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืชืคืชื•ืจ ืื•ืชื• ื›ืฉื ืžื•ื—ืœื˜.

ืœืžื” ื›ืŸ ndots:5 ื”ืื ื–ื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื‘ื™ืฆื•ืขื™ ื”ืืคืœื™ืงืฆื™ื”?

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœื“ืžื™ื™ืŸ, ืื ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืžืฉืชืžืฉืช ื‘ืชืขื‘ื•ืจื” ื—ื™ืฆื•ื ื™ืช ืจื‘ื”, ืขื‘ื•ืจ ื›ืœ ื—ื™ื‘ื•ืจ TCP ืฉื ื•ืฆืจ (ืื• ืœื™ืชืจ ื“ื™ื•ืง, ืขื‘ื•ืจ ื›ืœ ืฉื ืฉื ืคืชืจ), ื”ื•ื ื™ื•ืฆื™ื 5 ืฉืื™ืœืชื•ืช DNS ืœืคื ื™ ืฉื”ืฉื ื™ื™ืคืชืจ ื‘ืฆื•ืจื” ื ื›ื•ื ื”, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื™ืขื‘ื•ืจ ืชื—ื™ืœื” 4 ื“ื•ืžื™ื™ืŸ ื—ื™ืคื•ืฉ ืžืงื•ืžื™, ื•ื‘ืกื•ืฃ ื™ื•ืฆื™ื ื‘ืงืฉื” ืœืคืชืจื•ืŸ ืฉื ืžื•ื—ืœื˜.

ื”ืชืจืฉื™ื ื”ื‘ื ืžืฆื™ื’ ืืช ื”ืชืขื‘ื•ืจื” ื”ื›ื•ืœืœืช ื‘-3 ืžื•ื“ื•ืœื™ kube-dns ืฉืœื ื• ืœืคื ื™ ื•ืื—ืจื™ ืฉื”ื—ืœืคื ื• ืืช ืฉืžื•ืช ื”ืžืืจื—ื™ื ื”ืžืขื˜ื™ื ืฉื”ื•ื’ื“ืจื• ื‘ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืœืฉืžื•ืช ืžืชืื™ืžื™ื ืœื—ืœื•ื˜ื™ืŸ.

/etc/resolv.conf ืขื‘ื•ืจ Kubernetes pods, ืืคืฉืจื•ืช ndots:5, ื›ื™ืฆื“ ื–ื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื‘ื™ืฆื•ืขื™ ื”ื™ื™ืฉื•ื

ื”ืชืจืฉื™ื ื”ื‘ื ืžืฆื™ื’ ืืช ื–ืžืŸ ื”ืื—ื–ื•ืจ ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืœืคื ื™ ื•ืื—ืจื™ ืฉื”ื—ืœืคื ื• ืžืกืคืจ ืฉืžื•ืช ืžืืจื—ื™ื ืฉื”ื•ื’ื“ืจื• ื‘ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืœืฉืžื•ืช ืžืœืื™ื (ื”ืงื• ื”ื›ื—ื•ืœ ื”ืื ื›ื™ ื”ื•ื ื”ืคืจื™ืกื”):

/etc/resolv.conf ืขื‘ื•ืจ Kubernetes pods, ืืคืฉืจื•ืช ndots:5, ื›ื™ืฆื“ ื–ื” ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืœืจืขื” ืขืœ ื‘ื™ืฆื•ืขื™ ื”ื™ื™ืฉื•ื

ืคืชืจื•ืŸ ืžืก' 1 - ื”ืฉืชืžืฉ ื‘ืฉืžื•ืช ืžืชืื™ืžื™ื ืœื—ืœื•ื˜ื™ืŸ

ืื ื™ืฉ ืœืš ืžืขื˜ ืฉืžื•ืช ื—ื™ืฆื•ื ื™ื™ื ืกื˜ื˜ื™ื™ื (ื›ืœื•ืžืจ ืžื•ื’ื“ืจื™ื ื‘ืชืฆื•ืจืช ื”ืืคืœื™ืงืฆื™ื”) ืืœื™ื”ื ืืชื” ื™ื•ืฆืจ ืžืกืคืจ ืจื‘ ืฉืœ ื—ื™ื‘ื•ืจื™ื, ืื•ืœื™ ื”ืคืชืจื•ืŸ ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ ื”ื•ื ืœื”ืขื‘ื™ืจ ืื•ืชื ืœืฉืžื•ืช ืžืชืื™ืžื™ื ืœื—ืœื•ื˜ื™ืŸ ืขืœ ื™ื“ื™ ืฆื™ืจื•ืคื. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ.

ื–ื” ืœื ืคืชืจื•ืŸ ืกื•ืคื™, ืื‘ืœ ื”ื•ื ืขื•ื–ืจ ืœืฉืคืจ ืืช ื”ืžืฆื‘ ื‘ืžื”ื™ืจื•ืช, ืื ื›ื™ ืœื ื‘ืฆื•ืจื” ื ืงื™ื™ื”. ื”ืคืขืœื ื• ืืช ื”ืชื™ืงื•ืŸ ื”ื–ื” ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ืฉืœื ื•, ืฉืชื•ืฆืื•ืชื™ื• ื”ื•ืฆื’ื• ื‘ืฆื™ืœื•ืžื™ ื”ืžืกืš ืœืžืขืœื”.

ืคืชืจื•ืŸ ืžืก' 2 - ื”ืชืืžื” ืื™ืฉื™ืช ndots ะฒ dnsConfig

ื‘-Kubernetes 1.9 ื”ื•ืคื™ืขื” ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืžืฆื‘ ืืœืคื (ื’ืจืกืช ื‘ื˜ื v1.10), ื”ืžืืคืฉืจืช ืœืš ืœืฉืœื•ื˜ ื˜ื•ื‘ ื™ื•ืชืจ ื‘ืคืจืžื˜ืจื™ DNS ื“ืจืš ืžืืคื™ื™ืŸ ื”ืคื•ื“ ื‘- dnsConfig. ื‘ื™ืŸ ื”ื™ืชืจ ื”ื•ื ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืืช ื”ืขืจืš ndots ืขื‘ื•ืจ ืชืจืžื™ืœ ืกืคืฆื™ืคื™, ื›ืœื•ืžืจ.

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: nginx
  dnsConfig:
    options:
      - name: ndots
        value: "1"

ืžืงื•ืจื•ืช

ืงืจื ื’ื ืžืืžืจื™ื ืื—ืจื™ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”