在ns01命名空间里创建一个名为network01 ,基于endpoint-based L4的NetworkPolicy,并按照如下方式配置它: 1. 允许Deployment nodebb的Pods,访问Deployment redis的Pods 2. 需要双向认证
时间: 2024-10-22 14:20:44 浏览: 24
在网络策略(network policy)中,特别是在Kubernetes (k8s) 中,你可以使用`Namespace` (`ns01`), `NetworkPolicy` 对象,以及`EndpointSelector` 和 `PodSelector` 来定义这样的规则。以下是如何在`ns01`命名空间里创建一个名为`network01`的L4级别的Endpoint-based NetworkPolicy来满足你的需求:
```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: network01
namespace: ns01
spec:
podSelector:
matchLabels:
app: nodebb # 匹配nodebb Deployment的Pods
egress:
- to:
podSelector:
matchLabels:
app: redis # 访问redis Deployment的Pods
ingress:
- from:
podSelector:
matchLabels:
app: redis # 双向认证,允许redis访问nodebb
- ports:
- protocol: TCP
port: 6379 # 指定Redis服务的端口
targetPort: 6379
```
在这个例子中:
1. `podSelector`指定了应用标签(app: nodebb)的Pods作为源,它们可以访问具有标签(app: redis)的目标Pods。
2. `egress`部分设置了允许从`nodebb` Pod到`redis` Pod的流量。
3. `ingress`部分包括了一条规则,使得`redis` Pod也能回访`nodebb` Pod,通过`targetPort: 6379`明确指定的是TCP协议下的Redis服务端口。
阅读全文