我试图在库伯内特斯上编写一个在AWS EKS下工作的网络策略。我想实现的是允许来自同一命名空间的pod/pod流量,并允许从AWS ALB入口转发的外部流量。
AWS ALB入口是在同一个NameSpace下创建的,所以我在想只有使用DENY来自其他命名空间的所有流量就足够了,但是当我使用来自ALB入口负载均衡器(其内部IP地址与pod/pod位于同一名称空间)的流量时是不允许的。然后,如果我添加来自外部客户端的允许流量,它允许进入,但也允许其他命名空间。
所以我的例子是这样的:(这并不像预期的那样有效)
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-from-other-namespaces
namespace: os
spec:
podSelector:
matchLabels:
ingress:
- from:
- podSelector: {}
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-external
namespace: os
spec:
podSelector:
matchLabels:
app: nginx
tier: prod
customer: os
ingress:
- ports:
- port: 80
from: []
当使用第一个策略时,ALB入口被阻止,添加第二个策略时,也允许使用其他名称空间,这是我不想要的。我只能允许AWS ALB入口的内部IP地址,但它可以随时间变化,并且是动态创建的。
根据设计(Kubernetes NetworkPolicy API),如果endpoint可以从外部访问,那么为其他名称空间阻止它是没有意义的。(毕竟,它也可以通过公共LB从其他名称空间访问,因此为已经可以公开访问的endpoint设置内部防火墙是没有意义的。)早在设计这个API的时候,我就被告知这一点。
然而,您可能会发现某些CNI插件(Calico、Cilium等)提供了非标准的CRD API,这些API具有明确的“拒绝”操作,可以取代“允许”操作。它们可以解决您的问题。
最后,答案取决于CNI插件的实现,AWS如何在Kubernetes网络方面实现ALBs,以及CNI插件如何处理这一问题。除了询问CNI提供商(或他们的文档),没有简单的答案。
我试图在aws EKS中跨多个名称空间配置单个ALB,每个名称空间都有自己的入口资源。 我正在尝试在k8s v1.20上配置入口控制器aws loadbalancer控制器。 我面临的问题是,每次尝试部署新服务时,除了入口配置中指定的共享ALB之外,它总是启动一个新的经典负载平衡器。 https://kubernetes-sigs.github.io/aws-load-balancer-contr
我有一个文件,它有一个到.sh文件的路由列表,但是要执行脚本,需要一个日期,该文件的日期是。当我运行执行脚本列表的脚本时,我会用命令提示用户输入日期。
我正在创建一个应用程序,它在开发中使用webpack-dev-server和react-router。 似乎webpack-dev-server是基于这样一个假设构建的,即在一个地方(即“/”)有一个公共入口点,而react-router允许无限数量的入口点。
免责声明:我来自AWS背景,但对GCP来说相对来说是非常新的。我知道存在许多类似的问题(例如,这里和这里等),但我仍然无法解决,因为仍然缺少准确/详细的说明。所以请容忍我再次问这个问题。 我的简单设计: 公共HTTP/S流量(入口) GCP负载平衡器持有SSL证书,然后使用端口80进行到服务器的下游连接。因此,LB到服务器只是HTTP。 我的问题: 如何防止传入的HTTP/S公共流量直接到达GCP
我遇到了一种情况,多个Kubernetes命名空间被配置为使用一个入口主机。对K8s入口控制器的请求将来自负载平衡器F5。 如果用户向示例发送请求。com/api/service1,该请求将降落在F5上,F5将把它路由到工作节点,而不更改URL。K8s入口需要将请求路由到不同的命名空间,但正如我所提到的,所有命名空间都使用相同的入口(例如.com)。 我关心的是K8s入口将如何将请求转发到适当的命
我在Visual Studio中从第三方WSDL添加了一个服务引用,但它不是创建代理类,而是创建一个具有空名称空间的文件: WSDL地址是http://wwwh.cnj.jus.br/sgt/sgt_ws.php?WSDL 我该怎么修好它? 更新: 我运行了命令