第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>)?
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)?
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 -h
$ roxctl netpol generate -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow netpol generate
コマンドを使用してポリシーを生成します。roxctl netpol generate <folder-path>
$ roxctl netpol generate <folder-path>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes マニフェストがあるフォルダーのパスを指定します。
roxctl netpol generate
コマンドは、次のオプションをサポートしています。
| 説明 |
|
|
| 生成されたポリシーをターゲットフォルダーに保存します。ポリシーごとに 1 つのファイルです。 |
| 生成されたポリシーを保存して単一の YAML ファイルにマージします。 |
|
最初に発生したエラーで失敗します。デフォルト値は |
| 出力パスがすでに存在する場合は削除します。 |
|
警告をエラーとして扱います。デフォルト値は |
|
生成されたポリシーの Egress ルールで使用するデフォルトの DNS ポートを指定します。デフォルト値は |