Puncte:3

Kubernetes nu primește solicitări

drapel cn

Am configurat un cluster kubernetes, un singur nod, debian 11. Cu toate acestea, CoreDNS-ul meu nu pare să rezolve nimic. Observ că portainer nu poate încărca resurse.

http: eroare proxy: apelați tcp: căutați kubernetes.default.svc pe 10.96.0.10:53: citiți udp 10.244.0.4:57589->10.96.0.10:53: expirare i/o

Văzând că acesta este un timeout pentru DNS-ul meu, am verificat serviciul:

root@dmvandenberg:~/kubernetes# kubectl get svc -n kube-system -o wide
NUME TIP CLUSTER-IP EXTERN-IP PORT(E) SELECTOR DE VÂRSTE
kube-dns ClusterIP 10.96.0.10 <niciunul> 53/UDP,53/TCP,9153/TCP 78m k8s-app=kube-dns
root@dmvandenberg:~/kubernetes# kubectl get pods --selector=k8s-app=kube-dns -o wide -n kube-system
NUME PREGĂTIT STAREA RESTARTE Vârsta IP NODE NOMINAT NODUL GATES DE PREGĂTIRE
coredns-78fcd69978-2b6cq 1/1 Alergare 0 79m 10.244.0.2 dmvandenberg.nl <niciuna> <niciuna>
coredns-78fcd69978-swprh 1/1 Alergare 0 79m 10.244.0.3 dmvandenberg.nl <niciunul> <niciunul>

Mi-am configurat clusterul cu aceste fișiere:

cat init.sh init2.sh
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl create -f localstorage.yml --save-config
kubectl create -f pvportainer.yml --save-config
kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml

Am incercat si eu cu kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml în loc de kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml.

root@dmvandenberg:~/kubernetes# cat localstorage.yml
apiVersion: storage.k8s.io/v1
fel: StorageClass
metadate:
  nume: local-storage
furnizor: kubernetes.io/no-provisioner
volumBindingMode: WaitForFirstConsumer
root@dmvandenberg:~/kubernetes# cat pvportainer.yml
apiVersion: v1
fel: PersistentVolume
metadate:
  nume: portainer
specificație:
  capacitate:
    stocare: 11Gi
  Moduri de acces:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Păstrați
  storageClassName: stocare locală
  local:
    calea: /dockerdirs/pvportainer
  nodeAffinity:
    necesar:
      nodeSelectorTerms:
      - matchExpressions:
        - cheie: kubernetes.io/hostname
          operator: In
          valori:
          - dmvandenberg.nl

Am restrâns problema la rezoluția DNS folosind următoarea comandă și rezultat:

root@dmvandenberg:~/kubernetes# kubectl logs --namespace=kube-system -l k8s-app=kube-dns -f & tcpdump -ani cni0 udp port 53
[5] 9505
tcpdump: ieșire verbosă suprimată, utilizați -v[v]... pentru decodarea completă a protocolului
ascultare pe cni0, tip link EN10MB (Ethernet), lungime instantanee 262144 octeți
.:53
[INFO] plugin/reîncărcare: rulează configurația MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.4
linux/amd64, go1.16.4, 053c4d5
.:53
[INFO] plugin/reîncărcare: rulează configurația MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.4
linux/amd64, go1.16.4, 053c4d5
21:21:07.629395 IP 10.244.0.4.44224 > 10.244.0.2.53: 3488+ AAAA? kubernetes.default.svc.portainer.svc.cluster.local. (68)
21:21:07.629667 IP 10.244.0.4.43161 > 10.244.0.2.53: 433+ A? kubernetes.default.svc.portainer.svc.cluster.local. (68)
21:21:12.630395 IP 10.244.0.4.54508 > 10.244.0.3.53: 61466+ AAAA? kubernetes.default.svc.portainer.svc.cluster.local. (68)
21:21:12.630453 IP 10.244.0.4.46088 > 10.244.0.2.53: 55999+ A? kubernetes.default.svc.portainer.svc.cluster.local. (68)
^C
4 pachete capturate
4 pachete primite prin filtru
0 pachete aruncate de kernel

M-aș aștepta să văd răspunsuri la interogările DNS, dar nu văd niciunul. Pe internet am găsit ceva despre adăugarea „jurnalului” la fișierul de bază al coredns, așa că am încercat asta, dar nu văd că apar linii de logare. Acest lucru mă convinge că mesajele UDP, așa cum arată tcpdump, nu sunt citite/primite de coredns.

Am parcurs toți pașii https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/, dar asta nu m-a dus mai departe.

Totuși, mă blochez după asta. Cum pot continua depanarea? Ce ar putea fi în neregulă?

Editați | ×: Am încercat să urmez acest ghid: https://www.oueta.com/linux/create-a-debian-11-kubernetes-cluster-with-kubeadm/ Văd exact același rezultat, pe o interfață diferită:

16:56:06.482769 cali6bd455d068f În IP 172.20.122.129.60650 > 10.96.0.10.53: 31215+ AAAA? kubernetes.default.svc.portainer.svc.cluster.local. (68)
16:56:06.482980 cali6bd455d068f În IP 172.20.122.129.35119 > 10.96.0.10.53: 8608+ A? kubernetes.default.svc.portainer.svc.cluster.local. (68)
16:56:11.483200 cali6bd455d068f În IP 172.20.122.129.57079 > 10.96.0.10.53: 61639+ AAAA? kubernetes.default.svc.portainer.svc.cluster.local. (68)
16:56:11.483309 cali6bd455d068f În IP 172.20.122.129.38249 > 10.96.0.10.53: 14976+ A? kubernetes.default.svc.portainer.svc.cluster.local. (68)
16:56:16.484367 cali6bd455d068f În IP 172.20.122.129.57768 > 10.96.0.10.53: 55396+ AAAA? kubernetes.default.svc.svc.cluster.local. (58)
16:56:16.484488 cali6bd455d068f În IP 172.20.122.129.53058 > 10.96.0.10.53: 50700+ A? kubernetes.default.svc.svc.cluster.local. (58)
16:56:21.484644 cali6bd455d068f În IP 172.20.122.129.58857 > 10.96.0.10.53: 18986+ AAAA? kubernetes.default.svc.svc.cluster.local. (58)
16:56:21.484702 cali6bd455d068f În IP 172.20.122.129.36861 > 10.96.0.10.53: 44020+ A? kubernetes.default.svc.svc.cluster.local. (58)

Rularea tcpdump pe întreaga interfață dezvăluie că TCP pare să funcționeze, având în vedere că mesajele ACK sunt trimise înapoi. Ceea ce am observat este că nu există trafic de la 10.96.0.10 (serviciu) către pod, dar nu știu dacă este necesar?

17:03:29.224602 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 1, win 169, options [nop,nop,TS val 401463 ecr 4507 4707 470]
17:03:29.224869 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [P.], seq 1:107, ack 1, win 169, options [nop,nop] 4016446 val 401446 470 val 401446
17:03:29.224887 IP 172.20.122.129.9000 > 169.254.167.173.36088: Steaguri [.], ack 107, win 167, opțiuni [nop,nop,TS val 40736467, ecr 4073647]
17:03:29.225273 IP 172.20.122.129.9000 > 169.254.167.173.36088: Flags [P.], seq 1:818, ack 107, win 167, options [nop514473], opțiunile [nop514473]
17:03:29.225341 IP 169.254.167.173.36088 > 172.20.122.129.9000: Steaguri [.], ack 818, win 166, opțiuni [nop,nop,TS val 4017360, 40173 ecr75]
17:03:29.225399 IP 172.20.122.129.9000 > 169.254.167.173.36088: Flags [.], seq 818:7958, ack 107, win 167, options 318:7958, opțiuni 318:7958, win 167, opțiuni 318 val 4707, opțiuni 318 val 4707
17:03:29.225422 IP 169.254.167.173.36088 > 172.20.122.129.9000: Steaguri [.], ack 7958, win 155, opțiuni [nop,nop,TS val 4017430, 406743 ecr]
17:03:29.225430 IP 172.20.122.129.9000 > 169.254.167.173.36088: Steaguri [.], seq 7958:15098, ack 107, win 167, win 167, optional 47471p, optional 47471p, opțiuni 47471p, opțiune 47471p, opțiunea
17:03:29.225448 IP 169.254.167.173.36088 > 172.20.122.129.9000: Steaguri [.], ack 15098, win 138, opțiuni [nop,nop,TS val 404730, lungime 4047473]
17:03:29.225457 IP 172.20.122.129.9000 > 169.254.167.173.36088: Flags [P.], seq 15098:23486, ack 107, win 167.173.36088, optional [P.]
17:03:29.225474 IP 169.254.167.173.36088 > 172.20.122.129.9000: Steaguri [.], ack 23486, win 119, opțiuni [nop,nop,TS val 40473 e 404733]
17:03:29.225564 IP 172.20.122.129.9000 > 169.254.167.173.36088: Flags [F.], seq 23486, ack 107, win 167, options [nop] 45473, 470 473
17:03:29.225609 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [R.], seq 107, ack 23486, win 166, options [nop] 470 47 40 40 40 40
17:03:29.524333 IP 172.20.122.129.9000 > 169.254.167.173.9984: Steaguri [.], ack 3370092883, win 166, opțiuni [nop,nop,nop] 94 70 4407, TS 6 7 4 7 0
17:03:29.524564 IP 169.254.167.173.9984 > 172.20.122.129.9000: Steaguri [.], ack 1, win 171, options [nop,nop,TS val 19767300, ecr 440 4073]
17:03:34.218598 IP 172.20.122.129.45239 > 10.96.0.10.53: 23854+ AAAA? kubernetes.default.svc. (40)
17:03:34.219065 IP 172.20.122.129.38604 > 10.96.0.10.53: 24098+ A? kubernetes.default.svc. (40)
17:03:34.388311 IP 172.20.122.129.9000 > 169.254.167.173.7394: Steaguri [.], ack 917, win 166, opțiuni [nop,nop,TS val 4073745, ecr9275]
17:03:34.388402 IP 169.254.167.173.7394 > 172.20.122.129.9000: Steaguri [.], ack 1, win 171, options [nop,nop,TS val 197670449 5297 ecr]
17:03:34.388314 IP 172.20.122.129.9000 > 169.254.167.173.3949: Steaguri [.], ack 917, win 166, opțiuni [nop,nop,TS val 4073745, ecr92 719745]
17:03:34.388424 IP 169.254.167.173.3949 > 172.20.122.129.9000: Steaguri [.], ack 1, win 171, options [nop,nop,TS val 197670449, lungime 5297 ecr]
17:03:34.388288 IP 172.20.122.129.9000 > 169.254.167.173.26855: Steaguri [.], ack 917, win 166, opțiuni [nop,nop,TS val 4076765, ecr 4076752]
17:03:34.388544 IP 169.254.167.173.26855 > 172.20.122.129.9000: Flags [.], ack 1, win 171, options [nop,nop,TS val 197673 ecr4 492973]947 lungime
17:03:39.216823 IP 169.254.167.173.36182 > 172.20.122.129.9000: steaguri [S], seq 2192346809, win 43200, opțiuni [mss, eck 814040, val 814040, val 814040, TS 814040, TS 81404040
17: 03: 39.216889 IP 172.20.122.129.9000> 169.254.167.173.36182: Flags [S.], SEQ 1678785660, ACK 2192346810, WIN 42840, Opțiuni [MSS 1440, Sackok, TS Val 4073464535 ECR 4014680788 ]
, lungime 0
mario avatar
drapel cm
Ce versiune de kubernetes folosești?
Daniël van den Berg avatar
drapel cn
@mario 1.22.2-00
PjoterS avatar
drapel ve
Această problemă încă persistă? Este mediul dvs. On-Prem (software Linux/Virtualization) sau mediul Cloud? Puteți confirma că toate podurile implementate funcționează conform așteptărilor, că nu vă lipsesc resursele?
Daniël van den Berg avatar
drapel cn
@PjoterS Nu, am trecut la pur și simplu folosind docker swarm. Destul de bun pentru moment.
Alex G avatar
drapel ar
@DaniëlvandenBerg Vă rugăm să postați soluția dvs. de soluție ca răspuns pentru a ajuta membrii comunității care au aceeași problemă.
Daniël van den Berg avatar
drapel cn
@AlexG, vă rugăm să citiți comentariul meu anterior.

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.