Lab 2 - NGINX Controller の冗長化
このラボのゴールはNGINX Controller clusterの3つ目のメンバーとしてホストを追加することです
本番環境では、我々のサービスに対し冗長性をもたせることが一般的です。複数のインスタンスを水平スケール・動作の管理を行うNGINX Controllerを用いた場合、単一の事象が様々な事象の引き金となることがあります。冗長構成の実装はコンプライアンスやルールの要素としても求められることがあります。この機能により複数のコントローラを用いて安定した環境を実現します
Important
想定時間: 15分
Note
このラボの手順はラボを実施する方がWindows jumphost – jumphost-1
から操作する手順を示しています。
接続方法についてはこちらを参照ください。 F5 Labs - Index
追加するNGINX Controllerのノードを作成する
jumphostのChromeで開かれているNGINX Controllerの管理画面を操作します。証明書エラーが表示されている場合には適切に操作をして画面を開いてください
もし開かれていない場合、Chromeブラウザを開いてください
BookmarkからNGINX Controller UIにアクセスしてください
NGINX Controller のadmin accountである、
Peter Parker
でログインしてくださいUsername Password peter@acmefinancial.net Peter123!@#
画面左上のナビゲーションバーを開き、ドロップダウンリストから Platform を選択してください
Cluster を開いてください
現在の “Cluster Configuration” を確認してください
Note
“Cluster Configuration” の項目は、クラスタを構成するNGINX Controllerインスタンスを示します。 FQDNはAPI Gateway podに割り当てる証明書で利用するcommon nameに該当します 例: APIエンドポイントやGUIの接続先として公開するサービスの名称
Important
“load balancer”設定は今後リリースされるNGINX Controllerにて設定可能となる予定です 追加の情報はラボの 追加情報 を参照してください
Note
“Nodes”として現在2つのNGINX Controller インスタンスが表示されています ( “controller-1” および “controller-2” に該当するノード)
クラスタにインスタンスを追加するため install command を実行する
“controller-3” インスタンスにログインしてください。”PuTTY” を開き、保存済みのホストより controller-3 を選択し、Open をクリックしてください
Important
もし、Puttyがサーバのホスト鍵に関する警告を示した場合、接続のため Yes をクリックしてください これは、ラボ環境の各ホストでユニークなhost keyを生成するため生じるものです
- installerディレクトリより、install.sh コマンドを実行してください。そしてプロンプトの表示に対し “y” (“yes” の意味) を入力してください。解凍するファイル名はディレクトリに保存しているものと一致している事を確認してください。異なる場合、適宜ファイル名を変更ください。
Important
こちらの操作はubuntuユーザで行います。ファイルはホームディレクトリ/home/ubuntuに配置しております
$ tar zxvf controller-installer-3.20.0.tar.gz $ cd controller-installer/ $ ./install.sh --join-key {{base64 encoded key}}
コマンドの実行結果として、クラスタに追加が完了したことがノードに表示されます
(Optional) Kubernetes Cluster の確認
もし、Kubernetes (k8s) について確認されたい場合、NGINX Controllerによって作成される k8s クラスタの情報を確認することが可能です
先程ログインした PuTTY の “controller-3” への接続を利用するか、新たにNGINX Controllerインスタンスのいずれか一つに接続してください
Important
もし、Puttyがサーバのホスト鍵に関する警告を示した場合、接続のため Yes をクリックしてください これは、ラボ環境の各ホストでユニークなhost keyを生成するため生じるものです
クラスタノードを表示します
kubectl get nodes
Note
コマンドの出力結果として、k8s クラスタに3つのノードが存在することが確認できます
デプロイされたポッドを確認する
kubectl get pods -n nginx-controller -o wide
Note
コマンドの出力結果として、NGINX Controllerが複数のPodを3つのノードに対してデプロイしていることが確認できます (“NODE”カラムを確認ください)
追加情報
“load balancer”設定は今後リリースされるNGINX Controllerにて設定可能となる予定です 追加の情報はラボの 追加情報 を参照してください
将来リリースされるNGINX Controllerでは、API Gateway Kubernetes serviceを公開するために利用するfloating self-ipが “load balancer” によって作成される予定です。 オンプレミス環境ではL2 Failoverをサポートする MetalLB の構成、クラウド環境では k8sの type LoadBalancer を用いたクラウドネイティブな外部向けロードバランサー機能を利用する想定となります。