17.3. 네트워크 정책 생성
admin
역할이 있는 사용자는 네임스페이스에 대한 네트워크 정책을 생성할 수 있습니다.
17.3.1. NetworkPolicy 오브젝트 예
다음은 예제 NetworkPolicy 오브젝트에 대한 주석입니다.
kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: allow-27107 1 spec: podSelector: 2 matchLabels: app: mongodb ingress: - from: - podSelector: 3 matchLabels: app: app ports: 4 - protocol: TCP port: 27017
17.3.2. CLI를 사용하여 네트워크 정책 생성
클러스터의 네임스페이스에서 허용된 수신 또는 송신 네트워크 트래픽을 설명하는 세분화된 규칙을 정의하기 위해 네트워크 정책을 생성할 수 있습니다.
cluster-admin
역할로 사용자로 로그인하는 경우 클러스터의 모든 네임스페이스에서 네트워크 정책을 생성할 수 있습니다.
사전 요구 사항
-
클러스터는 NetworkPolicy 오브젝트를 지원하는 클러스터 네트워크 공급자(예:
mode:
로 설정된 OpenShift SDN 네트워크 공급자)를 사용합니다. 이 모드는 OpenShift SDN의 기본값입니다.NetworkPolicy
-
OpenShift CLI(
oc
)를 설치합니다. -
admin
권한이 있는 사용자로 클러스터에 로그인합니다. - 네트워크 정책이 적용되는 네임스페이스에서 작업하고 있습니다.
절차
다음과 같이 정책 규칙을 생성합니다.
<policy_name>.yaml
파일을 생성합니다.$ touch <policy_name>.yaml
다음과 같습니다.
<policy_name>
- 네트워크 정책 파일 이름을 지정합니다.
방금 만든 파일에서 다음 예와 같이 네트워크 정책을 정의합니다.
모든 네임스페이스의 모든 Pod에서 수신 거부
kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: deny-by-default spec: podSelector: ingress: []
동일한 네임 스페이스에 있는 모든 Pod의 수신 허용
kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: allow-same-namespace spec: podSelector: ingress: - from: - podSelector: {}
다음 명령을 실행하여 네트워크 정책 오브젝트를 생성합니다.
$ oc apply -f <policy_name>.yaml -n <namespace>
다음과 같습니다.
<policy_name>
- 네트워크 정책 파일 이름을 지정합니다.
<namespace>
- 선택 사항: 오브젝트가 현재 네임스페이스와 다른 네임스페이스에 정의된 경우 이를 사용하여 네임스페이스를 지정합니다.
출력 예
networkpolicy.networking.k8s.io/default-deny created
cluster-admin
권한을 사용하여 웹 콘솔에 로그인하면 클러스터의 모든 네임스페이스에서 YAML 또는 웹 콘솔의 양식에서 직접 네트워크 정책을 생성할 수 있습니다.