Kubernetes 使用ConfigMap指定白名单CIDR块的列表 我想做什么

Kubernetes 使用ConfigMap指定白名单CIDR块的列表 我想做什么,kubernetes,whitelist,kubernetes-ingress,kubernetes-networkpolicy,Kubernetes,Whitelist,Kubernetes Ingress,Kubernetes Networkpolicy,我想应用ConfigMap中定义的IP白名单。我希望将列表保持在外部,因为将它放在一个文件中比将块内联更容易。白名单将由不同名称空间中的许多服务使用 我所拥有的 从以下规范文件中删除了很多内容,但希望保留的内容足够多 我将ConfigMap中的白名单定义为: apiVersion:v1 种类:配置地图 数据: 白名单: #范例 - 127.0.0.1/32 #等等。 元数据: 姓名:白名单 在本例中,我的服务是: apiVersion:v1 种类:服务 元数据: 名称:示例 标签: 标签:示例

我想应用ConfigMap中定义的IP白名单。我希望将列表保持在外部,因为将它放在一个文件中比将块内联更容易。白名单将由不同名称空间中的许多服务使用

我所拥有的 从以下规范文件中删除了很多内容,但希望保留的内容足够多

我将ConfigMap中的白名单定义为:

apiVersion:v1 种类:配置地图 数据: 白名单: #范例 - 127.0.0.1/32 #等等。 元数据: 姓名:白名单 在本例中,我的服务是:

apiVersion:v1 种类:服务 元数据: 名称:示例 标签: 标签:示例 注意,服务类型是默认的,因为我依赖入口来公开它。这不能改变

该服务位于入口定义之后:

apiVersion:extensions/v1beta1
种类:入口
元数据:
名称:示例
规则:
-主持人:example.com
#... 港口等
我试过的 改变服务类型 将服务定义为
类型:LoadBalancer
。这正是我想要的,因为很容易使用ConfigMap,然后我意识到我无法出于业务原因更改服务类型

使用入口注释
apiVersion:extensions/v1beta1
种类:入口
# ...
元数据:
姓名:白名单
注释:
nginx.ingres.kubernetes.io/whitelist-source-range:“块A”、“块B”
这有点有效,但我不知道如何使用ConfigMap而不是逗号分隔的列表。这里我应该注意到,任何允许我使用外部定义列表的解决方案都是可以接受的,并且它不必是ConfigMap

使用
网络策略
apiVersion:networking.k8s.io/v1 种类:网络策略 元数据: 名称:示例网络策略 规格: 保单类型: -入口 进入: -发件人: -ipBlock: 苹果酒:嗯。。。我可以在这里添加ConfigMap吗? -名称空间选择器: #…等等 到目前为止,这看起来是最有希望的,但选择器似乎只接受一个块

使用入口注释

批注中不支持ConfigMaps

使用网络策略

入口
出口
是阵列结构,因此您可以尝试此方法,但不确定是否适合您:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: example-network-policy
spec:
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
      cidr: <cidr1>
    - namespaceSelector:
      # ...etc
  - from:
    - ipBlock:
      cidr: <cidr2>
    - namespaceSelector:
      # ...etc
  - from:
    - ipBlock:
      cidr: <cidr3>
    - namespaceSelector:
      # ...etc
apiVersion:networking.k8s.io/v1 种类:网络策略 元数据: 名称:示例网络策略 规格: 保单类型: -入口 进入: -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等 -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等 -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等 使用入口注释

批注中不支持ConfigMaps

使用网络策略

入口
出口
是阵列结构,因此您可以尝试此方法,但不确定是否适合您:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: example-network-policy
spec:
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
      cidr: <cidr1>
    - namespaceSelector:
      # ...etc
  - from:
    - ipBlock:
      cidr: <cidr2>
    - namespaceSelector:
      # ...etc
  - from:
    - ipBlock:
      cidr: <cidr3>
    - namespaceSelector:
      # ...etc
apiVersion:networking.k8s.io/v1 种类:网络策略 元数据: 名称:示例网络策略 规格: 保单类型: -入口 进入: -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等 -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等 -发件人: -ipBlock: 苹果酒: -名称空间选择器: #…等等