Multiregion cluster on EKS: service port type should be UDP #69847
Labels
C-bug
Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
no-issue-activity
O-community
Originated from the community
T-multiregion
X-stale
Describe the problem
The doc and manifest suggest to use
TCP
protocol for port 53 to handle DNS queries. I goti/o timeout
errors in CoreDNS logs, and the cross-region DNS resolution kept failing.Tried to add UDP port alongside the TCP port but mixed ports are only available as part of a feature gate in Kubernetes version
1.20
(kubernetes/kubernetes#23880), and in EKS it doesn't seem to have been enabled yet (kubernetes-sigs/aws-load-balancer-controller#1608)Ideally, a
TCP_UDP
protocol would have been the appropriate one, but the aws-loadbalancer-controller needs to have that support: kubernetes-sigs/aws-load-balancer-controller#1608 (comment)For me, with EKS version
1.20
, I was able to resolve the cross-region DB pods only when I recreated the DNS service with the protocol toUDP
here:cockroach/cloud/kubernetes/multiregion/eks/dns-lb-eks.yaml
Line 14 in 44c9505
And then we have to remove the
force_tcp
config under the server blocks:cockroach/cloud/kubernetes/multiregion/eks/configmap.yaml
Lines 24 to 32 in 44c9505
Also, in the docs there should be an example for testing the cross-region DNS resolution (via the NLB), for example:
To Reproduce
Followed the documentation, NLB with TCP protocol for port 53, CoreDNS will have errors resolving k8s services in the other regions:
Expected behavior
Cross-region k8s DNS resolution working seamlessly.
Environment:
v21.1.8
EKS v1.20.7-eks-d88609
Jira issue: CRDB-9828
The text was updated successfully, but these errors were encountered: