/etc/resolv.conf yeKubernetes pods, ndots:5 sarudzo, izvi zvinogona kukanganisa sei kushanda kweapp.

/etc/resolv.conf yeKubernetes pods, ndots:5 sarudzo, izvi zvinogona kukanganisa sei kushanda kweapp.

Isu munguva pfupi yapfuura takatanga Kubernetes 1.9 paAWS tichishandisa Kops. Nezuro, ndichiri kuburitsa traffic nyowani kune yakakura kwazvo yeKubernetes masumbu, ndakatanga kuona zvisina kujairika DNS zita rekugadzirisa zvikanganiso zvakaiswa nechikumbiro chedu.

Pane zvakawanda nezve izvi paGitHub akataura,ndakabva ndafunga kufungawo. Pakupedzisira, ndakaona kuti kwatiri izvi zvinokonzerwa nekuwedzera kwemutoro kube-dns ΠΈ dnsmasq. Chinhu chinonyanya kufadza uye chitsva kwandiri chaive chikonzero chaicho chekuwedzera kwakakosha muDNS yekukumbira traffic. Zvangu zviri pamusoro peizvi uye zvekuita nezvazvo.

DNS resolution mukati memudziyo - senge mune chero Linux system - inotemerwa neiyo faira yekumisikidza /etc/resolv.conf. Default Kubernetes dnsPolicy izvozvo ClusterFirst, zvinoreva kuti chero chikumbiro cheDNS chichaendeswa kune dnsmasq, kumhanya mupodhi kube-dns mukati mechikwata, icho chinozoendesa chikumbiro kune chikumbiro kube-dns, kana zita racho richipera ne cluster suffix, kana, zvimwe, kusvika padanho repamusoro reDNS server.

faira /etc/resolv.conf mukati memudziyo wega wega izvo zvisizvo zvinotaridzika seizvi:

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

Sezvauri kuona, pane mirairo mitatu:

  1. Zita sevha ndiyo IP yebasa racho kube-dns
  2. 4 nzvimbo dzekutsvaga dzemunharaunda dzakatsanangurwa search
  3. Pane imwe sarudzo ndots:5

Chikamu chinonakidza chekugadzirisa uku ndechekuti mawaniro ekutsvaga emunharaunda uye marongero ndots:5 kufambidzana. Kuti unzwisise izvi, unofanirwa kunzwisisa kuti DNS resolution yemazita asina kukodzera inoshanda sei.

Zita rakazara chii?

Zita rinonyatsokodzera izita risina kutariswa kwenzvimbo kuchaitwa uye zita richaonekwa serinoperera panguva yekugadziriswa kwezita. Negungano, DNS software inoona zita serinonyatsokodzera kana richipera nedoti (.), uye risinganyatsokodzeri neimwe nzira. Ndizvozvo google.com. yakatsanangurwa zvizere uye google.com - kwete.

Zita risina kukodzera rinobatwa sei?

Kana application yakabatana kune iri kure host yakatsanangurwa muzita, DNS zita rekugadzirisa rinowanzoitwa uchishandisa system yekufona, semuenzaniso. getaddrinfo(). Asi kana zita racho risingakodzeri (risingapedzi ne.), Ndinoshamisika kana iyo system yekufona ichaedza kugadzirisa zita sezita rakakwana kutanga, kana kuenda nepakati penzvimbo yekutsvaga yekutanga? Zvinoenderana nesarudzo ndots.

Kubva mubhuku rekushandisa resolv.conf:

ndots:n

устанавливаСт ΠΏΠΎΡ€ΠΎΠ³ для количСства Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сдСлан Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ запрос. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для n Ρ€Π°Π²Π½ΠΎ 1, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π² ΠΈΠΌΠ΅Π½ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ, имя Π±ΡƒΠ΄Π΅Ρ‚ сначала ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ имя, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΊ Π½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ элСмСнты списка поиска.

Izvi zvinoreva kuti kana nokuda ndots yakapihwa kukosha kwe5 uye zita rine isingasviki 5 dots, iyo system yekufona ichaedza kuigadzirisa sequentially, kutanga ichipfuura ese enzvimbo yekutsvaga domain, uye, kana ikasabudirira, pakupedzisira kuigadzirisa sezita rakakwana.

Nei zvakadaro ndots:5 inogona kukanganisa kushanda kweapp?

Sezvaunogona kufungidzira, kana chikumbiro chako chikashandisa yakawanda yekunze traffic, kune yega TCP yekubatanidza yakasimbiswa (kana zvakanyanya, kune yega yega zita rakagadziriswa), ichaburitsa 5 DNS mibvunzo zita risati ragadziriswa nemazvo, nekuti rinotanga rapfuura. 4 yemunharaunda yekutsvaga domain, uye kumagumo ichapa yakazara zita rekugadzirisa chikumbiro.

Iyi inotevera chati inoratidza huwandu hwese traffic pane edu 3 kube-dns modules tisati tachinja uye mushure mekuchinja mashoma mazita evatambi akagadzirirwa mukushandisa kwedu kune avo vanokwanisa zvizere.

/etc/resolv.conf yeKubernetes pods, ndots:5 sarudzo, izvi zvinogona kukanganisa sei kushanda kweapp.

Iyo inotevera dhizaini inoratidza application latency tisati tachinja uye mushure mekunge tachinja akati wandei mazita akagadziridzwa mukushandisa kwedu kune azere mazita (yakatwasuka yebhuruu mutsara ndiko kutumira):

/etc/resolv.conf yeKubernetes pods, ndots:5 sarudzo, izvi zvinogona kukanganisa sei kushanda kweapp.

Solution #1 - Shandisa mazita anonyatsokodzera

Kana iwe uine mashoma static mazita ekunze (kureva anotsanangurwa mukugadziriswa kwechishandiso) kwaunogadzira nhamba huru yekubatanidza, pamwe mhinduro iri nyore ndeyekuvashandura kune avo vakanyatsokodzera nekungoabatanidza. pamagumo.

Iyi haisi mhinduro yekupedzisira, asi inobatsira kukurumidza, zvisinei kwete zvakachena, kugadzirisa mamiriro acho ezvinhu. Isu takashandisa chigamba ichi kugadzirisa dambudziko redu, mhedzisiro yacho yakaratidzwa mune skrini iri pamusoro.

Solution #2 - kugadzirisa ndots Π² dnsConfig

MuKubernetes 1.9, kushanda kwakaonekwa mune alpha modhi (beta vhezheni v1.10), iyo inokutendera iwe kudzora zvirinani DNS paramita kuburikidza nepod pfuma mu. dnsConfig. Pakati pezvimwe zvinhu, zvinokubvumira kugadzirisa kukosha ndots nokuda kwepodhi chaiyo, i.e.

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

Sources

Verengawo zvimwe zvinyorwa pane yedu blog:

Source: www.habr.com

Voeg