Kubernetes网络封锁DNS

问题描述 投票:0回答:2

但是,当我应用策略时,我会看到重复出现的消息,即主机名无法解决。我已经在Myserver Pod上安装了DNSutils;并且可以看到DNS请求正在计时;而且我还尝试在同一吊舱上安装TCPDUMP;我可以看到从MyServer到Kube-DNS的请求。我没有看到任何回答回来。

如果我删除了网络上的DNS,则直接回来;因此,我敢肯定,我的网络上有问题,但找不到允许DNS流量的方法。如果有人能阐明我出错的地方,那将不胜感激!
	

Sulose不需要标记目标名称空间的解决方案。有必要定义A

name

namespaceSelector
kubernetes dns azure-aks kubernetes-networkpolicy
2个回答
10
投票
podSelector

将针对POD自己的名称空间。

namespaceSelector
Edit:更改了基于
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-dns-access namespace: <your-namespacename> spec: podSelector: matchLabels: {} policyTypes: - Egress egress: - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: kube-system podSelector: matchLabels: k8s-app: kube-dns ports: - protocol: UDP port: 53
标签的名称空间的命名空间空间。假设您启用了自动标签。 
https://kubernetes.io/docs/concepts/overview/_print/#automatic-labelling

如果您没有启用此功能,那么下一个最好的事情就是定义一个允许的 - 以及
kube-system
.


避免重复创建一个单独的网络策略,以打开DNS流量。首先,我们标记
kubernetes.io/metadata.name名称空间。然后允许DNS流量从所有POD到namespaceSelector

名称空间。

podSelector

    
我最近遇到了与op。
要检查的东西是DNS POD确实使用端口53。您可以通过检查DNS上的K8S服务/端点来找到。在OpenShift案例中,该服务具有端口53,但指向容器端口5353。在我将端口从53更改为NetworkPolicy中的端口后,DNS流量不再被阻止。


6
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.