F5 NGINX Management Suite は、NGINX データ プレーンを単一の画面から管理するためのモジュール ファミリです。 NGINX オープンソースおよび NGINX Plus インスタンスの管理を簡素化することで、NGINX Management Suite はapplicationsと API のスケーリング、セキュリティ保護、監視のプロセスを簡素化します。
コントロール プレーンとの通信とリモート構成管理を有効にするには、NGINX Management Suite から管理する各 NGINX インスタンスに NGINX エージェントをインストールする必要があります。
ベアメタルまたは仮想マシン(VM) 上で実行される NGINX インスタンスについては、ドキュメントにインストール手順が記載されています。 この投稿では、NGINX Plus と NGINX Agent 用の Docker イメージを構築して、Kubernetes またはその他のマイクロサービス インフラストラクチャにデプロイされた NGINX Plus インスタンスに NGINX Management Suite の範囲を広げる方法を説明します。
結果の Docker イメージに何を含めるかに応じて、3 つのビルド オプションがあります。
[編集者 – この投稿は、Kubernetes で Docker イメージを実行する手順 1 の手順を明確にし、 ACM_DEVPORTAL
フィールドを追加するために 2023 年 4 月に更新されました。]
NGINX Management Suite のインスタンス マネージャー モジュールのバージョン 2.8.0 以降をサポートする、NGINX Plus および NGINX Agent の Docker イメージを作成するために必要なリソースのGitHub リポジトリを提供します。
Docker イメージをビルドするには、次のものが必要です。
Docker イメージを実行するには、次のものが必要です。
kubectl
Docker イメージをビルドするには、次の手順に従ってください。
GitHub リポジトリをクローンします。
$ git clone https://github.com/nginxinc/NGINX-Demos Cloning into 'NGINX-Demos'...
remote: Enumerating objects: 126, done.
remote: Counting objects: 100% (126/126), done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 126 (delta 61), reused 102 (delta 37), pack-reused 0
Receiving objects: 100% (126/126), 20.44 KiB | 1.02 MiB/s, done.
Resolving deltas: 100% (61/61), done.
ビルド ディレクトリに変更します。
$ cd NGINX-Demos/nginx-agent-docker/
docker
ps
を実行して Docker が実行中であることを確認し、 build.shスクリプトを実行して必要なソフトウェアを Docker イメージに含めます。 基本オプションは次のとおりです。
‑C
– NGINX Plus ライセンス証明書ファイルの名前 (以下のサンプル コマンドではnginx-repo.crt
)‑K
– NGINX Plus ライセンス キー ファイルの名前 (以下のサンプル コマンドではnginx-repo.key
)‑t
– レジストリとターゲットイメージの形式
<レジストリ名> / <イメージ名> : <タグ>
(以下のサンプルコマンドではregistry.ff.lan:31005/nginx-plus-with-agent:2.7.0
)
‑n
– NGINX Management Suite インスタンスのベース URL (以下のサンプル コマンドではhttps://nim.f5.ff.lan
)追加オプションは次のとおりです。
‑d
– NGINX API Connectivity Manager を使用する場合の開発者ポータルのデータプレーン サポートを追加します。‑w
– NGINX App Protect WAF を追加さまざまなソフトウェアの組み合わせに対するコマンドは次のとおりです。
NGINX Plus および NGINX Agent:
$ ./scripts/build.sh -C nginx-repo.crt -K nginx-repo.key \
-t registry.ff.lan:31005/nginx-plus-with-agent:2.7.0 \
-n https://nim.f5.ff.lan
NGINX Plus、NGINX Agent、NGINX App Protect WAF ( ‑w
オプションを追加):
$ ./scripts/build.sh -C nginx-repo.crt -K nginx-repo.key \-t registry.ff.lan:31005/nginx-plus-with-agent:2.7.0 -w \
-n https://nim.f5.ff.lan
NGINX Plus、NGINX Agent、開発者ポータルのサポート ( ‑d
オプションを追加):
$ ./scripts/build.sh -C nginx-repo.crt -K nginx-repo.key \ -t registry.ff.lan:31005/nginx-plus-with-agent:2.7.0 -d \
-n https://nim.f5.ff.lan
以下は、基本イメージのビルドのサンプル トレースです。 最後に「ビルド
完了」
メッセージが表示されれば、ビルドが成功したことがわかります。
$ ./scripts/build.sh -C nginx-repo.crt -K nginx-repo.key -t registry.ff.lan:31005/nginx-plus-with-agent:2.7.0 -n https://nim.f5.ff.lan => Target docker image is nginx-plus-with-agent:2.7.0
[+] Building 415.1s (10/10) FINISHED
=> [internal] load build definition from Dockerfile
=> transferring dockerfile: 38B
=> [internal] load .dockerignore
=> transferring context: 2B
=> [internal] load metadata for docker.io/library/centos:7
=> [auth] library/centos:pull token for registry-1.docker.io
=> CACHED [1/4] FROM docker.io/library /centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
=> [internal] load build context
=> transferring context: 69B
=> [2/4] RUN yum -y update && yum install -y wget ca-certificates epel-release curl && mkdir -p /deployment /etc/ssl/nginx && bash -c 'curl -k $NMS_URL/install/nginx-agent | sh' && echo "A 299.1s
=> [3/4] COPY ./container/start.sh /deployment/
=> [4/4] RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt --mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key set -x && chmod +x /deployment/start.sh & 102.4s
=> exporting to image
=> exporting layers
=> writing image sha256:9246de4af659596a290b078e6443a19b8988ca77f36ab90af3b67c03d27068ff
=> naming to registry.ff.lan:31005/nginx-plus-with-agent:2.7.0
=> Build complete for registry.ff.lan:31005/nginx-plus-with-agent:2.7.0
次の手順に従ってデプロイメント マニフェストを準備し、Kubernetes 上の NGINX エージェントを使用して NGINX Plus を起動します。
好みのテキスト エディターを使用して、 manifests/1.nginx-with-agent.yamlを開き、次の変更を加えます (コード スニペットには、変更できる、または変更する必要があるデフォルト値がオレンジ色で強調表示されています)。
spec.template.spec.containers
セクションで、デフォルトのイメージ名 ( your.registry.tld/nginx-with-nim2-agent:tag
) を、 Docker イメージの構築の手順 3 で‑t
オプションを使用して指定した Docker イメージ名 (この場合はregistry.ff.lan:31005/nginx-plus-with-agent:2.7.0 ) に置き換えます。
spec:
...
template:
...
spec:
containers:
- name: nginx-nim
image: your.registry.tld/nginx-with-nim2-agent:tag
spec.template.spec.containers.env
セクションで、指定された各名前
の値
フィールドで次の置換を行います。
NIM_HOST
– (必須) デフォルト ( nginx-nim2.nginx-nim2
) を、NGINX Management Suite インスタンスの FQDN または IP アドレス (この場合はnim2.f5.ff.lan ) に置き換えます。NIM_GRPC_PORT
– (オプション) デフォルト (443
) を gRPC トラフィック用の異なるポート番号で使用します。NIM_INSTANCEGROUP
– (オプション) デフォルト ( lab
) を、NGINX Plus インスタンスが属するインスタンス グループに置き換えます。NIM_TAGS
– (オプション) デフォルト ( preprod,devops
) を、NGINX Plus インスタンスのタグのカンマ区切りリストに置き換えます。spec:
...
template:
...
spec:
containers:
...
env:
- name: NIM_HOST
...
value: "nginx-nim2.nginx-nim2"
- name: NIM_GRPC_PORT
value: "443"
- name: NIM_INSTANCEGROUP
value: "lab"
- name: NIM_TAGS
value: "preprod,devops"
また、 spec.template.spec.containers.env
セクションで、指定された条件が当てはまる場合は、次の名前
と値の
フィールドのペアのコメントを解除します。
NIM_WAF
およびNIM_WAF_PRECOMPILED_POLICIES
– NGINX App Protect WAF がイメージに含まれている ( Docker イメージの構築の手順 3 で-w
オプションを含めました) ため、値は"true"
です。ACM_DEVPORTAL
– App Connectivity Manager 開発者ポータルのサポートがイメージに含まれている ( Docker イメージの構築の手順 3 で-d
オプションを含めた) ため、値は"true"
です。spec:
...
template:
...
spec:
containers:
...
env:
- name: NIM_HOST
...
#- name: NAP_WAF
# value: "true"
#- name: NAP_WAF_PRECOMPILED_POLICIES
# value: "true"
...
#- name: ACM_DEVPORTAL
# value: "true"
指示に従ってnginxwithAgentStart.shスクリプトを実行し、マニフェストを適用して 2 つのポッド (レプリカによって指定されているとおり) を起動します。
2
マニフェストの仕様
セクションの指示に従って、それぞれ NGINX Plus と NGINX Agent を使用します。
$ ./scripts/nginxWithAgentStart.sh start$ ./scripts/nginxWithAgentStart.sh stop
2 つのポッドが実行中であることを確認します。各ポッドは、NGINX Plus インスタンスと NGINX エージェントを実行して、NGINX Management Suite コントロール プレーンと通信します。
$ kubectl get pods -n nim-test NAME READY STATUS RESTARTS AGE
nginx-nim-7f77c8bdc9-hkkck 1/1 Running 0 1m
nginx-nim-7f77c8bdc9-p2s94 1/1 Running 0 1m
NGINX Management Suite の NGINX インスタンス マネージャー GUI にアクセスし、2 つの NGINX Plus インスタンスがオンラインのステータスで実行されていることを確認します。 この例では、NGINX App Protect WAF は有効になっていません。
この記事で紹介した NGINX ソリューションをお試しいただくには、今すぐ30 日間の無料トライアルを開始するか、弊社までお問い合わせのうえ、ユースケースについてご相談ください。
NGINX Agentをダウンロードしてください。無料のオープンソースです。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 q。"