首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes网络政策wtih外部服务

Kubernetes网络政策wtih外部服务
EN

Stack Overflow用户
提问于 2019-06-15 06:48:07
回答 1查看 480关注 0票数 1

问题:

我试图使我的API能够进入我的外部托管数据库,同时需要其他所有东西的白名单。

代码语言:javascript
复制
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: server-allow-external
spec:
  podSelector:
    matchLabels:
      component: api
  ingress:
    - from:
        - namespaceSelector: {}
        - podSelector:
            matchLabels: frontend
        - ipBlock:
            cidr: 172.17.0.0/16

我在这里试过各种组合。网络插件策略,将外部DB映射到基于集群的服务,等等,我没有运气。

注意:是的,我允许所有命名空间通信。

上面的代码是我从逻辑上来修复problem...but的地方,它仍然不能工作。我也有一个负载均衡器,坐在这之外,如果这可能会有影响?

代码:

我有一个前端,它依赖于后端API (全部在默认名称空间中)。然后是外部数据库。我实现了一个默认的拒绝策略:

代码语言:javascript
复制
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-deny-all
  namespace: default
spec:
  podSelector: {}
  ingress: []

然后我允许从网上访问前台:

代码语言:javascript
复制
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-external
spec:
  podSelector:
    matchLabels:
      component: frontend
  ingress:
    - from: []
EN

回答 1

Stack Overflow用户

发布于 2019-06-26 06:18:44

为外部服务器配置网络策略。你必须修复定义入口处的部分。

只需将分段添加到matchLabels - component: frontend

代码语言:javascript
复制
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: server-allow-external
spec:
  podSelector:
    matchLabels:
      component: api
  ingress:
    - from:
        - namespaceSelector: {}
        - podSelector:
            matchLabels:
              component: frontend
        - ipBlock:
            cidr: 172.17.0.0/16

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56608052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档