Ingress Gatewayデプロイメント・バインディングの作成
コントロール・プレーンでイングレス・ゲートウェイが作成されたら、IngressGatewayDeployment
リソースを使用してアプリケーション・クラスタにゲートウェイをデプロイします。これはKubernetesイングレス・リソースとは異なるため、イングレス・リソースと組み合せて使用するのではなく、イングレス・リソースの代替として使用する必要があります。このリソースは、イングレス・ゲートウェイをサービス・メッシュ・オペレータに支援するデプロイメントおよびポッドの管理をオフロードします。イングレス・ゲートウェイのデプロイメントは、Kubernetesベースのワークロードにのみ必要です。IngressGatewayDeployment
は、IngressGateway
とは異なり、クラスタに対してローカルであり、サービス・メッシュ・コントロール・プレーンにレプリケートされません。
コンソールの使用
- Oracle Cloud Infrastructureコンソールにログインします。
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナおよびアーティファクト」で、「サービス・メッシュ」をクリックします。
- 「サービス・メッシュ」ページの左側にあるコンパートメントのリストから、コンパートメントを選択します。
- イングレス・ゲートウェイを含むメッシュ名をクリックします。
- 左側のナビゲーションで「イングレス・ゲートウェイ」をクリックします。
- 「イングレス・ゲートウェイの作成」をクリックします。
- イングレス・ゲートウェイの名前をクリックします。
- 「Kubernetesバインディングの作成」をクリックします。
- 「バインディングの作成」ダイアログで、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