Application Load Balancer (ALB) Ingressは、HTTP、HTTPS、およびQUICをサポートしており、大規模な高弾力性とレイヤ7トラフィック管理のためのクラウドネイティブアプリケーションの要件を満たしています。 ALB IngressはNGINX Ingressとも互換性があります。 さらに、ALB Ingressは複雑なルートと自動TLS証明書管理をサポートしているため、トラフィックを柔軟に管理できます。 異なるURLを介してクラスター内の異なるサービスにアクセスするようにIngressルールを設定できます。
前提条件
登録済みクラスターが作成され、データセンターにデプロイされている外部クラスターが登録済みクラスターに接続されます。 詳細については、「ACKコンソールでの登録済みクラスターの作成」をご参照ください。
ステップ1: AlbConfigオブジェクトの作成
alb-test.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。 ファイルは、AlbConfigオブジェクトを作成するために使用されます。
apiVersion: alibabacloud.com/v1 kind: AlbConfig メタデータ: 名前: alb-demo spec: config: 名前: alb-test addressType: インターネット zoneMappings: -vSwitchId: vsw-uf6ccg2a9g71hx8go **** -vSwitchId: vsw-uf6nun9tql5t8nh15 **** リスナー: - port: 80 プロトコル: HTTPパラメーター
説明
spec.config.name
ALBインスタンスの名前。 このパラメーターはオプションです。
spec.config.addressType
ALBインスタンスがサービスの提供に使用するIPアドレスのタイプ。 This parameter is required. 有効な値:
インターネット: ALBインスタンスはパブリックIPアドレスを使用します。 Ingressのドメイン名は、ALBインスタンスのパブリックIPアドレスに解決されています。 したがって、ALBインスタンスはインターネット経由でアクセスできます。 デフォルト値です。
イントラネット: ALBインスタンスはプライベートIPアドレスを使用します。 Ingressのドメイン名はプライベートIPアドレスに解決されます。 したがって、ALBインスタンスには、ALBインスタンスがデプロイされているVPC内でのみアクセスできます。
spec.config.zoneMappings
ALB Ingressによって使用されるvSwitchのID。 少なくとも2つのvSwitch IDを指定する必要があります。 vSwitchは、異なるゾーンおよびクラスターが存在するVPCにデプロイする必要があります。 vSwitchのゾーンは、ALB Ingressでサポートされている必要があります。 This parameter is required. ALB Ingressでサポートされているリージョンとゾーンの詳細については、「ALBが利用可能なリージョンとゾーン」をご参照ください。
次のコマンドを実行して、AlbConfigを作成します。
kubectl apply -f alb-test.yaml期待される出力:
albconfig.alibabacloud.com/alb-demo作成alb.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。
Kubernetes 1.19以降を実行するクラスター
apiVersion: networking.k8s.io/v1 種類: IngressClass メタデータ: 名前: alb spec: コントローラー: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig 名前: alb-demoV1.19より前のバージョンのKubernetesを実行するクラスター
apiVersion: networking.k8s.io/v1beta1 種類: IngressClass メタデータ: 名前: alb spec: コントローラー: ingress.k8s.alibabacloud/alb パラメータ: apiGroup: alibabacloud.com kind: AlbConfig 名前: alb-demo次のコマンドを実行してIngressClassを作成します。
kubectl apply -f alb.yaml期待される出力:
ingressclass.net working.k8s.io/alb作成
ステップ2: サービスのデプロイ
cafe-service.yamlファイルを作成し、次の内容をファイルにコピーします。 このファイルは、
coffeeとteaという名前の2つの展開と、coffeeとteaという名前の2つのサービスを展開するために使用されます。次のコマンドを実行して、デプロイメントとサービスをデプロイします。
kubectl apply -f cafe-service.yaml期待される出力:
展開「コーヒー」作成 サービス "coffee-svc" が作成されました 展開 "tea" が作成されました サービス "tea-svc" が作成デプロイメントとサービスのステータスを照会します。
次のコマンドを実行して、アプリケーションのデプロイの進行状況を照会します。
kubectl get deploy期待される出力:
の名前は日付まで利用可能な年齢を準備しています コーヒー1/2 2 1 2m26s ティー1/1 1 1 2m2 6s次のコマンドを実行して、サービスのステータスを照会します。
kubectl get svc期待される出力:
名タイプCLUSTER-IP EXTERNAL-IPポート年齢 coffee-svc NodePort 172.16.XX.XX <none> 80:32056/TCP 9m38s tea-svc NodePort 172.16.XX.XX <none> 80:31696/TCP 9m3 8s
ステップ3: ALB Ingressの設定
cafe-ingress.yamlという名前のファイルを作成し、次のコンテンツをファイルにコピーします。
Kubernetes 1.19以降を実行するクラスター
apiVersion: networking.k8s.io/v1 kind: Ingress メタデータ: 名前: cafe-ingress spec: ingressClassName: alb ルール: -host: demo.domain.ingress.top http: パス: # コンテキストパスを設定します。 - path: /tea pathType: ImplementationSpecific backend: service: name: tea-svc port: number: 80 # コンテキストパスを設定します。 - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: 番号: 80V1.19より前のバージョンのKubernetesを実行するクラスター
apiVersion: networking.k8s.io/v1beta1 kind: Ingress メタデータ: 名前: cafe-ingress spec: ingressClassName: alb rules: -host: demo.domain.ingress.top http: paths: # コンテキストパスを設定します。 - path: /tea backend: serviceName: tea-svc servicePort: 80 # コンテキストパスを設定します。 - path: /coffee backend: serviceName: coffee-svc servicePort: 80次のコマンドを実行して、外部からアクセス可能なドメイン名と
coffeeおよびteaServicesのパスを個別に設定します。kubectl apply -f cafe-ingress.yaml期待される出力:
ingress.net working.k8s.io/cafe-ingress作成次のコマンドを実行して、ALBインスタンスの公開に使用されるIngressのドメイン名を照会します。
kubectl get ing期待される出力:
NAME CLASS HOSTS ADDRESS PORTS AGE cafe-ingress alb demo.domain.ingress.top alb-m551oo2zn63yov **** .cn-hangzhou.alb.aliyuncs.com 80 50s
ステップ4: サービスへのアクセス
ALBインスタンスのアドレスを取得したら、CLIを使用して
coffeeServiceにアクセスします。curl -Hホスト: demo.domain.ingress.top http:// alb-lhwdm5c9h8lrcm **** .cn-hangzhou.alb.aliyuncs.com/coffeeALBインスタンスのアドレスを取得したら、CLIを使用して
teaサービスにアクセスします。curl -Hホスト: demo.domain.ingress.top http:// alb-lhwdm5c9h8lrcm **** .cn-hangzhou.alb.aliyuncs.com/tea
関連ドキュメント
さまざまなドメイン名またはURL宛てのリクエストのさまざまなバックエンドサーバーグループへの転送、ヘルスチェック、HTTPからHTTPSへのリクエストのリダイレクト、カナリアリリース、カスタムリスナーポートなどの高度なALB Ingress設定の詳細については、「高度なALB Ingress設定」をご参照ください。
AlbConfigは、Container Service for Kubernetes (ACK) がApplication Load Balancer (ALB) Ingressコントローラーに提供するCustomResourceDefinition (CRD) です。 ALB Ingressコントローラーは、AlbConfigsを使用してALBインスタンスとリスナーを設定します。 詳細については、「AlbConfigsを使用したALBインスタンスの設定」をご参照ください。