假设我已经创建了一个具有如下清单的集群:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
use_db: "true"
backend: "true"
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: my-app
image: <...>
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
- containerPort: <...>
---
apiVersion: v1
kind: Service
metadata:
name: my-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: my-app
我已经激活了网络插件和网络策略。它运行良好。但我想设置一些网络策略。我发现了许多如何管理 Pod 之间的流量、如何允许外部流量以及来自所有内部 Pod 的流量的示例。但我不明白在我的情况下该怎么做。这就是我想要的:
- 默认拒绝 kubernetes 内部所有 pod 之间的流量(我可以这样做)。
- 允许外部流量到带有标签的 Pod后端从某些外部子网到端口 80(但不是从内部 pod)
- 允许带有标签的 Pod 与某些数据库(我知道它的 DNS 名称和端口)进行外部流量交换使用数据库
请问,有人可以提供一下这种情况的网络策略 yaml 文件的示例吗?