Rularea unui cluster hibrid pe 3 mașini virtuale, nodul master un Linux, un lucrător este Linux, celălalt este Windows. nodul linux funcționează corect (cel puțin, poate rula jobul Jenkins și un grafana).
Nodul Windows nu poate ajunge la dns de la IP-ul serviciului, chiar dacă serviciul dns este activ și cele două poduri nu produc nicio eroare. Podul proxy kube rulează, de asemenea, corect pe nodul Windows, oferind doar informații în jurnale (pe nodul Windows):
„I1011 10:02:39.770583 7524 proxier.go:919] syncProxyRules a durat 2,2098 ms\n","stream":"stderr","time":"2021-10-11T08:02:39.7715829Z"}
{"log":"I1011 10:02:39.770583 7524 bounded_frequency_runner.go:296] sync-runner: rulat, următorul posibil în 1s, periodic în 30s\n","stream":"stderr","time":" 2021-10-11T08:02:39.7715829Z"}
{"log":"I1011 10:03:09.782792 7524 proxier.go:967] Politici de sincronizare\n","stream":"stderr","time":"2021-10-11T08:03:09.7837903Z"}
{"log":"I1011 10:03:09.782792 7524 proxier.go:978] Politica deja aplicată pentru (*winkernel.serviceInfo)(0xc00080aab0)({\n","stream":"stderr","time": „2021-10-11T08:03:09.7837903Z”}
când încercați să căutați ceva dintr-un pod care rulează pe cluster, acesta este rezultatul:
Solicitarea DNS a expirat.
timeout a fost de 2 secunde.
Server: necunoscut
Adresa: 172.31.128.10
Solicitarea DNS a expirat.
timeout a fost de 2 secunde.
Solicitarea DNS a expirat.
timeout a fost de 2 secunde.
Solicitarea DNS a expirat.
timeout a fost de 2 secunde.
Solicitarea DNS a expirat.
timeout a fost de 2 secunde.
*** Solicitarea către UnKnown a expirat
Încercarea de a interoga dn-ul direct cu unul dintre IP-urile din podul care rulează DNS-ul dn rezultatul corect.
Nodurile linux sunt standard, am trecut prin document https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/, cni este flanel, și există metalLB. există 3 subrețea, una /17 pentru servicii, una /17 pentru IP-uri de cluster și una /24 pentru IP extern cu încărcare echilibrată. Toate intervalele sunt intervale RFC1918 (clusterul este destinat doar uzului intern). DNS este coredns cu valori implicite
Nodul Windows este configurat folosind acest tutorial https://v1-17.docs.kubernetes.io/docs/setup/production-environment/windows/user-guide-windows-nodes/ schimbarea versiunii de la 1.17 la 1.21.3
proxy-ul Windows Kube este generat prin
curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/kube-proxy.yml | sed 's/VERSION/v1.22.0/g' | kubectl aplica -f -
versiunea kubectl:
versiunea $ kubectl
Versiune client: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:0:-01251-2:"24 39Z", GoVersion:"go1.16.6", Compiler:"gc", Platforma:"windows/amd64"}
Versiune server: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5", GitCommit:"aea7bbadd2fc0cd689de94a54e5b7b758869d691", GitTreeState:"clean", BuildDate:1:-0251-2:"-04 16Z", GoVersion:"go1.16.8", Compiler:"gc", Platforma:"linux/amd64"}