Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

8.10.2. NetworkPolicy 및 라우터

ovs-multitenant 플러그인을 사용하는 경우 라우터의 트래픽이 모든 네임스페이스에 자동으로 허용됩니다. 라우터는 일반적으로 기본 네임스페이스에 있고 모든 네임스페이스에서 해당 네임스페이스의 포드에서 연결을 허용하기 때문입니다. 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 플러그인과 같이 default 네임스페이스에서 전체 액세스를 허용하는 정책을 생성할 수 있습니다.

  1. default 네임스페이스에 레이블을 추가합니다.

    중요

    이전 절차의 default 레이블로 default 프로젝트에 레이블을 지정한 경우 이 단계를 건너뜁니다. 네임스페이스에 레이블을 추가하려면 클러스터 관리자 역할이 필요합니다.

    $ oc label namespace default name=default
  2. 해당 네임스페이스에서 연결을 허용하는 정책을 생성합니다.

    참고

    연결을 허용하려는 각 네임스페이스에 대해 이 단계를 수행합니다. 프로젝트 관리자 역할이 있는 사용자는 정책을 생성할 수 있습니다.

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