機械翻訳について

2 NGINX Ingress Controllerモジュールのインストール

この章では、Oracle Cloud Native EnvironmentNGINX Ingress Controllerモジュールをインストールする方法について説明します。

前提条件

この項では、NGINX Ingress Controllerモジュールをインストールするための前提条件について説明します。

ロード・バランサ

NGINX Ingress Controllerにはロード・バランサが必要です。 環境にロード・バランサ・サービスを提供する必要があります。 ロード・バランサを作成する必要はありません(NGINX Ingress Controllerモジュールをインストールするときに1つ作成されます)。ただし、それを提供するモジュールをインストールする必要があります。

ベア・メタル環境にはMetalLB、Oracle Cloud Infrastructureを使用する場合は「Oracle Cloud Infrastructureロード・バランサ」を使用できます。

MetalLBのインストールの詳細は、「MetalLBモジュール」を参照してください。

Oracle Cloud Infrastructure Cloud Controller Managerモジュールのインストールの詳細は、Oracle Cloud Infrastructure Cloud Controller Managerモジュール」を参照してください。

NGINX Ingress Controllerモジュールのデプロイ

単一のolcnectl module createコマンドを使用して、NGINX Ingress Controllerモジュールの設定に必要なすべてのモジュールをデプロイできます。 このメソッドは、Kubernetesクラスタのデプロイと同時にNGINX Ingress Controllerモジュールをデプロイする場合に役立ちます。

Kubernetesモジュールの既存のデプロイメントがある場合は、NGINX Ingress Controllerモジュールのデプロイ時にそのインスタンスを指定できます。

この項では、NGINX Ingress Controllerモジュールのデプロイに必要な各コンポーネントのインストールについて説明します。

モジュールの作成時に使用可能なPlatform CLIコマンド・オプションの完全なリストは、「Platform Command-Line Interface」olcnectl module createコマンドを参照してください。

NGINX Ingress Controllerモジュールをデプロイするには:

  1. 環境をまだ設定していない場合は、モジュールをデプロイできる環境を作成します。 環境の設定の詳細は、「インストール」を参照してください。 この例の環境の名前は、myenvironmentです。

  2. Kubernetesモジュールをまだ設定またはデプロイしていない場合は、設定します。 Kubernetesモジュールを環境に追加する方法の詳細は、「Kubernetesモジュール」を参照してください。 この例のKubernetesモジュールの名前は、myclusterです。

  3. NGINX Ingress Controllerモジュールを作成し、--ingress-nginx-kubernetes-moduleオプションを使用して、myclusterという名前のKubernetesモジュールに関連付けます。 この例では、NGINX Ingress Controllerモジュールの名前はmyingress-nginxです。

    olcnectl module create \
    --environment-name myenvironment \
    --module ingress-nginx \
    --name myingress-nginx \
    --ingress-nginx-kubernetes-module mycluster 

    --moduleオプションは、モジュール・タイプを作成(ingress-nginx)に設定します。 NGINX Ingress Controllerモジュールの名前は、--nameオプション(この場合はmyingress-nginx)を使用して定義します。

    --ingress-nginx-kubernetes-moduleオプションは、Kubernetesモジュールの名前を設定します。

    Oracle Cloud Infrastructure Cloud Controller Managerモジュールを使用してロード・バランサを提供する場合は、--ingress-controller-service-annotationsオプションを含めて、NGINX Ingress Controllerとともに使用するロード・バランサを構成します。 ロード・バランサは、モジュールのインストール時に作成されます。

    --ingress-controller-service-annotations {annotation,...}

    たとえば、「Oracle Cloud Infrastructureロード・バランサ」をプロビジョニングするオプションの中には、カンマ区切りリストに次のものが含まれるものがあります:

    service.beta.kubernetes.io/oci-load-balancer-shape: flexible
    service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "100"
    service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "10"
    service.beta.kubernetes.io/oci-load-balancer-internal: "true"

    一部のOracle Cloud Infrastructureテナンシでは、ネットワーク・サブネットを識別するためにoci-load-balancer-subnet1注釈を含める必要もあります。たとえば:

    service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1..unique_ID" 

    含めることができる注釈の完全なリストは、「アップストリームのドキュメント」を参照してください。

    モジュールの追加時に必要なオプションの一部が含まれていないと、そのオプションを指定するように求められます。

  4. olcnectl module installコマンドを使用して、NGINX Ingress Controllerモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name myingress-nginx

    オプションで、--log-levelオプションを使用して、コマンド出力に表示されるロギングのレベルを設定できます。 デフォルトでは、エラー・メッセージが表示されます。 たとえば、次を含めると、すべてのメッセージが表示されるようにロギング・レベルを設定できます:

    --log-level debug

    ログ・メッセージは、操作ログとしても保存されます。 操作ログは、コマンドの実行中または完了時に表示できます。 操作ログの使用方法の詳細は、「Platform Command-Line Interface」を参照してください。

    NGINX Ingress Controllerモジュールは、Kubernetesクラスタにデプロイされます。

NGINX Ingress Controllerモジュール・デプロイメントの確認

オペレータ・ノードでolcnectl module instancesコマンドを使用して、NGINX Ingress Controllerモジュールがデプロイされていることを確認できます。 たとえば:

olcnectl module instances \
--environment-name myenvironment

出力は次のようになります:

INSTANCE                         MODULE                   STATE    
mycluster                        kubernetes               installed
myingress-nginx                  ingress-nginx            installed
...

MODULE列のingress-nginxのエントリは、installed状態であることに注意してください。

また、olcnectl module reportコマンドを使用して、モジュールに関する情報を確認します。 たとえば、myenvironmentmyingress-nginxという名前のNGINX Ingress Controllerモジュールを確認するには、次のコマンドを使用します:

olcnectl module report \
--environment-name myenvironment \
--name myingress-nginx \
--children

olcnectl module reportコマンドの構文の詳細は、「Platform Command-Line Interface」を参照してください。

コントロール・プレーン・ノードで、ingress-nginxネームスペースでNGINX Ingress Controllerデプロイメントが実行されていることを確認します:

kubectl get deployments --namespace ingress-nginx

出力は次のようになります:

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
myingress-nginx-controller   1/1     1            1           10m

ConfigMapの設定を表示することもできます。たとえば:

kubectl describe configmaps --namespace ingress-nginx myingress-nginx-controller

出力は次のようになります:

Name:         myingress-nginx-controller
Namespace:    ingress-nginx
Labels:       app.kubernetes.io/component=controller
              app.kubernetes.io/instance=myingress-nginx
              app.kubernetes.io/managed-by=Helm
              app.kubernetes.io/name=ingress-nginx
              app.kubernetes.io/part-of=ingress-nginx
              app.kubernetes.io/version=1.9.6
              helm.sh/chart=ingress-nginx-4.9.1
Annotations:  meta.helm.sh/release-name: myingress-nginx
              meta.helm.sh/release-namespace: ingress-nginx

Data
====
allow-snippet-annotations:
----
false

BinaryData
====

Events:
  Type    Reason  Age   From                      Message
  ----    ------  ----  ----                      -------
  Normal  CREATE  11m   nginx-ingress-controller  ConfigMap ingress-nginx/myingress-nginx-controller

ingress-nginxネームスペースでNGINX Ingress Controllerサービスが実行されていることを確認します:

kubectl get service --namespace ingress-nginx

出力は次のようになります:

NAME                                   TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)                      AGE
myingress-nginx-controller             LoadBalancer   10.104.157.191   203.0.113.11     80:30154/TCP,443:30394/TCP   12m
myingress-nginx-controller-admission   ClusterIP      10.105.18.193    <none>           443/TCP                      12m

サービス内の設定を表示することもできます。たとえば:

kubectl describe service --namespace ingress-nginx myingress-nginx-controller