Kubernetes 代理UDP DNS通信到TCP后端服务
我正在Kubernetes上创建一个CoreDNS服务器,该服务器需要使用AWS网络负载平衡器侦听端口53上的UDP流量。我希望使用TCP将该流量代理给Kubernetes服务 我当前的服务如下所示:Kubernetes 代理UDP DNS通信到TCP后端服务,kubernetes,dns,kubernetes-ingress,amazon-vpc,Kubernetes,Dns,Kubernetes Ingress,Amazon Vpc,我正在Kubernetes上创建一个CoreDNS服务器,该服务器需要使用AWS网络负载平衡器侦听端口53上的UDP流量。我希望使用TCP将该流量代理给Kubernetes服务 我当前的服务如下所示: --- apiVersion: v1 kind: Service metadata: name: coredns namespace: coredns annotations: prometheus.io/port: "9153" prometheu
---
apiVersion: v1
kind: Service
metadata:
name: coredns
namespace: coredns
annotations:
prometheus.io/port: "9153"
prometheus.io/scrape: "true"
labels:
k8s-app: coredns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "CoreDNS"
spec:
selector:
k8s-app: coredns
type: NodePort
ports:
- name: dns
port: 5353
targetPort: 5353
nodePort: 30053
protocol: UDP
- name: dns-tcp
port: 5053
targetPort: 5053
nodePort: 31053
protocol: TCP
- name: metrics
port: 9153
targetPort: 9153
protocol: TCP
网络负载平衡器在指定的节点端口上与集群通信,但UDP侦听器在从服务器请求区域数据时超时
当我对记录进行dig
时,我将获得一个超时,除非在dig中指定了+tcp
。从负载平衡器到端口的运行状况检查将返回正常状态,TCP查询将按预期返回
理想情况下,我的侦听器将在负载平衡器的端口53上接受TCP和UDP通信,并根据请求的初始协议返回TCP或UDP通信
有没有什么明显的地方我不明白,为什么UDP流量既没有到达我的集群,也没有返回响应