AZURE AKS:为什么网络策略不起作用?

h6my8fg2  于 2023-11-21  发布在  其他
关注(0)|答案(2)|浏览(165)

我在Azure中有一个Kubernetes集群(AKS),带有Application Gateway Ingress Controller。
我部署在它,WordPress的掌舵释放。我想启用入口流量只从应用网关入口控制器荚这是在kube-system
我的values.yml看起来像:

  1. # I paste only NetworkPolicy part
  2. networkPolicy:
  3. enabled: true
  4. ingress:
  5. enabled: true
  6. ingressRules:
  7. customRules:
  8. - from:
  9. - namespaceSelector:
  10. matchLabels:
  11. kubernetes.io/metadata.name: kube-system
  12. podSelector:
  13. matchLabels:
  14. app: ingress-appgw

字符串
然而,当我部署一个版本时,WordPress本身工作正常,但我无法通过<Application_Gateway_Ingress_Controller_PublicIP>访问它。
在我的Azure Portal上,当我访问应用程序网关资源时,我收到以下消息:

**图片1:**x1c 0d1x
图片2:

但是当我从values.yml中删除网络策略部分时,AGIC变得健康!
请帮忙吗?
感谢您发送编修。

5us2dqdw

5us2dqdw1#

此错误提示,由于您没有任何健康的后端池,请尝试添加健康的探针,如下所示。* 这将持续监控您的后端池的健康状态,并更新应用网关。应用网关将仅向健康的后端池发送流量 * 并刷新
x1c 0d1x的数据



添加健康的探测器和刷新后,需要几分钟的时间来更新这些,并尝试访问应用程序网关,然后 * 如果您收到无效的主机名错误,请尝试提前更改以下设置 *



查看Vladam的So thread以获取一些指针。
或者,尝试开发一个阻止所有流量的网络策略。创建一个名为backend-policy.yaml的文件,并使用以下清单阻止所有传入Pod的流量:

  1. kind: NetworkPolicy
  2. apiVersion: networking.k8s.io/v1
  3. metadata:
  4. name: backend-policy
  5. namespace: development
  6. spec:
  7. podSelector:
  8. matchLabels:
  9. app: webapp
  10. role: backend
  11. ingress: []

字符串
参考文件:
Troubleshoot backend health issues in Azure Application Gateway | Microsoft Docs
使用网络策略保护Pod流量- Azure Kubernetes Service| Microsoft Windows

展开查看全部
ux6nzvsh

ux6nzvsh2#

面对同样的问题,在NetworkPolicy的入口规则的from子句中使用看似正确的namespace(如上所述)和/或pod,与健康探测器的通信仍然被阻止,除非我使用允许来自任何来源的流量的空from子句打开它:

  1. apiVersion: networking.k8s.io/v1
  2. kind: NetworkPolicy
  3. metadata:
  4. labels:
  5. app.kubernetes.io/managed-by: argocd-autopilot
  6. devTeam: buildchain-and-developer-experience
  7. gitopstool: argocd
  8. name: argocd-applicationset-controller-network-policy
  9. namespace: argocd
  10. spec:
  11. ingress:
  12. - from: []
  13. ports:
  14. - port: 7000
  15. protocol: TCP
  16. - port: 8080
  17. protocol: TCP
  18. podSelector:
  19. matchLabels:
  20. app.kubernetes.io/name: argocd-applicationset-controller
  21. policyTypes:
  22. - Ingress

字符串
这导致了一个工作,虽然修改NetworkPolicy,与来自argocd公共源的netpol相比:

  1. kubectl -n argocd describe netpol/argocd-applicationset-controller-network-policy
  2. Name: argocd-applicationset-controller-network-policy
  3. Namespace: argocd
  4. Labels: <none>
  5. Annotations: <none>
  6. Spec:
  7. PodSelector: app.kubernetes.io/name=argocd-applicationset-controller
  8. Allowing ingress traffic:
  9. To Port: 7000/TCP
  10. To Port: 8080/TCP
  11. From: <any> (traffic not restricted by source)
  12. Not affecting egress traffic
  13. Policy Types: Ingress

展开查看全部

相关问题