在nodebb命名空间里创建一个名为redis 且基于endpoint based L4的NetworkPolicy,并按照如下方式配置它: 1. 允许Deployment nodebb的Pods访问Deployment redis的Pods 2. 需要双向认证
时间: 2024-10-22 12:20:08 浏览: 44
在NodeBB的命名空间中,为了创建一个基于endpoint-based L4级别的NetworkPolicy,我们将使用Kubernetes的yaml文件来定义这个策略。假设我们已经在`nodebb`和`redis`两个命名空间下分别有`nodebb-deployment`和`redis-deployment`的Deployment资源。
以下是一个示例的NetworkPolicy YAML配置,实现了你提到的要求:
```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: nodebb-to-redis-policy
namespace: nodebb
spec:
podSelector:
matchLabels:
app: nodebb
policyTypes:
- namespaceSelector:
matchLabels:
app: redis
ports:
- protocol: TCP
port: 6379
ingress:
- from:
- podSelector:
matchLabels:
app: redis
ports:
- protocol: TCP
port: 6379
# 添加双向认证部分,这里假设Redis支持客户端认证
# 如果需要客户端证书,可以在secret中存储并引用
- selector:
matchLabels:
app: redis
tcp:
ports:
- port: 6379
auth:
secretName: redis-client-auth-secret
certKey: client-cert
caCertKey: ca-cert
---
# 同样地,在redis命名空间中创建一个允许nodebb访问的policy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: redis-to-nodebb-policy
namespace: redis
spec:
podSelector:
matchLabels:
app: redis
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: nodebb
ports:
- protocol: TCP
port: 6379
```
在这个配置中,`nodebb-to-redis-policy`允许`nodebb`部署的Pod访问`redis`部署的Pod,同时设置了双向认证。你需要替换`redis-client-auth-secret`、`client-cert` 和 `ca-cert` 部分为实际使用的Secret名称及相应的键名,如果Redis支持客户端证书的话。
阅读全文