Puncte:1

Problemă cu rezoluția DNS activată și clusterul Microk8s

drapel gb

Clusterul meu microk8s rulează pe un centos8 vm și am câteva probleme cu rezoluția DNS a podurilor mele. Serverul de nume sunt la x.x.x.101 și x.x.x.100 ambele pot face ping din interiorul podurilor și pot, de asemenea, să pun ping 8.8.8.8

nslookup din interiorul unui pod arată astfel:

root@debug-7857894f66-mnklp:/# nslookup kubernetes.default
Server: 10.152.183.10
Adresa: 10.152.183.10#53

Nume: kubernetes.default.svc.cluster.local
Adresa: 10.152.183.1

coredns config arată astfel:

apiVersion: v1
date:
  Fișier principal: „.:53 {\n erori\n sănătate {\n lameduck 5s\n }\n gata\n
    \   Buturuga . {\n eroare de clasă\n }\n kubernetes cluster.local in-addr.arpa
    ip6.arpa {\n poduri nesigure\n cad în-addr.arpa ip6.arpa\n }\n
    \ prometheus :9153\n înainte . x.x.x.101 x.x.x.100 \n cache 30\n
    \ buclă\n reîncărcați\n balanța de încărcare\n}\n"
fel: ConfigMap
metadate:
  adnotari:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"Corefile":".:53 {\n erori\n sănătate {\n lameduck 5s\n }\n gata\n jurnal . {\n eroare de clasă\ n }\n kubernetes cluster.local in-addr.arpa ip6.arpa {\n pods nesigur\n fallthrough in-addr.arpa ip6.arpa\n }\n prometheus :9153\n înainte . x.x.x.101 x.x.x.100 \n cache 30\n buclă\n reîncărcare\n echilibru de încărcare\n}\n"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"addonmanager.kubernetes.io /mode":"EnsureExists","k8s-app":"kube-dns"},"name":"coredns","namespace":"kube-system"}}
  CreationTimestamp: "2021-08-31T08:57:27Z"
  etichete:
    addonmanager.kubernetes.io/mode: EnsureExists
    k8s-app: kube-dns
  nume: coredns
  spațiu de nume: kube-system
  resourceVersion: „2420090”
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: 471b258a-253d-4b51-aaf7-7e934ab300d1

cel /etc/resolv.conf în podurile mele arată așa:

caută default.svc.cluster.local svc.cluster.local cluster.local xxx.xxxxx
serverul de nume 10.152.183.10
opțiuni ndots:5

când mă uit la jurnalele kube-dn-urilor mele cu $ microk8s kubectl jurnal --namespace=kube-system -l k8s-app=kube-dns Primesc urmatorul raspuns:

[INFO] 10.1.107.105:47549 - 5288 "AAAA IN www.google.com. udp 36 false 512" NOERROR - 0 0,000256103s
[EROARE] plugin/erori: 2 www.google.com. AAAA: citiți udp 10.1.107.127:51486->x.x.x.101:53: citiți: nicio rută către găzduire

Serviciul DNS este activ:

$ microk8s kubectl get svc --namespace=kube-system
NUME TIP CLUSTER-IP EXTERN-IP PORT(E) Vârsta
[...]
kube-dns ClusterIP 10.152.183.10 <niciunul> 53/UDP,53/TCP,9153/TCP 21d

Punctele finale DNS sunt expuse:

$ microk8s kubectl obține puncte finale kube-dns --namespace=kube-system
NUME ENDPOINTS VARSTA
kube-dns 10.1.107.127:53,10.1.107.127:53,10.1.107.127:9153 21d

Mașina virtuală pe care rulează clusterul utilizează același server de nume fără probleme. Este ceva pentru care trebuie să-i deranjez pe administratorii noștri sau îmi lipsește ceva care este configurat greșit?

EDITAȚI | ×:

Bine, am încercat un pic mai mult și există un comportament ciudat care cred că are legătură cu faptul că am creat incorect coredns fișier de configurare. Am resetat complet clusterul și am încercat din nou, tot aceeași eroare când folosesc 8.8.8.8 sau 8.8.4.4 ca servere DNS. Dar, când rulez următoarea comandă: $ microk8s activează dns:x.x.x.101,x.x.x.100 in sfarsit functioneaza. Apoi am încercat să configurez pentru asta cu $ microk8s kubectl -n kube-system edit configmap/coredns și adaug ambele DNS la configurație, nu mai funcționează și primesc din nou eroarea: [EROARE] plugin/erori: 2 www.google.com. AAAA: citiți udp 10.1.107.127:51486->x.x.x.101:53: citiți: nicio rută către găzduire deci ce este în neregulă cu configurația mea care este setată automat corect $ microk8s activează dns:x.x.x.101,x.x.x.100 ?

Editare a 2-a

Am încercat să folosesc dig aici chiar și atunci când specific un server DNS nu funcționează. Există vreun motiv pentru care ar putea trece ping-ul, dar DNS-ul este blocat de sistem? Se întâmplă doar pe cluster microk8s, sistemul gazdă rulează fin docker funcționează bine... iată imprimările: acesta este din interiorul podului:

root@debug-865cb7fb4-wfhw4:/# dig www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> www.google.com
;; opțiuni globale: +cmd
;; conexiunea a expirat; niciun server nu a putut fi atins
root@debug-865cb7fb4-wfhw4:/# dig @x.x.x.101 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @x.x.x.101 www.google.com
; (1 server găsit)
;; opțiuni globale: +cmd
;; conexiunea a expirat; niciun server nu a putut fi atins
root@debug-865cb7fb4-wfhw4:/# dig @8.8.8.8 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @8.8.8.8 www.google.com
; (1 server găsit)
;; opțiuni globale: +cmd
;; conexiunea a expirat; niciun server nu a putut fi atins
root@debug-865cb7fb4-wfhw4:/# dig @x.x.x.100 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @x.x.x.100 www.google.com
; (1 server găsit)
;; opțiuni globale: +cmd
;; conexiunea a expirat; niciun server nu a putut fi atins

și acesta este de la sistemul gazdă:

$ dig www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> www.google.com
;; opțiuni globale: +cmd
;; Am răspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 25735
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 1, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 4000
;; SECȚIUNEA DE ÎNTREBĂRI:
;www.google.com. ÎN A

;; SECȚIUNEA RĂSPUNSURI:
www.google.com. 113 IN A 142.250.185.228

;; Timp de interogare: 0 ms
;; SERVER: x.x.x.101#53(x.x.x.101)
;; CÂND: vineri, 8 octombrie, 15:10:21 CEST 2021
;; MSG SIZE rcvd: 59



$ dig @8.8.8.8 www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @8.8.8.8 www.google.com
; (1 server găsit)
;; opțiuni globale: +cmd
;; Am răspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 3924
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 1, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 512
;; SECȚIUNEA DE ÎNTREBĂRI:
;www.google.com. ÎN A

;; SECȚIUNEA RĂSPUNSURI:
www.google.com. 300 IN A 142.250.185.228

;; Timp de interogare: 34 ms
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; CÂND: vineri, 8 octombrie, 15:10:49 CEST 2021
;; MSG SIZE rcvd: 59

$ dig @x.x.x.101 www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @x.x.x.101 www.google.com
; (1 server găsit)
;; opțiuni globale: +cmd
;; Am răspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 60305
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 1, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 4000
;; SECȚIUNEA DE ÎNTREBĂRI:
;www.google.com. ÎN A

;; SECȚIUNEA RĂSPUNSURI:
www.google.com. 70 IN A 142.250.185.228

;; Timp de interogare: 0 ms
;; SERVER: x.x.x.101#53(x.x.x.101)
;; CÂND: vineri, 8 octombrie, 15:11:04 CEST 2021
;; MSG SIZE rcvd: 59

habar nu am ce pare sa se intample....

Mikołaj Głodziak avatar
drapel id
Ce versiune de Kubernetes ați folosit?
Thagor avatar
drapel gb
Folosesc Kubernetes v1.22
Mikołaj Głodziak avatar
drapel id
Vă rugăm să furnizați fișierul pod yaml.
Thagor avatar
drapel gb
Reconstruiesc clusterul într-o infrastructură care este pe deplin sub controlul meu, acolo funcționează DNS.
Thagor avatar
drapel gb
Se pare că este o problemă conectată la iptables și firewall-ul de pe gazdă, dacă le dezactivez pe ambele problema dispare, voi posta și voi răspunde imediat ce știu să configurez corect aceste instrumente.
Puncte:0
drapel id

Am postat un răspuns wiki comunității pentru o mai bună vizibilitate. La fel de Thagor a menționat în comentariu, problema este rezolvată și a fost legată de DNS extern:

Reconstruiesc clusterul într-o infrastructură care se află pe deplin sub controlul meu, unde funcționează DNS.

Încercați să dezactivați iptables și firewall-ul de pe gazdă și vedeți dacă puteți face prin coredns config.

Mai multe informații despre DNS puteți găsi în oficial documentație.

Wytrzymały Wiktor avatar
drapel it
Salut @Thagor. Acesta [răspunde la întrebarea dvs.](https://stackoverflow.com/help/someone-answers)?
Thagor avatar
drapel gb
Hei, am actualizat prima mea postare se dovedește că DNS funcționează dacă îl setez cu `$ microk8s enable dns:x.x.x.100,x.x.x.101`, dar de îndată ce încerc să o fac prin configurația coredns, nu reușește și nu am idee de ce.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.