问题标签 [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.
google-kubernetes-engine - GKE 网络政策和 ExternalName
我需要禁用命名空间中来自我的 pod 的所有出口流量,除了一个方向,例如 yahho.com 我的 service.yaml 看起来像:
我的网络策略文件会阻止所有输出流量:
我尝试使用允许的结构:
你能纠正我的施工podSelector以通过交通吗?我在文档中找不到任何想法。
kubernetes - Kubernetes 上的 NetworkPolicy 只允许 UI 与后端对话?
需要注意的是后端(烧瓶服务)需要与 MongoDB 对话以获取数据。如果在网络策略中,我将其添加nodeSelector
为我的烧瓶服务,并将 UI 添加到入口,并将 UI 和 MongoDB 上的 Egress 添加到规则,它仍然不起作用。
我的入口看起来像 -
我是否必须在我的网络策略的 podSelector 选项中指定我的入口?
到目前为止,我的网络策略如下所示 -
故障排除:
我已经尝试启动一个 pod 并将该 pod 添加到入口中。当它被允许进入入口时,我能够从 pod ping xyz-svc,而当我从入口中删除它时,它被拒绝,因此证明网络策略正在运行。
我想了解标签、选择器和 matchLabels。
我已经阅读了这些链接,但我想对我的 NetworkPolicy 有一个直观的解释,例如:
podSelector:需要应用网络策略的 pod(可以是部署或应用名称或层名称或运行)
ingress:允许或拒绝访问上述 pod 的流量
egress:允许或拒绝访问从上述 pod 发出的流量。您的 pod 名称应与哪些标签匹配?
命名空间选择器?
吊舱选择器?
编辑:入口 YAML
kubernetes - NetworkPolicy 无法限制来自 UI 的 Ingress
我使用 a 部署了烧瓶服务(6 个副本)和 ui(3 个副本),kind:Deployment
但是当我添加这样的印花布 NetworkPolicy 时:
如果我直接访问它,我的烧瓶服务就像这样
这可能是意料之中的,但我的 UI 也无法到达端点。
这是为什么?
编辑 2:Kubernetes 和入口信息
Kubernetes 版本 -
我的入口看起来像 -
我是否必须在我的网络策略的 podSelector 选项中指定我的入口?
到目前为止,我的网络策略如下所示 -
编辑 1:我了解到我们需要在网络策略之前使用配置映射公开端口 8000。
编辑 3:对于 UI,我的意思是使用节点图像完成部署。我必须检查请求是通过 UI pod 发送还是直接发送到 svc pod。
kubernetes - 如何验证集群网络策略配置/支持
我试图找出验证给定集群的网络策略配置的最佳方法。 根据文档
网络策略是由网络插件实现的,因此您必须使用支持 NetworkPolicy 的网络解决方案——简单地创建资源而没有控制器来实现它是没有效果的。
假设我只能通过 kubectl 访问我的集群,我应该怎么做才能确保部署到集群中的网络策略资源得到遵守?
我知道可用的 CNI 和相关的矩阵功能。
我知道您可以检查与这些 CNI 相关的 kube-system 下部署的 pod,并使用 for ex 验证相关功能。我共享的矩阵,但我想知道是否有更结构化的方法来验证当前安装的 CNI 和相关功能。
关于“实现它的控制器”,有没有办法获取与网络策略相关的插件/控制器列表?
kubernetes - 拒绝来自特定命名空间的流量的网络策略
假设我有 5 个命名空间 - prod、preprod、uat、dev 和 test。每个命名空间都有不同的标签 - ns=prod、ns=preprod、ns=uat、ns=dev 和 ns=test。
问题:所以我想创建一个网络策略,我不想将流量(出口)从 ns=test 发送到标签为 ns=prod 的特定命名空间。但是 ns=test 应该能够出口到所有其他命名空间。
文档: https ://kubernetes.io/docs/concepts/services-networking/network-policies/ https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/
我试图从上述文档创建一个清单文件,但没有运气。我可以使用 podSelector (豆荚的标签,但不只使用整个名称空间)来做到这一点。
kubernetes - Kubernetes 中没有发生 DNS 名称解析
我们设置了 3 个节点的 Kubernetes 集群。一个是主人,两个是奴隶。并在master节点安装了zookeeper和active mq。当我们在部署应用程序后看到日志时,它显示http://foo.bar.com:2181(active mq DNS name) 无法访问或到达。如果我们在属性文件中将 activemq 域名更改为 IP 地址,它就可以正常工作。
我认为 kubernetes 中没有进行名称解析,您能帮我如何自动完成这项工作吗?因为我不能总是在有新部署时更改属性文件。
kubernetes - Kubernetes 最佳实践 - 将任意数量的 pod 公开到互联网
我的应用程序需要任意数量的 pod 才能将它们的服务公开到 Internet。我不确定允许从外部服务器(我们称其为客户端)发现这些 pod 的最佳方法是什么。
该工作流由一个外部服务器(客户端)组成,该服务器请求创建一个“车间”部署,并提供一个车间 ID。然后 Kubernetes 创建部署,并在其旁边创建一个 Pod,客户端将使用该 API 在 Pod 上的容器中运行。
客户端应该能够看到所有 Workshop pod 实例,并且必须能够识别哪个 Pod 属于哪个 Workshop。
我已经简化了实际的 kubernetes 基础设施。它使用 CRD 和操作符来设置更复杂的基础设施,但只有 pod 的 API 及其可发现性应该是客户端关心的。解决这个问题的最佳方法是什么?
kubernetes - Kubernetes Ingress 网络策略按预期工作,egress 阻塞了所有流量
我已经从这里在 EKS 上安装了 Calico 。
我有两个命名空间,foo 和 bar,都标有“目的”标签,并且每个都包含一个应用程序 pod。
当我将以下 Ingress-only 策略导入 foo 命名空间时,它完全按预期工作;其他测试 pod 无法连接到 foo-app,但 bar-app 可以。
但是,当我导入包含入口和出口规则的策略时,它会完全关闭到 pod 的网络。我什至无法从 bar-app ping foo-app pod IP。
在删除并系统地重新添加部分策略之后,肯定是namespaceSelector
在出口中添加条目会破坏它。
集群上没有其他网络策略。
如果没有直接明显的原因说明为什么会发生这种情况;除了在工作节点上搜索 netfilter 规则之外:有没有有效的方法来调试这个?
kubernetes - Kubernetes pod 到 pod 集群网络策略
使用 k8s 网络策略或 calico,我可以只将这些工具用于 pod 到 pod 集群网络策略。我已经有外部集群策略的网络规则。
例如,如果我应用此印花布规则:
在此示例中,我允许从应用 B 到应用 A 的流量。但这将禁止所有其他进入 A 的流量。是否可以仅将此规则从 pod 应用到 pod ?
istio - 无法使用拒绝所有 GlobalNetworkPolicy 通过 Istio 连接到 EKS 上的应用程序
我的设置:使用 Calico 和 Istio 1.5 运行 EKS 1.14。
试图让示例 bookinfo 使用特定的 NetworkPolicies 运行。
我应用了拒绝所有流量的 GlobalNetworkPolicy:
我还为 Istio 添加了一个 GlobalNetworkPolicy 到命名空间和命名空间内的流量:
和一个允许 istio 系统上的所有入口和出口的 NetworkPolicy
还有一个 NetworkPolicy 允许流量到端口 80 和 443 上的入口网关。我知道这个是多余的,但我希望将前一个减少到只有必要的入口。
还有一些其他不相关的 NetworkPolicies(访问 kube-dns、metrics-server)。部署bookinfo可以使用和不使用策略,并且与部署网关相同。
组件之间的连接有效(我可以执行到一个 pod 并连接到其他 pod)。但是,当我尝试使用策略通过网关访问产品页面时,我什么也得不到,而不是没有策略的情况下我得到的 HTML。
我是否错过了一些应该允许的流量?我应该为主节点或其他地方的负载均衡器制定策略吗?
编辑:如果我允许所有进入 istio-system 和命名空间,它就可以工作。所以我想我只是错过了命名空间中的其他一些入口,有没有办法将它限制为负载均衡器?