8.10.2. NetworkPolicy 和路由器


使用 ovs-multitenant 插件时,所有命名空间中会自动允许来自路由器的流量。这是因为路由器通常位于 default 命名空间中,所有命名空间都允许来自该命名空间中的 pod 的连接。使用 ovs-networkpolicy 插件时,这不会自动发生。因此,如果您有一个默认隔离命名空间的策略,则需要执行额外的步骤来允许路由器访问命名空间。

一种选择是为每个服务创建一个策略,允许从所有来源访问。例如:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-to-database-service
spec:
  podSelector:
    matchLabels:
      role: database
  ingress:
  - ports:
    - protocol: TCP
      port: 5432

这允许路由器访问该服务,但也允许其他用户命名空间中的容器集访问该服务。这不应造成任何问题,因为这些容器集通常可以使用公共路由器访问服务。

另外,您可以创建一个允许从默认命名空间中完全访问的策略,如 ovs-multitenant 插件中所示:

  1. 向 default 命名空间添加标签。

    重要

    如果您使用上一步中的默认标签标记了 default 项目,则跳过这一步。集群管理员角色需要向命名空间添加标签。

    $ oc label namespace default name=default
  2. 创建允许从该命名空间进行连接的策略。

    注意

    对您要允许连接的每个命名空间执行此步骤。具有 Project Administrator 角色的用户可以创建策略。

    kind: NetworkPolicy
    apiVersion: networking.k8s.io/v1
    metadata:
      name: allow-from-default-namespace
    spec:
      podSelector:
      ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              name: default
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.