Ingress Gatewayデプロイメント・バインディングの作成

コントロール・プレーンでイングレス・ゲートウェイが作成されたら、IngressGatewayDeploymentリソースを使用してアプリケーション・クラスタにゲートウェイをデプロイします。これはKubernetesイングレス・リソースとは異なるため、イングレス・リソースと組み合せて使用するのではなく、イングレス・リソースの代替として使用する必要があります。このリソースは、イングレス・ゲートウェイをサービス・メッシュ・オペレータに支援するデプロイメントおよびポッドの管理をオフロードします。イングレス・ゲートウェイのデプロイメントは、Kubernetesベースのワークロードにのみ必要です。IngressGatewayDeploymentは、IngressGatewayとは異なり、クラスタに対してローカルであり、サービス・メッシュ・コントロール・プレーンにレプリケートされません。

コンソールの使用

  1. Oracle Cloud Infrastructureコンソールにログインします。
  2. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナおよびアーティファクト」で、「サービス・メッシュ」をクリックします。
  3. 「サービス・メッシュ」ページの左側にあるコンパートメントのリストから、コンパートメントを選択します。
  4. イングレス・ゲートウェイを含むメッシュ名をクリックします。
  5. 左側のナビゲーションで「イングレス・ゲートウェイ」をクリックします。
  6. 「イングレス・ゲートウェイの作成」をクリックします。
  7. イングレス・ゲートウェイの名前をクリックします。
  8. 「Kubernetesバインディングの作成」をクリックします。
  9. 「バインディングの作成」ダイアログで、Kubernetesバインディング・コードの詳細を指定します。
    • バインディング・ネームスペース(オプション):デプロイメントのKubernetesネームスペース。
    • プロキシ・ログ・レベル:次のいずれかを選択します。
      • エラー
      • 警告
      • 情報
      • デバッグ
      • オフ
    • 最大ポッド数:イングレス・ゲートウェイがスケール・アップできるポッドの最大数。
    • サービス・タイプ: 3つのオプションがあります:
      • Loadbalancer (デフォルト): すべてのトラフィックをサービスに転送するロード・バランサを使用してサービスを外部公開します
      • ClusterIP: クラスタ内部IPアドレスにサービスを公開します。この値を選択すると、サービスがクラスタ内からのみ到達可能になります。(デフォルトのサービス・タイプ)
      • NodePort: サービスに転送されたすべてのKubernetesノードにポートを公開します。
    • リスナー・ポート:サービスがリスニングするポートのリストを作成します。ポートごとに次を指定します。
      • プロトコル: TCP
      • ポート:使用可能なポートを選択します。
      • サービス・ポート:サービスのリスナー・ポート。
      警告

      メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。
    • ポートを追加するには、「+別のポートの追加」をクリックします。
    • ラベル:デプロイメントに渡されるキー/値ラベルのリスト。ラベルごとに、キーと値を指定します。
      • 「+別の条件ペアの追加」をクリックして、別のラベル・キー/値ペアを追加します。

CLIの使用

イングレス・ゲートウェイ・デプロイメントを作成するには、まずOCI CLIを使用してイングレス・ゲートウェイを作成します

次のいずれかのコマンドを使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

  • イングレス・ゲートウェイ名を使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

    kubectl apply -f - <<EOF
    apiVersion: servicemesh.oci.oracle.com/v1beta1
    kind: IngressGatewayDeployment
    metadata:
      name: <sample-ingress-gateway>-deployment
      namespace: <sample-namespace>
    spec:
      ingressGateway:
        ref:
          name: <sample-ingress-gateway>
      deployment:
        autoscaling:
          minPods: 1
          maxPods: 1
      ports:
        - protocol: TCP
          port: 8080
          serviceport: 80
      service:
        type: LoadBalancer
        annotations:
          oci.oraclecloud.com/load-balancer-type: "lb"
          service.beta.kubernetes.io/oci-load-balancer-shape: "400Mbps"
      secrets:
        - secretName: secret-tls-secret
    EOF
  • イングレス・ゲートウェイOCIDを使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

    kubectl apply -f - <<EOF
    apiVersion: servicemesh.oci.oracle.com/v1beta1
    kind: IngressGatewayDeployment
    metadata:
      name: <sample-ingress-gateway>-deployment
      namespace: <sample-namespace>
    spec:
      ingressGateway:
        id: <ocid_of_referenced_ig_created_from_cli>
      deployment:
        autoscaling:
          minPods: 1
          maxPods: 1
      ports:
        - protocol: TCP
          port: 8080
          serviceport: 80
      service:
        type: LoadBalancer
        annotations:
          oci.oraclecloud.com/load-balancer-type: "lb"
          service.beta.kubernetes.io/oci-load-balancer-shape: "400Mbps"
      secrets:
        - secretName: secret-tls-secret
    EOF