28.6. ネットワークポリシー
admin ロールを持つユーザーとして、netobserv namespace のネットワークポリシーを作成できます。
28.6.1. ネットワーク可観測性のためのネットワークポリシーの作成
netobserv namespace への ingress トラフィックを保護するために、ネットワークポリシーを作成する必要がある場合があります。Web コンソールでは、フォームビューを使用してネットワークポリシーを作成できます。
手順
- Networking → NetworkPolicies に移動します。
-
Project ドロップダウンメニューから
netobservプロジェクトを選択します。 -
ポリシーに名前を付けます。この例では、ポリシー名は
allowed-ingressです。 - Add ingress rule を 3 回クリックして、3 つのイングレスルールを作成します。
フォームで以下を指定します。
最初の Ingress rule に対して以下の仕様を作成します。
- Add allowed source ドロップダウンメニューから、Allow pods from the same namespace を選択します。
2 番目の Ingress rule に対して次の仕様を作成します。
- Add allowed source ドロップダウンメニューから、Allow pods from inside the cluster を選択します。
- + Add namespace selector をクリックします。
-
ラベル
kubernetes.io/metadata.nameとセレクターopenshift-consoleを追加します。
3 番目の Ingress rule に対して次の仕様を作成します。
- Add allowed source ドロップダウンメニューから、Allow pods from inside the cluster を選択します。
- + Add namespace selector をクリックします。
-
ラベル
kubernetes.io/metadata.nameとセレクターopenshift-monitoringを追加します。
検証
- Observe → Network Traffic に移動します。
- Traffic Flows タブまたは任意のタブを表示して、データが表示されていることを確認します。
- Observe → Dashboards に移動します。NetObserv/Health の選択で、フローが取り込まれて Loki に送信されていることを確認します (最初のグラフに示されています)。
28.6.2. ネットワークポリシーの例
以下は、netobserv namespace の NetworkPolicy オブジェクトの例にアノテーションを付けています。
サンプルネットワークポリシー
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-ingress
namespace: netobserv
spec:
podSelector: {} 1
ingress:
- from:
- podSelector: {} 2
namespaceSelector: 3
matchLabels:
kubernetes.io/metadata.name: openshift-console
- podSelector: {}
namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: openshift-monitoring
policyTypes:
- Ingress
status: {}
- 1
- ポリシーが適用される Pod を説明するセレクター。ポリシーオブジェクトは
NetworkPolicyオブジェクトが定義されるプロジェクトの Pod のみを選択できます。このドキュメントでは、Netobservability Operator がインストールされているプロジェクト、つまりnetobservプロジェクトになります。 - 2
- ポリシーオブジェクトが入力トラフィックを許可する Pod に一致するセレクター。デフォルトでは、セレクターは
NetworkPolicyと同じ namespace の Pod と一致します。 - 3
namespaceSelectorが指定されている場合、セレクターは指定された namespace 内の Pod と一致します。