In our Red Hatとのパートナーシップを通じて、OpenShiftでDevOpsに対応したサービスデリバリーを実現する、高性能でスケーラブルな長期利用向けソリューションを必要とする企業ユーザーの支援に、引き続き注力しています。OpenShift向けNGINX Ingress Operatorは、OpenShift環境でデフォルトルーターと併用してKubernetes向けNGINX Plus Ingress Controllerをデプロイするための、サポートおよび認定済みの仕組みです。ポイント&クリックでインストールでき、自動アップグレードにも対応しています。Operator Lifecycle Manager(OLM)を活用して、NGINX Ingress Operatorのインストール、アップグレード、設定を行えます。
デフォルトルーターに加えてNGINX Plus Ingress Controllerを使用するメリットについては、ブログ「The Value of Red Hat + NGINX」で、F5とRed Hatのパートナーシップが、安全で拡張性に優れ、サポートが提供されるアプリケーションデリバリーをどのように実現するかをご覧ください。
このステップバイステップガイドでは、NGINX Ingress Operatorの利用を開始するために必要な情報をすべて説明します。開始する前に、OpenShift 4.3以降を実行しているOpenShiftクラスター環境への管理者アクセス権があることを確認してください。
Operatorのインストール
NGINX Ingress Operatorのインストール方法を動画でご紹介します。続いて、スクリーンショット付きの概要を掲載します。
OpenShiftコンソールからNGINX Ingress Operatorをインストールします。
- 管理者としてOpenShiftコンソールにログインします。
- 左側のナビゲーション列で[Operators]、続いて[OperatorHub]をクリックします。検索ボックスに「nginx」と入力し、表示された[Nginx Ingress Operator]ボックスをクリックします。

- 製品情報を確認したら、[Install]ボタンをクリックします。

- 表示された[Create Operator Subscription]ページで、Operatorをインストールするクラスターの名前空間を指定します(この例ではnginx-ingress)。また、実行中のOperatorインスタンスを管理者が手動で承認しなくても自動的に更新できるように、[Automatic]のラジオボタンを[Approval Strategy]で選択します。[Subscribe]ボタンをクリックします。

- インストールが完了したら、ターミナルで次のコマンドを実行し、Operatorが稼働していることを確認します。
# oc get pods –n nginx-ingressNAME READY STATUS RESTARTS AGE
nginx-ingress-operator-dd546d869-xxxxx 1/1 Running 0 7m29s- 左側のナビゲーション列で[Installed Operators]をクリックします。開いたページの[Provided APIs]列で、NginxIngressControllerリンクをクリックします。NginxIngressControllerは、OperatorがOpenShiftクラスターにNGINX Plus Ingress Controllerをデプロイするために使用するカスタムリソースです。

- 表示されたページで、次の例のようなマニフェストをテキストフィールドに貼り付け、[Create]ボタンをクリックしてNGINX Plus Ingress Controller for Kubernetesをデプロイします。TLS証明書とキーを含むSecretを
defaultSecretフィールドとwildcardTLSフィールドに埋め込んでいる点に注意してください。これにより、IngressポリシーにSecretを含めることなく、TLS終端とパススルーが可能になります。NGINX Plus Ingress Controller for Kubernetesの設定時に指定できる多数のオプションについては、GitHubリポジトリをご覧ください。
apiVersion: k8s.nginx.org/v1alpha1kind: NginxIngressController
metadata:
name: my-nginx-ingress-controller
namespace: nginx-ingress
spec:
enableCRDs: true
image:
pullPolicy: Always
repository: registry.hub.docker.com/nginx/nginx-ingress
tag: edge
nginxPlus: false
serviceType: LoadBalancer
type: deployment
replicas: 2
defaultSecret: nginx-ingress/default-server-secret
wildcardTLS: default/app-secret
configMapData:
error-log-level: debug
enableTLSPassthrough: true
globalConfiguration: nginx-ingress/nginx-configuration- デプロイを確認するには、ターミナルで次のコマンドを実行します。出力に示されているように、前の手順で使用したマニフェストにより、NGINX Plus Ingress Controllerのレプリカが2つデプロイされ、
LoadBalancerサービスを介して公開されています。(読みやすくするため、getコマンドの出力は複数行に分けて表示しています。)
# oc get pods -n nginx-ingressNAME READY STATUS RESTARTS AGE
my-nginx-ingress-controller-579f455d7d-xxxxx 1/1 Running 0 5m53s
my-nginx-ingress-controller-579f455d7d-xxxxx 1/1 Running 0 5m53s
nginx-ingress-operator-dd546d869-xxxxx 1/1 Running 0 56m
# oc get svc –n nginx-ingress
my-nginx-ingress-controller LoadBalancer 172.xx.48.254 <pending> ...
nginx-ingress-operator-metrics ClusterIP 172.xx.209.190 <none> ...
... 80:32028/TCP,443:31973/TCP 10m
... 80:32028/TCP,443:31973/TCP 10m- 次のコマンドを実行し、NGINX Plus Ingress Controllerがリクエストに応答することを確認します。
public_IP_addressには、NGINX Plus Ingress Controllerを公開するLoadBalancerサービスの外部IPアドレスを指定します。この時点では、コマンドから404NotFoundが返されます。これは、バックエンドPodにトラフィックをルーティングするIngressリソースをまだ構成およびデプロイしていないためです。詳細については、ドキュメントを参照してください。
# curl public_IP_address <html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.13.4</center>
</body>
</html>- エンドユーザーはNginxIngressControllerリソースのマニフェストを複数送信でき、マニフェストごとに個別のデプロイメントが作成されることに注意してください。Operatorは、異なる名前空間へのデプロイメントにも対応しています。名前空間は、マニフェストの
metadataセクションで指定できます。
次のステップ
NGINX Ingress Operatorは、特に以下の点でNGINX Plus Ingress Controllerのデプロイ管理を支援します。
- 構成 – わずかな入力パラメーターと1つのマニフェストだけで基本的なデプロイを開始
- スケーリング – レプリカをシームレスに追加・削除
- アップグレード – ダウンタイムなしのローリングアップデートを活用
- アンインストール – OperatorおよびKubernetes Ingress Controllerのすべてのオブジェクトが適切かつ安全に削除されるようにします
NGINX Plus Ingress Controllerの準備とデプロイが完了したら、OpenShiftでNGINX Plusの高度な機能を使用するために、ドキュメントおよびGitHubリポジトリをご覧ください。
まだお客さまでない場合は、NGINX PlusとIngress Controllerをお試しいただける30日間の無料トライアルを今すぐ開始するか、ユースケースについてご相談ください。
Red Hat + NGINXがもたらす価値

著者について

関連するブログ記事
チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。
AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。
JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。
F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。
NGINX PlusによるAWS Auto Scalingグループの負荷分散
新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります