gpt4 book ai didi

带有微服务的 Kubernetes 网络策略

转载 作者:行者123 更新时间:2023-12-02 11:43:25 24 4
gpt4 key购买 nike

问题:

Kubernetes 的网络策略没有按预期运行(导出和入口似乎切换到我?)更重要的是,我似乎无法在不阻塞前端的情况下直接锁定网络流量访问/api/路由。

代码设置:

使用 Axios 与后端对话的前端(React)。设置为微服务并使用 Ingress 根据路由适本地推送流量。外部托管数据库。

Kubernetes 设置

  • 前端部署与服务
  • API部署与服务
  • 依赖于 http 路径的入口服务。
  • 集群外的外部管理数据库。

  • 有问题的网络策略:
    kind: NetworkPolicy
    apiVersion: networking.k8s.io/v1
    metadata:
    name: api-blocking
    spec:
    podSelector:
    matchLabels:
    component: api
    policyTypes:
    - Ingress
    - Egress
    ingress:
    - from:
    - ipBlock:
    cidr: 111.111.111.0/32
    ports:
    - port: 98711
    egress:
    - to:
    - podSelector:
    matchLabels:
    component: frontend
    ports:
    - port: 3000

    允许进入具有特定端口号的特定 CIDR 的流量允许 db 获取适本地发生。允许到前端的导出流量有助于前端能够获取后端数据。

    但是,网络策略的任何组合都不会阻止用户转到/api/,而不会导致前端崩溃。希望找到一种方法来锁定它并只允许特定的客户端 pod 连接到后端?

    ....输入此内容后,也许我需要入口服务的网络策略?

    更新:
    我尝试使用网络插件特定规则。

    我编写规则的方式是只允许入口和导出的“前端”端点访问/api/http 路由。它似乎并没有阻止它从访问 API 的网络流量中分离出来。

    具有占位符值的部分示例:
    ingress:
    - fromEndpoints:
    - matchLabels:
    component: frontend
    toPorts:
    - ports:
    - port: '1111'
    rules:
    http:
    - path: '/api/ping'

    最佳答案

    I can't seem to lock down web traffic from accessing the /api/ route directly without also blocking the frontend.



    我认为标准网络策略对象不可能做到这一点,因为它只允许您根据 pods, namespaces and IPs 将流量列入白名单。 .

    对我来说, Calico Network Policies 似乎更细化。 (检查 for Application layer policy)。

    关于带有微服务的 Kubernetes 网络策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56615107/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com