Runtime Fabric での Red Hat OpenShift ルートの設定

Runtime Fabric では、Mule アプリケーションのイングレスエンドポイントを作成するための Red Hat OpenShift ルートを設定できます。

始める前に

Runtime Fabric でのルートの設定は、イングレスリソースの設定と密接に連携しています。ルートを作成する前に、以下を確認してください。

Red Hat OpenShift ルートのイングレスリソーステンプレートの例

次の例では、networking.k8s.io/v1 API の Runtime Fabric イングレスリソーステンプレートを作成するために Kubernetes イングレス仕様を変更する方法を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-rtf-ingress
  namespace: rtf (1)
  labels:
spec:
  ingressClassName: rtf-openshift (2)
  tls: (3)
  - hosts:
      - app-name.example.com
    secretName: example-tls
  rules:
    - host: app-name.example.com (4)
      http:
        Paths: (5)
        - path: / (6)
          pathType:
          backend: (7)
            serviceName: service-name
            servicePort: 80
yaml

この例について、次の点に注意してください。

1 このテンプレートは ​rtf​ 名前空間に配置する必要があります。
2 ingressClassName​ は、​rtf-​ のプレフィックスを付けて、​rtf-openshift​ に設定する必要があります。

Runtime Fabric では ​rtf-​ プレフィックスを使用してオブジェクトをテンプレートとして認識します。​spec.ingressClassName​ 項目または ​kubernetes.io/ingress.class​ アノテーションの ​rtf-​ プレフィックスが付いたテンプレートは、Runtime Fabric エージェントのみにコンシュームされ、実際のイングレスコントローラーにはコンシュームされません。イングレスコントローラーでは、ベンダー固有の名前 (​openshift​ など) を使用する ​spec.ingressClassName​ 値が含まれるリソースのみを検出します。

3 TLS は省略可能です。テンプレートで指定した場合、​route.openshift.io/termination:​ アノテーションを設定しない限り、Runtime Fabric はデフォルトでエッジ終端のルートを作成します。
4 アプリケーションをデプロイすると、Runtime Fabric は ​app-name​ プレースホルダーのパラメーターを実際のアプリケーション名に置き換えます。これにより、サブドメインにワイルドカードが含まれない場合に各エンドポイント名を一意にすることができます。
5 テンプレートにはホストの複数のパスを含めることができますが、Runtime Manager にはホストの最初のパスルールのみが表示されます。
6 Runtime Fabric は、Mule アプリケーションのイングレスを設定するときに [Path (パス)] 項目に追加した値で ​path​ パラメーター値を置き換えます。​path​ はプレースホルダーではありません。
7 これらのプレースホルダー値は Kubernetes 検証に必須ですが、実際の値は Runtime Fabric によって使用されません。

省略可能なプレースホルダー値のリストは、​「テンプレートのプレースホルダー」​を参照してください。

Runtime Fabric でのルートの設定

ルートを設定するには、次のタスクを実行します。

  1. イングレスリソーステンプレートを作成してクラスターで適用します。

  2. Mule アプリケーションのイングレスを設定します。

イングレスリソーステンプレートを作成してクラスターで適用する

テンプレート例​を使用してルート用のイングレスリソースを作成します。

  1. テンプレート例を新しいファイルにコピーして、コメントに変更します。

  2. ファイル名に ​.yaml​ 拡張子を含めます。

  3. イングレステンプレートを適用するには、次のコマンドを実行します。

    kubectl apply -f <TEMPLATE_FILENAME.yaml>
    copy

テンプレートに問題がある場合、Kubernetes ​api-server​ によってエラーが返され、コマンドは失敗します。

テンプレートを正常に適用したら、次のコマンドを使用して表示できます。

kubectl describe ingress [Ingress Name] -n rtf
copy

Mule アプリケーションのイングレスを設定する

Runtime Manager を使用して Runtime Fabric にデプロイするときに、アプリケーションのイングレスを設定します。アプリケーションに使用可能なホストおよびパスは、Runtime Fabric システム管理者が設定したイングレスリソーステンプレートから取得されます。

この手順を使用してテストアプリケーションをデプロイし、イングレスリソーステンプレートを検証することもできます。

次に、アプリケーションのイングレスを設定する方法の概要を示します。 完全なデプロイメント手順については、​「Runtime Fabric に Mule アプリケーションをデプロイする」​を参照してください。 Mule Maven プラグインを使用してアプリケーションを Runtime Fabric にデプロイする場合、ブロック ​http​ のデプロイメント設定パラメーター ​publicUrl​ で複数のエンドポイントのカンマ区切り文字列を受け入れることができます。 詳細は、​「deploymentSettings パラメーターリファレンス」​を参照してください。

  1. [Runtime Manager] に移動し、ドキュメントに従ってアプリケーションを Runtime Fabric にデプロイします。

  2. [Ingress (イングレス)]​ を選択します。

  3. [Host (ホスト)]​ ドロップダウンリストからアプリケーションのホストを選択します。

  4. ホスト名にワイルドカードが使用されている場合、​[Subdomain (サブドメイン)]​ 項目でサブドメインを追加します。

    [Subdomain (サブドメイン)]​ 項目はホスト名にワイルドカードが使用されている場合のみ使用できます。

  5. [Path (パス)]​ 項目で、アプリケーションのエンドポイントに URL パスを追加します。

    エンドポイントのホスト項目とパス項目が入力されます
  6. エンドポイントをプレビューするには、生成されたプレビューリンクをクリックします。

  7. 別のエンドポイントを追加するには、​[+ Add Endpoint (+ エンドポイントを追加)]​ をクリックします。

  8. 準備ができたら、​[Deploy application (アプリケーションをデプロイ)]​ をクリックします。

アプリケーションをデプロイすると Runtime Manager は、アプリケーションにトラフィックを転送するルートを、指定されたテンプレートに従って作成します。

パススルー TLS 終端を設定する

パススルー TLS 終端を含めるようにイングレスリソーステンプレートを設定できます。

パススルー TLS 終端を使用するパスの設定については、 Red Hat OpenShift ドキュメントLeaving the Site​を参照してください。

イングレスリソーステンプレートを作成する手順は、次のとおりです。 . テンプレートで、次のアノテーションを追加します。

+

route.openshift.io/termination: passthrough
  1. テンプレートで、次のパラメーター値を設定します。

    • path: ''​ (空の文字列) を設定

    • pathType: ImplementationSpecific​ を設定

  2. Runtime Manager で、Mule アプリケーション用のイングレスを設定するときに、​Path​ 項目に ​/​ を含めます。

アプリケーションエンドポイントに、パススルー TLS 終端の HTTPS が表示されます。