Kubernetes ネットワーク ポリシーのエクスポートと適用

Kubernetes オブジェクトに関連する推奨ネットワーク ポリシー ルールを YAML 形式でエクスポートできます。
VMware Aria Operations for Networks
による YAML 形式へのエクスポートでは、名前空間によるグループ化と、サービス トポロジによるグループ化のみがサポートされます。
  1. 推奨ルールを YAML 形式にエクスポートするには、[セキュリティのプラン] モデルで、セキュリティを計画する Kubernetes クラスタを選択し、次のいずれかの手順を実行します。
    • マイクロ セグメント ウィジェットで詳細オプションを展開し、
      ルールを YAML としてエクスポート
      を選択します。
    • マイクロ セグメントのホイール ビューでノードを選択し、[推奨されるファイアウォール ルール] の数をクリックし、詳細オプションを展開して、
      ルールを YAML としてエクスポート
      を選択します。
    Kubernetes ネットワーク ポリシーに基づいて名前が付けられ、タイムスタンプが設定された ZIP ファイルが、
    VMware Aria Operations for Networks
    によってダウンロードされます。このファイルを解凍すると、次の 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
    VMware Aria Operations for Networks
    で推奨されるすべてのルールが含まれています。
    exported-network-policy-rule-names.csv
    推奨ルールに基づいてエクスポートされたすべてのネットワーク ポリシーを一覧表示します。
  2. サービス ラベルを適用するには、以下の手順を実行します。
    1. 以下の Kubernetes CLI コマンドを実行します。
      kubectl edit deployment
      service-name
      -n
      namespace-name
      kubectl edit deployment
      redis-primary
      -n
      guestbook
      サービスの展開ファイルが開きます。
    2. サービス ラベル リストで、CSV ファイルで提案されたラベルをサービス展開の仕様セクションに示されているラベルに追加します。
  3. 名前空間ラベルを適用するには、次の手順を実行します。
    1. 以下の Kubernetes CLI コマンドを実行します。
      kubectl edit namespace
      namespace-name
      kubectl edit namespace
      guestbook
      名前空間の展開ファイルが開きます。
    2. メタデータで、CSV ファイルで提案されたラベルを名前空間展開の
      spec
      セクションに示されているラベルに追加します。
  4. 以下のコマンドを実行して、ラベルがポッドに適用されているかどうかを確認します。
    kubectl get pods -n
    namespace-name
    --show-labels
    kubectl get pods
    guestbook
    --show-labels
    結果ビューでラベルを確認します。
    名前空間に適用すると、ラベルはポッドに反映されません。
  5. ネットワーク ポリシーを作成するには、それぞれのクラスタ フォルダから別のフォルダに YAML ファイルをコピーして、次のどちらかのコマンドを実行します。
    • kubectl apply -f <folder-name>/
      :すべてのファイアウォール ルールをまとめて適用します。
    • kubectl apply -f <folder-name>/<firewall-rule>.yaml
      :ファイアウォール ルールを 1 つずつ適用します。