2.2. クラスター外のトラフィックにサービスを公開することについて


OpenShift クラスターの外部からのトラフィックがメッシュ内のサービスにアクセスできるようにするには、Service タイプを LoadBalancer に設定するか、OpenShift Router を使用して、ゲートウェイプロキシーを公開する必要があります。

Kubernetes ロードバランシングを使用して、受信トラフィックを受信ゲートウェイ経由で直接処理すると、データ暗号化に関連するレイテンシーを削減できます。受信ゲートウェイで暗号化を管理することで、メッシュ内で発生しがちな中間的な復号化と再暗号化の処理を回避し、レイテンシーを削減できます。このアプローチにより、メッシュトラフィックは 1 回だけ暗号化および復号化できるため、一般的にはより効率的となります。

OpenShift Router は Ingress トラフィックを管理するための標準的なアプローチを提供し、ルーターを使用して同じ方法ですべてのクラスター Ingress トラフィックの証明書を管理できます。ただし、OpenShift Router は、受信トラフィックとメッシュアプリケーションの間に追加のホップを導入します。通常、トラフィックをルーターで復号し、サービスメッシュ Ingress ゲートウェイで再暗号化することでルーティングしますが、これによりレイテンシーが発生します。

2.2.1. OpenShift Routes を使用してゲートウェイをクラスター外のトラフィックに公開する

OpenShift Routes を使用すると、ゲートウェイをクラスター外部のトラフィックに公開できます。このアプローチは、ゲートウェイをクラスター外部のトラフィックに公開する必要がある場合に、Kubernetes ロードバランサーサービスの代わりに使用できます。

前提条件

  • Istio Gateway と VirtualService リソースを使用してサービスを公開する の手順を完了している。

手順

  1. 次のコマンドを実行して、Service タイプが ClusterIP に設定されていることを確認します。

    $ oc patch service  -n  -p '{"spec": {"type": "ClusterIP"}}'
  2. httpbin サービスの Route を定義する httpbin-route.yaml という名前の YAML ファイルを作成します。

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: httpbin
      namespace: <gateway_namespace>
    spec:
      host: httpbin.example.com
      port:
        targetPort: http2
      to:
        kind: Service
        name: <gateway_name>
        weight: 100
      wildcardPolicy: None
  3. 以下のコマンドを実行して、YAML ファイルを適用します。

    $ oc apply -f httpbin-route.yaml
  4. Ingress ルーターを介してクラスターの外部から httpbin サービスにアクセスできることを確認します。クラスターが実行されている環境に合わせて、INGRESS_HOST 変数を適切に設定してください。

    1. クラスターが AWS 上で実行されている場合は、次のコマンドを実行して INGRESS_HOST 変数を設定します。

      $ INGRESS_HOST=$(oc get service router-default -n openshift-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    2. クラスターが GCP または Azure 上で実行されている場合は、次のコマンドを実行して INGRESS_HOST 変数を設定します。

      $ INGRESS_HOST=$(oc get service router-default -n openshift-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    3. 次のコマンドを実行して、Ingress ルーターのホストを使用して httpbin サービスに curl リクエストを送信します。

      $ curl -s -I -H Host:httpbin.example.com http://$INGRESS_HOST/headers
  5. 応答に HTTP/1.1 200 OK ステータスがあることを確認します。これは、リクエストが成功したことを示します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.