问题标签 [kubernetes-networkpolicy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
373 浏览

kubernetes - 如何使用 Calico 编写一个最小的 NetworkPolicy 来为具有 LoadBalancer 类型的服务的 Kubernetes 应用程序提供防火墙?

我有一个运行 Calico 作为覆盖和 NetworkPolicy 实现的 Kubernetes 集群,为 IP-in-IP 封装配置,我正在尝试使用以下服务公开一个简单的 nginx 应用程序:

我正在尝试编写一个仅允许通过负载均衡器进行连接的 NetworkPolicy。在没有覆盖的集群上,这可以通过允许来自用于将 IP 分配给工作程序实例本身的 CIDR 的连接来实现 - 这允许连接在特定工作程序上访问服务的 NodePort 并转发到后面的容器之一通过 IPTables 规则服务。但是,当使用配置为 IP-in-IP 的 Calico 时,通过 NodePort 建立的连接使用 Calico 的 IP-in-IP 隧道 IP 地址作为跨节点通信的源地址,如此ipv4IPIPTunnelAddr处 Calico Node 对象上的字段所示(I通过观察通过负载均衡器连接到 nginx 应用程序的源 IP 来推断这一点)。因此,我的 NetworkPolicy 需要允许这样的连接。

我的问题是如何在不ipv4IPIPTunnelAddr事先知道值且不允许来自集群中所有 Pod 的连接的情况下允许这些类型的连接(因为这些ipv4IPIPTunnelAddr值是从集群的 Pod CIDR 范围中提取的)。如果工作实例出现并死亡,这些 IP 的列表肯定会发生变化,我不希望我的 NetworkPolicy 规则依赖于它们。

  • 印花布版本:3.1.1
  • Kubernetes 版本:1.9.7
  • 等版本:3.2.17
  • 云提供商:AWS
0 投票
1 回答
4614 浏览

kubernetes - Kubernetes 网络策略出口只允许特定 IP 和端口

我正在使用 Wea​​ve Net 2.4.0 运行 Kubernetes 1.9.6。我正在尝试锁定对 Kubernetes 内部 DNS 服务器和另一台主机上的特定端口的访问。我似乎找不到合适的出口格式。

我知道以下不是有效的政策,但代表了我想要做的事情。我如何编写网络策略来支持这一点?

0 投票
1 回答
450 浏览

kubernetes - 是否可以在 Kubernetes 的 initContainers 上公开端口?

我想在我正在处理initContainer的 Kubernetes中公开一个端口。Job到目前为止,我一直没有成功,并且在阅读文档时它说:

Init Container 上的端口不聚合在服务下。

在这种情况下聚合是什么意思?

截至目前,我认为答案是否定的,因为我正在运行的实验不允许我公开端口。但是,我对 Kubernetes 还很陌生,所以我不知道我是否在其他地方犯了错误。想在我尝试进一步调试之前,我会在这里询问我正在做的事情是否可行。

0 投票
1 回答
261 浏览

kubernetes - kubernetes 网络策略 - 出口策略不会阻止流量流出

这是我的网络政策:

我应用此策略并登录到 1 个 pod,它仍然可以连接到 google.com。

-

有谁可以解释为什么出口不起作用?谢谢

0 投票
1 回答
2847 浏览

oracle - 如何让 kubernetes pod 访问 oracle 数据库?

我一直在尝试让 kuberentes pod 访问数据库中的外部 oracle。当 pod 启动时,与访问外部 oracle 数据库相关的 PID 会挂起并且不会超时。

这是我的yaml:

如何让我的 pod 访问外部 oracle 数据库?

0 投票
1 回答
550 浏览

kubernetes - 使用 ConfigMap 指定列入白名单的 CIDR 块列表

我想做的事

我想应用在 ConfigMap 中定义的 IP 白名单。我想将列表保留在外部,因为将它放在一个文件中比将块内联更容易。白名单将被不同命名空间中的许多服务使用。

我有的

从以下规范文件中删除了很多内容,但希望已经保留了足够多的内容。

我将 ConfigMap 中的白名单定义为:

对于此示例,我的服务是:

请注意,Service 类型是默认类型,因为我依赖 Ingress 来公开它。这不能改变。

该服务位于 Ingress 定义的后面:

我试过的

更改服务类型

将服务定义为type: LoadBalancer. 这正是我想要的,因为它很容易使用 ConfigMap,然后我意识到出于业务原因我无法更改服务类型。

使用入口注解

这有点工作,但我不知道如何使用 ConfigMap 而不是逗号分隔的列表。我应该在这里指出,任何让我使用外部定义列表的解决方案都是可以接受的,并且它不必是 ConfigMap 只是因为。

用一个NetworkPolicy

到目前为止,这看起来最有希望,但ipBlock选择器似乎只接受一个块......?

0 投票
1 回答
48 浏览

networking - Kubernetes:为不同的节点运行不同的 CNI 驱动程序?

是否可以这样做:比如在节点 {1、2、3} 上运行法兰绒,在节点 {4、5、6} 上运行印花布。显然,Pod 只能在同一网络内进行通信。

0 投票
1 回答
483 浏览

kubernetes - 了解 Kubernetes 集群中的子网划分

在使用 GKE 时,我发现 Kubernetes 集群中的所有节点必须在同一个网络和同一个子网中。所以,我想了解设计网络的正确方法。

我有两个服务AB它们之间没有关系。我的计划是在单个区域中使用单个集群,并为每个服务AB同一网络的不同子网中的每个服务设置两个节点。

然而,这似乎是做不到的。分区集群的另一种方法是使用namespaces,但是我已经在使用使用命名空间的分区开发环境。

我阅读了有关集群联合的信息https://kubernetes.io/docs/concepts/cluster-administration/federation/,但是我的服务很小,我不需要它们在多个集群中同步。

为这些服务设置网络的正确方法是什么?A我是否应该为所有 4 个节点使用相同的网络和子网来提供这两项服务B

0 投票
0 回答
305 浏览

kubernetes - Kubernetes 中仅通过 Ingress 访问的网络策略

我是 Kubernetes 新手。我们有三个命名空间(dev、uat、prod)。

我们的容器有休息服务,我们希望通过 Ingress(使用客户端身份验证)向外部世界公开这些服务。这工作正常。

但是现在,我们可以通过使用 K8s 服务名称从其他命名空间上的其他容器调用我们的 rest 服务。我们希望阻止此类访问。

我们希望只允许通过它们各自的 k8s Ingress 访问 pod。我们怎样才能做到这一点?

我试图创建两个网络策略来实现这一点,但这不起作用..

政策一

政策 2

应用第一个策略后,我无法通过 Ingress 访问我的休息服务。在我应用第二个策略之后,只需使用 k8s 服务名称,就可以再次从所有容器访问其余服务,而无需通过 Ingress。

有什么办法可以做到这一点?

(此外,不能为命名空间添加标签)

0 投票
1 回答
229 浏览

kubernetes - Pod 如何与集群外的其他服务/服务器通信?通过其 IP,或通过 kubernetes 处理的 NAT IP

我有多个 Kubernetes 集群。它们都在“同一个网络”上——也就是说,网络上还有其他服务器/服务,这样所有集群中的所有 pod 都可以访问这些服务器/服务。

我知道每个 pod 都有一个唯一的 IP,因此所有 pod 都可以直接通过这些 IP 相互通信。但是(这是我的问题)- pod 是否在我的整个网络中获得唯一的 IP?或者只是在集群内/跨集群?

这个问题的原因是 - 我可以让所有集群对 pod 使用相同的网络范围。也就是说,这是正确的设计:

或者,我是否需要这样:

提出这个问题的另一种方式:

当 Pod1.1 调用集群的网络服务器时,它是否将自己宣传为 10.0.0.1?或者作为 kubernetes 处理并映射回 10.0.0.1 的一些 NAT IP?

谢谢!