Kubernetes オブジェクトに関連する推奨ネットワーク ポリシー ルールを YAML 形式でエクスポートできます。vRealize Network Insight による YAML 形式へのエクスポートでは、名前空間によるグループ化と、サービス トポロジによるグループ化のみがサポートされます。
前提条件
手順
- 推奨ルールを YAML 形式にエクスポートするには、[セキュリティのプラン] モデルで、セキュリティを計画する Kubernetes クラスタを選択し、次のいずれかの手順を実行します。
- マイクロ セグメント ウィジェットで詳細オプションを展開し、[ルールを YAML としてエクスポート] を選択します。
- マイクロ セグメントのホイール ビューでノードを選択し、[推奨されるファイアウォール ルール] の数をクリックし、詳細オプションを展開して、[ルールを YAML としてエクスポート] を選択します。
Kubernetes ネットワーク ポリシーに基づいて名前が付けられ、タイムスタンプが設定された ZIP ファイルが、 vRealize Network Insight によってダウンロードされます。このファイルを解凍すると、次の 5 つの CSV ファイルと、クラスタの数に応じて複数のフォルダが表示されます。各フォルダには、クラスタに対応する YAML ファイルが複数含まれています。ファイル名 説明 network-policy-others-ipaddress.csv サービスまたは名前空間の通信相手となっている物理サーバおよび仮想マシンの IP アドレスが含まれます。 recommended-namespace-labels-to-add.csv 名前空間に関連付けられたポッドに付けるラベルが含まれます。 例:
- [クラスタ]:pdk8s
- [名前空間]:sock-shop
- [ラベル]:sock-shop-pdk8s
recommended-service-labels-to-add.csv サービスに関連付けられたポッドに付けるラベルが含まれます。 例:
- [クラスタ]:pdk8s
- [名前空間]:sock-shop
- [サービス]:front-end
- [ラベル]:Service:front-sock-shop-pdk8s
- [クラスタ]:pdk8s
- [名前空間]:sock-shop
- [サービス]:user
- [ラベル]:Service:user-sock-shop
recommended-network-policy.csv vRealize Network Insight で推奨されるすべてのルールが含まれています。 exported-network-policy-rule-names.csv 推奨ルールに基づいてエクスポートされたすべてのネットワーク ポリシーを一覧表示します。 - サービス ラベルを適用するには、以下の手順を実行します。
- 以下の Kubernetes CLI コマンドを実行します。
kubectl edit deployment service-name -n namespace-name
kubectl edit deployment redis-primary -n guestbook
サービスの展開ファイルが開きます。 - サービス ラベル リストで、CSV ファイルで提案されたラベルをサービス展開の仕様セクションに示されているラベルに追加します。
- 以下の Kubernetes CLI コマンドを実行します。
- 名前空間ラベルを適用するには、次の手順を実行します。
- 以下の Kubernetes CLI コマンドを実行します。
kubectl edit namespace namespace-name
kubectl edit namespace guestbook
名前空間の展開ファイルが開きます。 - メタデータで、CSV ファイルで提案されたラベルを名前空間展開の spec セクションに示されているラベルに追加します。
- 以下の Kubernetes CLI コマンドを実行します。
- 以下のコマンドを実行して、ラベルがポッドに適用されているかどうかを確認します。
kubectl get pods -n namespace-name--show-labels
kubectl get pods guestbook--show-labels
結果ビューでラベルを確認します。注: 名前空間に適用すると、ラベルはポッドに反映されません。 - ネットワーク ポリシーを作成するには、それぞれのクラスタ フォルダから別のフォルダに YAML ファイルをコピーして、次のどちらかのコマンドを実行します。
kubectl apply -f <folder-name>/
:すべてのファイアウォール ルールをまとめて適用します。kubectl apply -f <folder-name>/<firewall-rule>.yaml
:ファイアウォール ルールを 1 つずつ適用します。