【问题标题】:How to make a Kubernetes deployment accessible only from a specific deployment?如何使 Kubernetes 部署只能从特定部署访问?
【发布时间】:2020-09-23 04:37:10
【问题描述】:

我有两个 Kubernetes 部署(DeploymentA 和 DeploymentB),我想知道有没有办法在 DeploymentA 中将来自 DeploymentB 的所有传入流量列入白名单?这样 DeploymentA 只能通过 DeploymentB 访问。

ClusterIP 服务可用于访问部署以在 Kubernetes 中进行内部通信,但是如何将来自另一个部署中特定部署(或其 pod)的所有请求列入白名单?例如,有没有办法获取特定部署的 pod 的所有可能 IP 地址,以便将它们列入白名单?

编辑 1:

我有一个对 Internet 开放的 Web 应用程序,但它的特定部分必须只能从特定部署中访问。为了实现这一点,我需要指定 IP 地址或应该具有访问权限的部署的名称。

谢谢!

【问题讨论】:

    标签: kubernetes kubernetes-pod kubernetes-service kubernetes-deployment kubernetes-networking


    【解决方案1】:

    您可以使用Network policy

    网络策略是关于如何允许 pod 组相互通信以及与其他网络端点通信的规范。

    NetworkPolicy 资源使用标签来选择 pod 并定义规则,这些规则指定允许哪些流量进入​​选定的 pod。

    【讨论】:

    • 感谢您的回答。这可能是一个可能的解决方案,但不完全是我正在寻找的。请查看“编辑 1”以获取更多信息。
    【解决方案2】:

    以下网络策略应有助于仅允许从特定部署 pod (depA) 到 depB pod 的流量,因为您的问题是具体将流量从部署路由到部署,或者将允许流量返回 Internet,因为 我们有允许流量通过 UDP 和 TCP 输出的 Egress 规则

    apiVersion: networking.k8s.io/v1
    metadata:
      name: foo-allow-to-hello
    spec:
      policyTypes:
      - Ingress
      - Egress 
      podSelector:
        matchLabels:
          app: depbB
      ingress:
      - from:
        - podSelector:
            matchLabels:
              app: depA
      egress:
      - to:
        - podSelector:
            matchLabels:
              app: depA
        - ports
          - protocol: UDP
            port: 53
         - protocol: TCP 
           port: 53
    
    

    请注意,为执行上述政策,您的部署中的 pod 应进行相应标记。以下部署适用于上述策略,请注意 pod 上的标签与策略中提到的相同。

    controllers/nginx-deployment.yaml 
    
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: deploymentA
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: depA 
      template:
        metadata:
          labels:
            app: depA 
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多