问题标签 [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.
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
kubernetes - Kubernetes 网络策略出口只允许特定 IP 和端口
我正在使用 Weave Net 2.4.0 运行 Kubernetes 1.9.6。我正在尝试锁定对 Kubernetes 内部 DNS 服务器和另一台主机上的特定端口的访问。我似乎找不到合适的出口格式。
我知道以下不是有效的政策,但代表了我想要做的事情。我如何编写网络策略来支持这一点?
kubernetes - 是否可以在 Kubernetes 的 initContainers 上公开端口?
我想在我正在处理initContainer
的 Kubernetes中公开一个端口。Job
到目前为止,我一直没有成功,并且在阅读文档时它说:
Init Container 上的端口不聚合在服务下。
在这种情况下聚合是什么意思?
截至目前,我认为答案是否定的,因为我正在运行的实验不允许我公开端口。但是,我对 Kubernetes 还很陌生,所以我不知道我是否在其他地方犯了错误。想在我尝试进一步调试之前,我会在这里询问我正在做的事情是否可行。
kubernetes - kubernetes 网络策略 - 出口策略不会阻止流量流出
这是我的网络政策:
我应用此策略并登录到 1 个 pod,它仍然可以连接到 google.com。
-
有谁可以解释为什么出口不起作用?谢谢
oracle - 如何让 kubernetes pod 访问 oracle 数据库?
我一直在尝试让 kuberentes pod 访问数据库中的外部 oracle。当 pod 启动时,与访问外部 oracle 数据库相关的 PID 会挂起并且不会超时。
这是我的yaml:
如何让我的 pod 访问外部 oracle 数据库?
kubernetes - 使用 ConfigMap 指定列入白名单的 CIDR 块列表
我想做的事
我想应用在 ConfigMap 中定义的 IP 白名单。我想将列表保留在外部,因为将它放在一个文件中比将块内联更容易。白名单将被不同命名空间中的许多服务使用。
我有的
从以下规范文件中删除了很多内容,但希望已经保留了足够多的内容。
我将 ConfigMap 中的白名单定义为:
对于此示例,我的服务是:
请注意,Service 类型是默认类型,因为我依赖 Ingress 来公开它。这不能改变。
该服务位于 Ingress 定义的后面:
我试过的
更改服务类型
将服务定义为type: LoadBalancer
. 这正是我想要的,因为它很容易使用 ConfigMap,然后我意识到出于业务原因我无法更改服务类型。
使用入口注解
这有点工作,但我不知道如何使用 ConfigMap 而不是逗号分隔的列表。我应该在这里指出,任何让我使用外部定义列表的解决方案都是可以接受的,并且它不必是 ConfigMap 只是因为。
用一个NetworkPolicy
到目前为止,这看起来最有希望,但ipBlock
选择器似乎只接受一个块......?
networking - Kubernetes:为不同的节点运行不同的 CNI 驱动程序?
是否可以这样做:比如在节点 {1、2、3} 上运行法兰绒,在节点 {4、5、6} 上运行印花布。显然,Pod 只能在同一网络内进行通信。
kubernetes - 了解 Kubernetes 集群中的子网划分
在使用 GKE 时,我发现 Kubernetes 集群中的所有节点必须在同一个网络和同一个子网中。所以,我想了解设计网络的正确方法。
我有两个服务A
,B
它们之间没有关系。我的计划是在单个区域中使用单个集群,并为每个服务A
和B
同一网络的不同子网中的每个服务设置两个节点。
然而,这似乎是做不到的。分区集群的另一种方法是使用namespaces
,但是我已经在使用使用命名空间的分区开发环境。
我阅读了有关集群联合的信息https://kubernetes.io/docs/concepts/cluster-administration/federation/,但是我的服务很小,我不需要它们在多个集群中同步。
为这些服务设置网络的正确方法是什么?A
我是否应该为所有 4 个节点使用相同的网络和子网来提供这两项服务B
?
kubernetes - Kubernetes 中仅通过 Ingress 访问的网络策略
我是 Kubernetes 新手。我们有三个命名空间(dev、uat、prod)。
我们的容器有休息服务,我们希望通过 Ingress(使用客户端身份验证)向外部世界公开这些服务。这工作正常。
但是现在,我们可以通过使用 K8s 服务名称从其他命名空间上的其他容器调用我们的 rest 服务。我们希望阻止此类访问。
我们希望只允许通过它们各自的 k8s Ingress 访问 pod。我们怎样才能做到这一点?
我试图创建两个网络策略来实现这一点,但这不起作用..
政策一
政策 2
应用第一个策略后,我无法通过 Ingress 访问我的休息服务。在我应用第二个策略之后,只需使用 k8s 服务名称,就可以再次从所有容器访问其余服务,而无需通过 Ingress。
有什么办法可以做到这一点?
(此外,不能为命名空间添加标签)
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?
谢谢!