Rapunga DNS i Kubernetes

Tuhipoka. whakamaori.: Raruraru DNS i roto i nga Kubernetes, he nui ake ranei, nga tautuhinga tawhā ndots, he tino rongonui, a kua Ehara i te tuatahi год. I tetahi atu korero mo tenei kaupapa, ko tana kaituhi, he miihini DevOps mai i tetahi kamupene hokohoko nui i Inia, e korero ana i roto i te tino ngawari me te poto mo nga mea e whai hua ana mo nga hoa mahi e whakahaere ana i nga Kubernetes kia mohio.

Rapunga DNS i Kubernetes

Ko tetahi o nga painga nui o te tuku tono ki runga i nga Kubernetes ko te rapunga tono ngawari. Ko te taunekeneke i roto i te roopu ka tino ngawari ake na te whakaaro ratonga (ratonga), he IP mariko e tautoko ana i te huinga o nga wahitau IP pod. Hei tauira, ki te te ratonga vanilla e hiahia ana ki te whakapā atu ki te ratonga chocolate, ka taea te uru tika ki te IP mariko mo chocolate. Ka puta ake te patai: ko wai i tenei keehi ka whakatau i te tono DNS ki chocolate Me pehea?

Kua whirihorahia te taumira ingoa DNS i runga i te roopu Kubernetes ma te whakamahi CoreDNS. Ka rehitatia e Kubelet tetahi pona me CoreDNS hei ingoa ingoa i roto i nga konae /etc/resolv.conf nga peera katoa. Mena ka titiro koe ki te ihirangi /etc/resolv.conf ahakoa peera, ka penei te ahua:

search hello.svc.cluster.local svc.cluster.local cluster.local
nameserver 10.152.183.10
options ndots:5

Ka whakamahia tenei whirihoranga e nga kaihoko DNS ki te tuku tono ki te tūmau DNS. I roto i te kōnae resolv.conf kei roto nga korero e whai ake nei:

  • ingoa tūmau: tūmau ka tukuna atu nga tono DNS. I to maatau, koinei te wahitau o te ratonga CoreDNS;
  • rapu: Ka tautuhi i te ara rapu mo tetahi rohe motuhake. He mea whakamere tena google.com ranei mrkaran.dev ehara i te FQDN (ingoa rohe tino tohu). E ai ki te tikanga paerewa e whai ana te nuinga o nga kaiwhakatau DNS, ko era anake ka mutu ki te ira ".", e tohu ana i te rohe pakiaka, ka kiia he rohe tino tohu (FDQN). Ka taea e etahi o nga kaiwhakatakoto whakaaro te taapiri i tetahi tohu. No reira, mrkaran.dev. ko te ingoa rohe tino tohu (FQDN), me mrkaran.dev - Kao;
  • ira: Ko te tawhā tino pai (ko tenei tuhinga e pa ana ki a ia). ndots whakapūtā te maha paepae o ira i roto i te ingoa tono i mua i te whakaaro he "tino tohu" ingoa rohe. Ka korero ano tatou mo tenei i muri mai ka wetewetehia te raupapa rapu DNS.

Rapunga DNS i Kubernetes

E hi‘o ana‘e eaha te tupu ia ui tatou mrkaran.dev i roto i te pona:

$ nslookup mrkaran.dev
Server: 10.152.183.10
Address: 10.152.183.10#53

Non-authoritative answer:
Name: mrkaran.dev
Address: 157.230.35.153
Name: mrkaran.dev
Address: 2400:6180:0:d1::519:6001

Mo tenei whakamatautau, ka whakatauhia e ahau te taumata takiuru CoreDNS ki all (he mea tino korero). Kia titiro tatou ki nga rakau o te poti coredns:

[INFO] 10.1.28.1:35998 - 11131 "A IN mrkaran.dev.hello.svc.cluster.local. udp 53 false 512" NXDOMAIN qr,aa,rd 146 0.000263728s
[INFO] 10.1.28.1:34040 - 36853 "A IN mrkaran.dev.svc.cluster.local. udp 47 false 512" NXDOMAIN qr,aa,rd 140 0.000214201s
[INFO] 10.1.28.1:33468 - 29482 "A IN mrkaran.dev.cluster.local. udp 43 false 512" NXDOMAIN qr,aa,rd 136 0.000156107s
[INFO] 10.1.28.1:58471 - 45814 "A IN mrkaran.dev. udp 29 false 512" NOERROR qr,rd,ra 56 0.110263459s
[INFO] 10.1.28.1:54800 - 2463 "AAAA IN mrkaran.dev. udp 29 false 512" NOERROR qr,rd,ra 68 0.145091744s

Phew. E rua nga mea ka aro koe ki konei:

  • Ka haere te tono ki nga wahanga katoa o te rapunga tae noa ki te whakautu kei roto te waehere NOERROR (Kei te maarama nga kaihoko DNS me te penapena hei hua). NXDOMAIN te tikanga kaore i kitea he rekoata mo te ingoa rohe kua homai. No te mea ko te mrkaran.dev ehara i te ingoa FQDN (e ai ki ndots=5), ka titiro te kaiwhakatau ki te huarahi rapu me te whakatau i te raupapa o nga tono;
  • recordings А и АААА ka tae whakarara. Ko te meka ko e kotahi-wa tono i roto i /etc/resolv.conf Ma te taunoa, ka whirihorahia kia rite ki te mahi rapu whakarara ma te whakamahi i nga tikanga IPv4 me IPv6. Ka taea e koe te whakakore i tenei whanonga ma te taapiri i te whiringa single-request в resolv.conf.

Tuhipoka: glibc ka taea te whirihora ki te tuku i enei tono a-raupapa, a musl - kao, no reira me mahara nga kaiwhakamahi Alpine.

Te whakamatautau me nga ira

Kia tamata tatou he iti ake ndots a kia kite tatou ka pehea te ahua o tenei tawhā. He ngawari te whakaaro: ndots ka whakatau mena ka whakatauhia e te kaihoko DNS te rohe hei tino tuturu, he whanaunga ranei. Hei tauira, i roto i te keehi o te kaihoko DNS google ngawari, me pehea e mohio ai mena he tino tuturu tenei rohe? Ki te whakaturia e koe ndots rite ki te 1, ka kii te kaihoko: "Aue, kei roto google kahore he tohu kotahi; Te mana'o nei au e haere au i roto i te taatoaraa o te tapura imiraa.” Heoi, ki te patai koe google.com, ka waiho katoatia te rarangi o nga pimuri na te mea kua tutuki te ingoa i tonoa ki te paepae ndots (he iti rawa te waahi kotahi).

Kia mohio tatou ki tenei:

$ cat /etc/resolv.conf
options ndots:1
$ nslookup mrkaran
Server: 10.152.183.10
Address: 10.152.183.10#53

** server can't find mrkaran: NXDOMAIN

Rangitaki CoreDNS:

[INFO] 10.1.28.1:52495 - 2606 "A IN mrkaran.hello.svc.cluster.local. udp 49 false 512" NXDOMAIN qr,aa,rd 142 0.000524939s
[INFO] 10.1.28.1:59287 - 57522 "A IN mrkaran.svc.cluster.local. udp 43 false 512" NXDOMAIN qr,aa,rd 136 0.000368277s
[INFO] 10.1.28.1:53086 - 4863 "A IN mrkaran.cluster.local. udp 39 false 512" NXDOMAIN qr,aa,rd 132 0.000355344s
[INFO] 10.1.28.1:56863 - 41678 "A IN mrkaran. udp 25 false 512" NXDOMAIN qr,rd,ra 100 0.034629206s

Mai i roto i mrkaran karekau he waahi kotahi, i mahia te rapunga puta noa i te rarangi katoa o nga pimuri.

Tuhipoka: i roto i te mahi ko te uara teitei ndots iti ki te 15; ma te taunoa i Kubernetes he 5.

Te tono i roto i te hanga

Mena he maha nga waea whatunga o waho o te tono, ka taea e DNS te noho hei pounamu mo te kaha o te hokohoko, na te mea he maha nga uiuinga koretake (i mua i te taenga o te punaha ki te tika). Ko te nuinga o nga tono karekau e taapiri i te rohe pakiaka ki nga ingoa rohe, engari he ahua hack tenei. Ara, kaua e patai api.twitter.com, ka taea e koe te hardcode api.twitter.com. (me te ira) i roto i te tono, ka akiaki i nga kaihoko DNS ki te mahi tirotiro tika ki te rohe tino.

I tua atu, timata ki te putanga Kubernetes 1.14, toronga dnsConfig и dnsPolicy riro te mana pūmau. Na, i te wa e tuku ana i te pona, ka taea e koe te whakaiti i te uara ndots, mea, ki runga ki te 3 (a tae noa ki te 1!). Na tenei, ko nga karere katoa i roto i te node me whakauru te rohe katoa. Koinei tetahi o nga tauhokohoko matarohia ina whiriwhiri koe i waenga i te mahi me te kawe. Ki taku whakaaro me maaharahara noa koe mo tenei mena he mea nui te torohūtanga ultra-iti ki to tono, na te mea kei te keteroki ano nga hua DNS i roto.

tohutoro

I ako tuatahi ahau mo tenei ahuatanga i runga K8s-huihuinga, i tū i te Hanuere 25. He korero mo tenei raruraru, me era atu mea.

Anei etahi hononga mo te torotoro atu ano:

  • Whakamarama, he aha i ndots=5 i Kubernetes;
  • Mea rawe he pehea te whakarereketanga o nga ira e pa ana ki te mahinga tono;
  • Nga rereke i waenganui i te musl me te glibc solvers.

Tuhipoka: I whiriwhiri ahau kia kaua e whakamahi dig i roto i tenei tuhinga. dig ka taapiri aunoa i te ira (whakaahua rohe pakiaka), ka "tino tohu" te rohe (FQDN), e kore ma te whakahaere tuatahi i roto i te rarangi rapu. I tuhi mo tenei i roto i tetahi o nga pukapuka o mua. Heoi, he mea tino miharo, i te nuinga o te waa, me tohu he haki motuhake mo te whanonga paerewa.

Tena koa DNSing! Ka kite koe i muri mai!

PS mai i te kaiwhakamaori

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero