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の論理的な関係を示しています。
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は、マルチクラスタゲートウェイを作成するために使用されます。
AlbConfigフィールドの詳細については、「ALB Ingress GlobalConfigurationディクショナリ」をご参照ください。
AlbConfigsを使用してALBインスタンスを設定する方法の詳細については、「ALBインスタンスとリスナーの設定」をご参照ください。
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
下表に、各パラメーターを説明します。
パラメーター | 必須 / 任意 | 説明 |
| 可 | AlbConfigの名前。 |
| 可 | ALBマルチクラスタゲートウェイに追加される関連クラスタのリスト。 ここにリストされているクラスターIDはフリートインスタンスに関連付けられています。 |
| 不可 | ALBインスタンスの名前。 |
| 不可 | ALBインスタンスのネットワークタイプ。 有効な値:
|
| 可 | ALBインスタンスに関連付けられているvSwitchのID。 vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。 説明
|
| 不可 | ALBインスタンスのリスナーポートとプロトコル。 このトピックの例では、ポート8001でHTTPリスナーを構成します。 リスナーは、ALBがトラフィックを受信する方法を定義します。 リスナーの構成を保持することを推奨します。 それ以外の場合は、ALB Ingressを使用する前にリスナーを作成する必要があります。 |
Ingressの設定
マルチクラスタALB Ingressのほとんどの構成は、シングルクラスタALB Ingressの構成と同様です。 ただし、マルチクラスタモードでは、重みによるトラフィック分割とカナリアリリース機能を同時に使用することはできません。
注釈の詳細については、「ALB Ingressでサポートされている注釈」をご参照ください。
Ingressの設定方法の詳細については、「Ingressの設定」をご参照ください。