すべてのプロダクト
Search
ドキュメントセンター

:ALBマルチクラスタゲートウェイの概要

最終更新日:Dec 05, 2024

Distributed Cloud Container Platform for Kubernetes (ACK One) が提供するApplication Load Balancer (ALB) マルチクラスターゲートウェイは、ALB Ingressのマルチクラスターモードです。 ほとんどの場合、ALBマルチクラスタゲートウェイは、いくつかの違いを除いて、ALB Ingressのシングルクラスタモードと同じ方法で使用できます。 このトピックでは、マルチクラスターALB Ingressについて説明します。

ALBイングレス

ALB Ingressは、Application Load Balancer (ALB) に基づいて開発され、Container Service for Kubernetes (ACK) クラスターのサービスの統合されたイングレスとして機能します。 NGINX Ingressと比較して、ALB Ingressは完全にホストされています。 ALB Ingressを手動で維持する必要はありません。 ALB Ingressは、KubernetesクラスターのIngressリソースの変更を自動的に検出し、事前定義されたルーティングルールに基づいてトラフィックをバックエンドサービスに配信できます。 さらに、ALB Ingressは強力なオートスケーリングメカニズムを採用して、変動するトラフィックに自動的に適応し、システムの安定性を確保しています。 次の図は、ALBインスタンスとマルチクラスターALB Ingressの論理的な関係を示しています。

image
  • ALB Ingressコントローラ: Ingressリソースを管理するコンポーネント。 ALB Ingressコントローラーは、クラスター内のAPIサーバーを使用してIngressリソースの変更を動的に取得し、Ingressルーティングルールに基づいてALBインスタンスを更新します。 ALB Ingressコントローラは、ALBインスタンスの制御プレーンである。 ALBインスタンスは管理しますが、トラフィックは分散しません。 トラフィックはALBインスタンスによって分散されます。

  • AlbConfig: AlbConfigは、ALB Ingressコントローラによって作成されたCustomResourceDefinition (CRD) である。 AlbConfigのパラメーターは、ALBインスタンスの設定を定義します。 各AlbConfigは、1つのALBインスタンスに対応する。 ALBインスタンスは、トラフィックをバックエンドサービスに分散するための入口として機能します。 ALBインスタンスはALBによって完全にホストされます。 NGINX Ingressコントローラーと比較して、ALB IngressはO&Mフリーで非常に弾力性があります。

  • IngressClass: IngressClassは、Ingressコントローラのクラスまたは識別子を定義するKubernetes Ingressの属性です。 IngressClassesを使用すると、クラスター内で複数のIngressコントローラーを使用し、各Ingressにコントローラーを指定できます。

  • Ingress: Ingressは、外部トラフィックルーティング規則とアクセス制御規則を定義するリソースオブジェクトです。 ALB Ingressコントローラーは、Ingressリソースの変更を監視し、ALBインスタンスを更新してトラフィックを分散します。

  • サービス: Kubernetesでは、ポッドは一時的で不安定なリソースと見なされます。 サービスは、同じ機能を持つポッドに対して安定した一元化されたエントリを提供します。 他のアプリケーションまたはサービスは、ポッドの変更を心配することなく、サービスの仮想IPアドレスとポートを使用してポッドと通信できます。 サービスの詳細については、「はじめに」をご参照ください。

AlbConfigの設定

マルチクラスタモードでは、albインスタンスに関連付けられ、トラフィックの分散に使用されるクラスタを指定するために、ALB. ingress.kub ernetes.io/remote-clustersアノテーションがAlbConfigに追加されます。 以下のAlbConfigは、マルチクラスタゲートウェイを作成するために使用されます。

説明
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: ackone-gateway-demo
  annotations:
    # Add the associated cluster that is used to distribute traffic to the ALB multi-cluster instance. 
    alb.ingress.kubernetes.io/remote-clusters: ${cluster1},${cluster2}
spec:
  config:
    name: one-alb-demo
    addressType: Internet
    addressAllocatedMode: Fixed
    zoneMappings:
    - vSwitchId: ${vsw-id1}
    - vSwitchId: ${vsw-id2}
  listeners:
  - port: 8001
    protocol: HTTP

下表に、各パラメーターを説明します。

パラメーター

必須 / 任意

説明

metadata.name

AlbConfigの名前。

metadata.annotations:

alb.ingress.kubernetes.io/remote-clusters

ALBマルチクラスタゲートウェイに追加される関連クラスタのリスト。 ここにリストされているクラスターIDはフリートインスタンスに関連付けられています。

spec.config.name

不可

ALBインスタンスの名前。

spec.config.addressType

不可

ALBインスタンスのネットワークタイプ。 有効な値:

  • インターネット (デフォルト): パブリックネットワーク。 ALBインスタンスはインターネットにサービスを提供し、インターネット経由でアクセスできます。

    説明

    ALBインスタンスがインターネット接続サービスを提供できるようにするには、ALBインスタンスをelastic IPアドレス (EIP) に関連付ける必要があります。 インターネット接続のALBインスタンスを使用している場合、関連するEIPのインスタンス料金と帯域幅またはデータ転送料金が課金されます。 詳細については、「従量課金」をご参照ください。

    イントラネット: プライベートネットワーク。 ALBインスタンスはVPC内でサービスを提供し、インターネット経由でアクセスすることはできません。

spec.config.zoneMappings

ALBインスタンスに関連付けられているvSwitchのID。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。

説明
  • 指定されたvSwitchは、ALBインスタンスでサポートされているゾーンにデプロイし、クラスターと同じVPCにデプロイする必要があります。 ALBでサポートされているリージョンとゾーンの詳細については、「ALBが利用可能なリージョンとゾーン」をご参照ください。

  • ALBはマルチゾーン展開をサポートしています。 現在のリージョンで2つ以上のゾーンがサポートされている場合は、高可用性を確保するために2つ以上のゾーンのvSwitchを選択します。

spec.listeners

不可

ALBインスタンスのリスナーポートとプロトコル。 このトピックの例では、ポート8001でHTTPリスナーを構成します。

リスナーは、ALBがトラフィックを受信する方法を定義します。 リスナーの構成を保持することを推奨します。 それ以外の場合は、ALB Ingressを使用する前にリスナーを作成する必要があります。

Ingressの設定

マルチクラスタALB Ingressのほとんどの構成は、シングルクラスタALB Ingressの構成と同様です。 ただし、マルチクラスタモードでは、重みによるトラフィック分割とカナリアリリース機能を同時に使用することはできません。