networking - 允许 from-pod label 等于 to-pod label 的流量
问题描述
我正在尝试在 kubernetes 中设置一个网络策略,其中允许具有相同键标签值的一组通用 pod 在一个端口上进行流量。
说有:
Pod A:
labels:
meshId="d5ea1b48"
和
Pod B:
labels:
meshId="d5ea1b48"
以及更多具有相同标签的 pod meshId=d5ea1b48
。网格表示一个网格网络,其中所有包含的 pod 都被允许在一个端口上进行通信。
我的目标用 yaml 解释:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: example
spec:
podSelector:
matchLabels:
meshId: %meshId of from-pod%
ingress:
- ports:
- port 1234
- protocol: TCP
- from:
- podSelector:
matchLabels:
meshId: %meshId of to-pod%
因此,如果我没记错的话,这个配置说:我想拒绝那些没有相同meshId
.
有没有办法为所有可能meshId
的 s 创建一个 kubernetes NetworkPolicy ?这种解决方案在 yaml 中的外观如何?
我不想为每个新的 NetworkPolicy 创建一个新的 NetworkPolicy,meshId
因为它们会很多,而且我还认为如果有 50.000 多个 NetworkPolicy,这会损害集群网络的性能。
解决方案
无法以您提出的方式概括标签选择器。请注意,网络策略旨在加强基础,以便只有真正的流量进出。
我还想向您指出一个事实,即您为什么最终会获得 50000 的额外保单。这意味着您对 pod 的选择器策略不好。考虑改变这一点,而不是相反。你几乎可以做到这一点!
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: example
spec:
podSelector:
matchLabels:
meshId: value1
ingress:
- ports:
- port 1234
- protocol: TCP
- from:
- podSelector:
matchLabels:
meshId: value1
推荐阅读
- c# - System.Text.Json.JsonException:无法将 Json 转换为 DataModel
- r - 在 R 中重新创建 Excel 数据透视表 - 表格或 qpvt
- javascript - 如何使用cheerio.js 获取图像src?
- java - 在 debian 中使用 JDK 9 非法访问创建 StreamTableEnvironment
- python - SciKit-Learn 中的特征选择和交叉验证管道中的分数代表什么?
- python - 我正在尝试确定矩阵的最大元素但不断出错(必须使用 For 循环)
- python-3.8 - 使用嵌入式 python 运行 C++ 可执行文件
- python - Heroku 上的 Python 提供 h12
- ios - SwiftUI:NavigationLink 内的水平 ScrollView 会中断导航
- typo3 - TYPO3 系统用户的写入权限