Azure kubernetes 网络策略仅允许某些外部主机用于 pod

Azure kubernetes 网络策略仅允许某些外部主机用于 pod

假设我已经创建了一个具有如下清单的集群:

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 文件的示例吗?

相关内容