6.2. ネットワークポリシーの作成
クラスター管理者は、namespace のネットワークポリシーを作成できます。
6.2.1. NetworkPolicy オブジェクトの作成
クラスターのプロジェクトに許可される Ingress ネットワークトラフィックを記述する詳細なルールを定義するには、NetworkPolicy オブジェクトを作成できます。
前提条件
-
クラスターは、NetworkPolicy オブジェクトをサポートするデフォルトの CNI ネットワークプロバイダーを使用している(例
mode: NetworkPolicy
が設定された OpenShift SDN ネットワークプロバイダー)。このモードは OpenShiftSDN のデフォルトです。 -
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインしている。
手順
ポリシールールを作成します。
-
<policy-name>.yaml
ファイルを作成します。<policy-name>
はポリシールールを記述します。 作成したばかりのファイルで、以下の例のようなポリシーオブジェクトを定義します。
kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: <policy-name> 1 spec: podSelector: ingress: []
- 1
- ポリシーオブジェクトの名前を指定します。
-
以下のコマンドを実行してポリシーオブジェクトを作成します。
$ oc create -f <policy-name>.yaml -n <project>
以下の例では、新規 NetworkPolicy オブジェクトが
project1
という名前のプロジェクトに作成されます。$ oc create -f default-deny.yaml -n project1
出力例
networkpolicy "default-deny" created
6.2.2. サンプル NetworkPolicy オブジェクト
以下は、サンプル NetworkPolicy オブジェクトにアノテーションを付けます。
kind: NetworkPolicy apiVersion: extensions/v1beta1 metadata: name: allow-27107 1 spec: podSelector: 2 matchLabels: app: mongodb ingress: - from: - podSelector: 3 matchLabels: app: app ports: 4 - protocol: TCP port: 27017