NGINX Controllerをインストールしてみた!
今回はNGINX Plusを管理する製品「NGINX Controller」についてご説明します。
みなさん、こんにちは。
東京エレクトロンデバイスでエンジニアをやっているあつふみです。
今日は、grasys様とリレー形式ブログTED第二弾ということで、今度はNGINX Controllerについて紹介したいと思います。ちなみに前回grasys様が書いたブログは、こちらから確認できます。NGINXのことをとても分かりやすく纏めてくれています。
grasys様のブログ
4月27日 NGINX Plusの検証をした!
さて、それでは本題のNGINX Controllerについてです。NGINX Controllerとは、NGINX Plusを管理する製品です。オンプレ、クラウドなどの様々な環境にデプロイされたNGINX Plusを一元的に管理することができます。
具体的に何ができるかというと、CPUやHTTPステータスコードなどのメトリックを収集したり、NGINX Plusの死活監視をしたり、NGINX ControllerのWebUIから設定を投入できたりと、幅広い使い方ができます。
今回は、このNGINX Controllerをインストールするところを紹介したいと思います。
NGINX Controller Imageの選択
実はNGINX Controllerには、以下のように2つ種類があります。
- NGINX Controller Application Delivery Module
https://www.nginx.com/products/nginx-controller/load-balancer-application-delivery/ - NGINX Controller API Management
https://www.nginx.com/products/nginx-controller/api-management/
NGINX Controller Application Delivery(ADC)Moduleは、NGINX PlusのConfigurationをWebUIから柔軟に設定することができます。
一方でNGINX Controller API Management(APIM)は、APIの管理、公開、開発者のためのポータルなどを実装することができる開発者向けに特化した製品です。
今回は、NGINX Controller ADCをインストールしたいと思います。ちなみにNGINX Controller APIMでもインストール方法は同じです。
NGINX Controller ADMのインストール環境
今回私がインストールした環境です。
AWS:EC2 Ubuntu 20.04 LTS – Focal
インスタンス:c5a.2xlarge
ストレージ:SSD(250GB)
ちょっとリッチなスペックでやっています。ちなみに、実行環境に必要な要件は以下のリンクにあります。
NGINX Controllerのイメージダウンロード
イメージをダウンロードするには、まず以下のMyF5でアカウントを作る必要があります。
https://account.f5.com/myf5/signin/register
アカウント作成後、こちらをクリックして、NGINX Controller ADCの最新バージョンをダウンロードします。それと、評価ライセンスもMyF5からダウンロード可能です。Trialとなっているページからダウンロードできます。まずは触ってみる!ということであれば、ライセンス期限がない「NGINX Controller Freemium」がおすすめです。
NGINX Controllerをインストール
- まずダウンロードしたイメージファイル(controller-installer-.tar.gz)を該当マシンに転送します。
次のコマンドでファイルを展開します。
$ tar xzf controller-installer-<version>.tar.gz
- 次に展開したディレクトリに移動し、prereqsオプションを指定してスクリプトを実行します。
$ cd controller-installer/
$ ./helper.sh prereqs
Fetching the required packages: bash coreutils curl gawk gettext grep gzip jq less openssl sed tar mount util-linux iptables socat ebtables ethtool iproute2 conntrack.
Fetching the required packages: apt-transport-https ca-certificates curl software-properties-common.
Installing Docker Community Edition.
ちなみにrootで実行しようとするとエラーになるので注意です
Do not run the NGINX Controller command helper using sudo.
※./helper.sh prereqsを実行することで必要なシステムパッケージなどをインストールしてくれます。
- 次にDockerのlog roationの設定が推奨なので設定しておきます。
daemon.jsonというファイルを作成し、以下の内容を記載して保存しておく
$ sudo vim /etc/docker/daemon.json
---
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"labels": "test",
"env": "os,customer"
}
}
- 次にインストールスクリプトを実行します。
インストールが始めると6と7の項目で[local, nfs, aws]と聞かれます。localが推奨なので、localと入力します。また10で End User License Agreementを確認する必要があります。その後、SMTPのシステム情報やadminのメールアドレスやパスワード(ログインするときの情報になります)など聞かれますので任意の値を入力します。
以下、コマンド実行時の例になります。$ cd controller-installer
$ ./install.sh
--- This script will install the NGINX Controller system ---
1. Checking for existing installation...
Install logs will be stored in /var/log/nginx-controller/nginx-controller-install.log
2. Checking required ports... OK
3. Attempting to detect your Operating System... Found focal
<以下略>
OK, everything went just fine!
Thank you for installing NGINX Controller.
You can find your installation in /opt/nginx-controller.
You can find the install log file in /var/log/nginx-controller/nginx-controller-install.log.
Access the system using your web browser at https://wwwctrl.nginx.dev.tedlab.net.
Documentation is available at https://wwwctrl.nginx.dev.tedlab.net/docs/.
Warning!
NGINX Controller will create a backup of your cluster configuration and encryption keys.
You’ll need this backup if you ever need to restore the NGINX config database on top of a new NGINX Controller installation.
You should store this backup in a secure location.
Backup file: /opt/nginx-controller/cluster-backup/cluster-config-backup-06-12-2021.tgz
-
インストール完了後、https://[IPアドレス]/platform/licenseにログインします。
そして、Upload license fileにチェックをいれ、Choose a file…でライセンスファイルを アップロードし、saveしたら完了です。
あとは管理したいNGINX Plusを登録することで、メトリクス情報をみたりWebUIから設定を投入できるようになります。その方法はまた別の記事に書きたいと思います。
今回の私のブログはここまでとなります。
次はgrasys様です。よろしくお願いします!
<< grasys×F5×TED ブログ一覧 >>
4月27日 NGINX Plusの検証をした!(grasys様)
6月 2日 grasys×F5×TEDが徹底解析! NGINX Plusの仕組みがよくわかる!(TED)
6月9日 NGINX Plusのインストール方法とLBの基本設定(grasys様)
6月16日 NGINX PlusでJWT認証をやってみた!(TED)
6月22日 NGINX PlusのLB機能:アクティブヘルスチェック&セッション維持 (grasys様)
6月30日 NGINX Controllerをインストールしてみた!(TED)
7月7日 NGINX PlusのLB機能:DNSディスカバリー (grasys様)
7月14日 NGINX Plus Ingress Controller を触ってみた (TED)
7月21日 NGINX WAFを試してみよう! (TED)
【 株式会社grasys:https://www.grasys.io/ 】
大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。