APIG Ingress は Higress の Enterprise Edition です。Nginx Ingress と互換性があり、低コスト、高セキュリティ、緊密な統合、高可用性などのメリットを提供します。APIG Ingress を使用して、Container Service for Kubernetes (ACK) および Container Compute Service クラスターにアクセスできます。
セキュリティ上の理由から、APIG Ingress では kube-system 名前空間内のサービスを公開することはできません。
前提条件
APIG Controller は ACK マネージドクラスターにのみインストールできます。
バージョン 1.18 以降の ACK マネージドクラスターが作成されていること。クラスターをアップグレードするには、「クラスターの手動アップグレード」をご参照ください。
APIG Controller に権限が付与されていること。ACK マネージドクラスターの場合、権限付与リンク をクリックして、必要な権限を付与できます。
手順 1:APIG Controller のインストール
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、アドオン管理 をクリックします。
[コンポーネント管理] ページで、検索ボックスに
APIGと入力します。[APIG Controller] カードで、[インストール] をクリックします。[コンポーネント APIG Controller のインストール] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。
作成:
apig.small.x1 仕様の従量課金制クラウドネイティブ API ゲートウェイインスタンスが自動的に作成されます。
既存のインスタンスを使用:
リストから従量課金制のクラウドネイティブ API ゲートウェイインスタンスを選択します。インスタンスはコンテナークラスターと同じ VPC 内にあり、他のクラスターに関連付けられていない必要があります。
コンポーネントのインストールが [前提条件チェックに失敗しました] エラーで失敗した場合は、APIG Controller に権限を付与する必要があります。
コンポーネントがインストールされているか確認します。
コンポーネントがインストールされると、デフォルトで ApigConfig リソースとゲートウェイインスタンスが作成されます。どちらも
apig-controller-pro-{clusterid}という名前です。[ワークロード] > [カスタムリソース] に移動します。[リソースオブジェクトブラウザー] タブをクリックします。[API グループ] 検索ボックスに
apigと入力します。ApigConfig の [アクション] 列で、[YAML の編集] をクリックしてApigConfigのステータスを表示します。3〜5 分待って、phaseフィールドの値が [Listening] になっていることを確認します。これは、クラウドネイティブ API ゲートウェイが作成、実行され、IngressClass が apig に設定されているクラスター内の Ingress リソースを自動的にリッスンしていることを示します。ApigConfigのステータスは、Pending > Running > Listening の順に変化します。各ステータスの説明は次のとおりです。Pending:クラウドネイティブ API ゲートウェイが作成中です。このプロセスには約 3 分かかります。
Running:クラウドネイティブ API ゲートウェイが作成され、実行中です。
Listening:クラウドネイティブ API ゲートウェイが実行中で、クラスター内の Ingress リソースをリッスンしています。
Failed:クラウドネイティブ API ゲートウェイが無効な状態です。詳細については、Status セクションの Message フィールドをご参照ください。
重要作成モードでは、APIG Controller をインストールすると、デフォルトで ApigConfig リソースが作成されます。このリソースのライフサイクルは、クラウドネイティブ API ゲートウェイインスタンスにバインドされます。ApigConfig リソースを削除すると、対応するクラウドネイティブ API ゲートウェイインスタンスも削除されます。ApigConfig リソースは削除しないでください。
APIG Controller をインストールする前に、apig という名前の IngressClass リソースがクラスターにすでに存在する場合、インストールしても ApigConfig リソースやクラウドネイティブ API ゲートウェイインスタンスは自動的に作成されません。
クラウドネイティブ API ゲートウェイコンソールにログインします。対応するリージョンで、
apig-controller-pro-{clusterid}という名前のクラウドネイティブゲートウェイインスタンスが見つかります。
手順 2:バックエンドサービスのデプロイ
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[デプロイメント] ページで、[YAML から作成] をクリックします。次の YAML テンプレートを使用して、
httpbinという名前の Deployment とhttpbinという名前の Service をデプロイします。apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: default spec: replicas: 1 selector: matchLabels: app: httpbin template: metadata: labels: app: httpbin version: v1 spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/mse-ingress/go-httpbin args: - "--version=v1" imagePullPolicy: Always name: httpbin --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: default spec: ports: - port: 8080 protocol: TCP selector: app: httpbinDeployment と Service がデプロイされていることを確認します。
左側のナビゲーションウィンドウで、 を選択します。
httpbinという名前の Deployment が作成されます。Podsフィールドに1/1と表示されると、Deployment はデプロイされています。左側のナビゲーションウィンドウで、 を選択します。
httpbinという名前の Service が作成されている場合、Service はデプロイされています。
手順 3:APIG Ingress の設定
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
[Ingress] ページで、[Ingress の作成] をクリックします。
[Ingress の作成] ダイアログボックスで、[ゲートウェイタイプ] を [APIG Ingress] に設定し、関連するバックエンドサービスとアノテーションを設定してから、[OK] をクリックします。
説明[Ingress クラス] を
apigに設定します。ルーティングルールで、[プレフィックスマッチ] を選択し、[パス] を/に設定し、リクエストをhttpbinサービスに転送するようにルールを設定します。クラウドネイティブ API ゲートウェイコンソールにログインします。対応するクラウドネイティブ API ゲートウェイインスタンスに、名前に {gwid}-ingress を含む API が見つかります。
手順 4:サービスへのアクセス
Ingress エンドポイントから Network Load Balancer (NLB) のドメイン名を取得するか、ゲートウェイからパブリック IP アドレスを取得します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
[Ingress] ページで、Ingress のエンドポイントを表示します。
サービスをテストするには、ブラウザまたはコマンドラインツールを使用して
<Endpoint>/versionまたは<ゲートウェイのパブリック IP アドレス>/versionにアクセスします。たとえば、ブラウザにenv-******-cn-hangzhou.alicloudapi.com/versionと入力します。
関連ドキュメント
APIG Ingress の特徴と仕組みの詳細については、「APIG Ingress の管理」をご参照ください。