Running a hybrid cluster on 3 VMs, master node a linux, one worker is linux the other one is windows. the linux node is working correctly (at least, it can run Jenkins job and a grafana).
The Windows node is unable to reach the dns from the service IP even though the dns service is up and the two pods yields no error. The kube proxy pod is also running correctly on the windows node yielding only infos in the logs (on the windows node) :
"I1011 10:02:39.770583 7524 proxier.go:919] syncProxyRules took 2.2098ms\n","stream":"stderr","time":"2021-10-11T08:02:39.7715829Z"}
{"log":"I1011 10:02:39.770583 7524 bounded_frequency_runner.go:296] sync-runner: ran, next possible in 1s, periodic in 30s\n","stream":"stderr","time":"2021-10-11T08:02:39.7715829Z"}
{"log":"I1011 10:03:09.782792 7524 proxier.go:967] Syncing Policies\n","stream":"stderr","time":"2021-10-11T08:03:09.7837903Z"}
{"log":"I1011 10:03:09.782792 7524 proxier.go:978] Policy already applied for (*winkernel.serviceInfo)(0xc00080aab0)({\n","stream":"stderr","time":"2021-10-11T08:03:09.7837903Z"}
when trying to nslookup anything from a pod running on the cluster this is the result:
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 172.31.128.10
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to UnKnown timed-out
Trying to query the dns directly with one of the IP from the pod running the DNS yields correct result.
The linux nodes are standard, I went through the doc https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/, cni is flannel, and there's metalLB. there are 3 subnet one /17 for services one /17 for cluster ips and one /24 for load balanced external IP. All ranges are RFC1918 ranges (the cluster is meant for internal use only). DNS is coredns with default values
Windows node is setup using this tutorial https://v1-17.docs.kubernetes.io/docs/setup/production-environment/windows/user-guide-windows-nodes/ changing the version from 1.17 to 1.21.3
windows kube proxy is spawned via
curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/kube-proxy.yml | sed 's/VERSION/v1.22.0/g' | kubectl apply -f -
kubectl version:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T21:04:39Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5", GitCommit:"aea7bbadd2fc0cd689de94a54e5b7b758869d691", GitTreeState:"clean", BuildDate:"2021-09-15T21:04:16Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}