第6章 ビルド時のネットワークポリシーの生成
ビルド時のネットワークポリシージェネレーターは、roxctl CLI に含まれています。ビルド時のネットワークポリシー生成機能の場合、roxctl CLI は RHACS Central と通信する必要がないため、任意の開発環境で使用できます。
6.1. ビルド時のネットワークポリシージェネレーターの使用 リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI のビルトインネットワークポリシージェネレーターを使用して、ネットワークポリシーを生成できます。
前提条件
-
ビルド時のネットワークポリシージェネレーターは、コマンドの実行時に指定したディレクトリーを再帰的にスキャンします。したがって、コマンドを実行する前に、サービスマニフェスト、config map、ワークロードマニフェスト (
Pod、Deployment、ReplicaSet、Job、DaemonSet、StatefulSetなど) が、指定されたディレクトリーに YAML ファイルとしてすでに存在している必要があります。 -
kubectl apply -fコマンドを使用して、これらの YAML ファイルをそのまま適用できることを確認します。ビルド時のネットワークポリシージェネレーターは、Helm スタイルのテンプレートを使用するファイルでは機能しません。 サービスネットワークアドレスがハードコーディングされていないことを確認します。サービスに接続する必要があるすべてのワークロードは、サービスネットワークアドレスを変数として指定する必要があります。この変数は、ワークロードのリソース環境変数を使用するか、config map で指定できます。
サービスネットワークアドレスは、次の公式の正規表現パターンに一致する必要があります。
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)?1 - 1
- このパターンでは、
- <svc> はサービス名
- <ns> はサービスを定義した namespace
- <portNum> は公開されたサービスのポート番号
以下は、パターンに一致するいくつかの例です。
-
wordpress-mysql:3306 -
redis-follower.redis.svc.cluster.local:6379 -
redis-leader.redis -
http://rating-service.
手順
help コマンドを実行して、ビルド時のネットワークポリシー生成機能が使用可能であることを確認します。
$ roxctl netpol generate -hnetpol generateコマンドを使用してポリシーを生成します。$ roxctl netpol generate <folder-path>1 - 1
- Kubernetes マニフェストがあるフォルダーのパスを指定します。
roxctl netpol generate コマンドは、次のオプションをサポートしています。
|
| 説明 |
|
|
|
|
| 生成されたポリシーをターゲットフォルダーに保存します。ポリシーごとに 1 つのファイルです。 |
|
| 生成されたポリシーを保存して単一の YAML ファイルにマージします。 |
|
|
最初に発生したエラーで失敗します。デフォルト値は |
|
| 出力パスがすでに存在する場合は削除します。 |
|
|
警告をエラーとして扱います。デフォルト値は |
|
|
生成されたポリシーの Egress ルールで使用するデフォルトの DNS ポートを指定します。デフォルト値は |