/etc/resolv.conf don Kubernetes pods, ndots: 5 zaɓi, ta yaya wannan zai iya yin mummunan tasiri ga aikin aikace-aikacen.

/etc/resolv.conf don Kubernetes pods, ndots: 5 zaɓi, ta yaya wannan zai iya yin mummunan tasiri ga aikin aikace-aikacen.

Kwanan nan mun ƙaddamar da Kubernetes 1.9 akan AWS ta amfani da Kops. Jiya, yayin da ake fitar da sabbin hanyoyin zirga-zirga cikin kwanciyar hankali zuwa mafi girman gungu na Kubernetes, na fara lura da kurakuran ƙudurin sunan DNS da ba a saba gani ba da aikace-aikacenmu ya shiga.

Akwai abubuwa da yawa game da wannan akan GitHub yayi magana, don haka ni ma na yanke shawarar gano shi. A ƙarshe, na gane cewa a cikin yanayinmu wannan yana faruwa ne ta hanyar karuwar nauyin da aka yi kube-dns и dnsmasq. Mafi ban sha'awa da sabon abu a gare ni shi ne ainihin dalilin da ya haifar da gagarumin karuwa a cikin buƙatun DNS. Rubutu na game da wannan da abin da zan yi game da shi.

Ƙaddamar da DNS a cikin akwati - kamar yadda a cikin kowane tsarin Linux - fayil ɗin daidaitawa ya ƙaddara /etc/resolv.conf. Default Kubernetes dnsPolicy shi ClusterFirst, wanda ke nufin cewa duk wani buƙatar DNS za a tura zuwa gare shi dnsmasq, Gudu a cikin kwasfa kube-dns a cikin gungu, wanda hakan zai tura buƙatun zuwa aikace-aikacen kube-dns, idan sunan ya ƙare da ƙaramar tari, ko, in ba haka ba, zuwa uwar garken DNS mafi girma.

fayil /etc/resolv.conf a cikin kowane akwati tsoho zai yi kama da haka:

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

Kamar yadda kuke gani, akwai umarni guda uku:

  1. Sunan uwar garken shine IP na sabis kube-dns
  2. An ƙayyade wuraren bincike na gida 4 search
  3. Akwai zaɓi ndots:5

Sashe mai ban sha'awa na wannan tsarin shine yadda wuraren bincike na gida da saitunan ndots:5 yi tare. Don fahimtar wannan, kuna buƙatar fahimtar yadda ƙudurin DNS don sunayen da ba su cancanta ba ke aiki.

Menene cikakken suna?

Cikakken suna suna ne wanda ba za a yi bincike na gida ba kuma za a ɗauki sunan cikakken lokacin ƙudurin suna. Ta hanyar al'ada, software na DNS yana ɗaukar suna don cikakken cancanta idan ya ƙare da digo (.), kuma bai cika cikakkiyar cancanta ba. Wato google.com. cikakken ayyana kuma google.com - A'a.

Yaya ake sarrafa sunan da bai cancanta ba?

Lokacin da aikace-aikacen ya haɗu da mai watsa shiri mai nisa da aka ƙayyade a cikin sunan, ana yin ƙudurin sunan DNS yawanci ta amfani da kiran tsarin, misali. getaddrinfo(). Amma idan sunan bai cancanta ba (bai ƙare da .), Ina mamakin ko tsarin kiran zai yi ƙoƙarin warware sunan a matsayin cikakken suna da farko, ko fara shiga cikin wuraren bincike na gida? Ya dogara da zaɓi ndots.

Daga littafin resolv.conf:

ndots:n

устанавливает порог для количества точек, которые должны появиться в имени, прежде чем будет сделан начальный абсолютный запрос. Значение по умолчанию для n равно 1, что означает, что если в имени есть какие-либо точки, имя будет сначала опробовано как абсолютное имя, прежде чем к нему будут добавлены какие-либо элементы списка поиска.

Wannan yana nufin cewa idan don ndots da aka ba da darajar 5 kuma sunan ya ƙunshi ƙasa da dige 5, tsarin kiran tsarin zai yi ƙoƙarin warware shi a jere, da farko za a bi duk wuraren bincike na gida, kuma, idan bai yi nasara ba, a ƙarshe ya warware shi a matsayin cikakken suna.

Me yasa haka ndots:5 zai iya yin mummunan tasiri ga aikin aikace-aikacen?

Kamar yadda zaku iya tunanin, idan aikace-aikacenku yana amfani da zirga-zirgar zirga-zirgar waje da yawa, ga kowane haɗin TCP da aka kafa (ko mafi daidai, ga kowane sunan da aka warware), zai ba da tambayoyin DNS 5 kafin a warware sunan daidai, saboda zai fara shiga. 4 yankin bincike na gida, kuma a ƙarshe zai ba da cikakkiyar buƙatar ƙudurin suna.

Taswirar da ke biyowa yana nuna jimlar zirga-zirgar ababen hawa na kube-dn 3 kafin da kuma bayan mun canza ƴan sunaye waɗanda aka saita a cikin aikace-aikacenmu zuwa waɗanda suka cancanta.

/etc/resolv.conf don Kubernetes pods, ndots: 5 zaɓi, ta yaya wannan zai iya yin mummunan tasiri ga aikin aikace-aikacen.

Hoton da ke gaba yana nuna jinkirin aikace-aikacen kafin da kuma bayan mun canza sunaye da yawa da aka saita a cikin aikace-aikacen mu zuwa cikakkun sunaye (layin shuɗi na tsaye shine ƙaddamarwa):

/etc/resolv.conf don Kubernetes pods, ndots: 5 zaɓi, ta yaya wannan zai iya yin mummunan tasiri ga aikin aikace-aikacen.

Magani #1 - Yi amfani da cikakkun ƙwararrun sunaye

Idan kuna da ƴan sunaye na waje (watau an ayyana su a cikin tsarin aikace-aikacen) waɗanda kuke ƙirƙira manyan hanyoyin haɗin gwiwa, wataƙila mafita mafi sauƙi ita ce canza su zuwa cikakkun ƙwararrun ta hanyar haɗa su kawai. a karshen.

Wannan ba shine mafita na ƙarshe ba, amma yana taimakawa da sauri, ko da yake ba mai tsabta ba, inganta yanayin. Mun yi amfani da wannan facin don magance matsalarmu, sakamakon wanda aka nuna a cikin hotunan kariyar kwamfuta da ke sama.

Magani #2 - gyare-gyare ndots в dnsConfig

A cikin Kubernetes 1.9, ayyuka sun bayyana a yanayin alpha (beta version v1.10), wanda ke ba ku damar sarrafa sigogin DNS mafi kyau ta hanyar kayan kwafin a ciki. dnsConfig. Daga cikin wasu abubuwa, yana ba ku damar daidaita ƙimar ndots don takamaiman kwafsa, watau.

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

Sources

Hakanan karanta wasu labarai akan shafinmu:

source: www.habr.com

Add a comment