☁️

Alibaba Cloud ACS入門:ALB IngressでKubernetesサービスを公開する方法

に公開

Alibaba CloudのACSクラスタにALB Ingressを導入することで、HTTP/HTTPSトラフィックを効率的に管理できます。

1. ALB Ingress Controllerのインストール

ACSクラスターを作成するときに、ALB Ingress Controllerをインストールするように設定します。
もしくは下記の手順で後からインストールします。

ACKクラスタにALB Ingress Controllerをインストールするには、以下の手順を実行します
1.ACSコンソールにログイン
2.クラスター一覧からクラスター名をクリックして、詳細画面に遷移
3.左側のナビゲーションメニューから「Add-ons」を選択
4.検索欄に「alb」を入力
5.「ALB Ingress Controller」を見つけ、「インストール」をクリックします。
6.「インストールコンポーネント」ダイアログで、Gateway Sourceを「New」に設定し、ACSクラスターが入っているVPCのvSwitchを全てチェックして、OKをクリックします。

AlbConfigの作成

AlbConfigは、ALBインスタンスの設定を管理するためのカスタムリソースです。
このカスタムリソースを作成することで、ALBのインスタンスが作成されます。
以下は、AlbConfigの例です。

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
    name: alb-test
    addressType: Internet
    zoneMappings:
      - vSwitchId: <vsw-id-1>
      - vSwitchId: <vsw-id-2>
      - vSwitchId: <vsw-id-2>
  listeners:
    - port: 80
      protocol: HTTP

vSwitchIdは、使用するvSwitchのIDに置き換えてください。

3. IngressClassの作成

IngressClassは、Ingressリソースが使用するコントローラーを指定します。
以下は、IngressClassの例です。

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb-demo

この設定により、Ingressリソースが指定したAlbConfigを使用するようになります。

4.Ingressリソースの作成

最後に、Ingressリソースを作成して、外部からのトラフィックをサービスにルーティングします。
以下は、Ingressリソースの例です。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sample-ingress
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  ingressClassName: alb
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: sample-service
                port:
                  number: 80

5. DNS 設定または hosts ファイルの編集

方法 1:DNS プロバイダーでの CNAME レコード設定

ドメイン名を ALB のパブリック IP アドレスに解決させるには、ドメイン管理サービス(例:Alibaba Cloud DNS、Route 53、Cloudflare など)で CNAMEを設定します。
設定例:
ホスト名:example.com
タイプ:CNAME
値:ALB のパブリック DNS名(例:alb-xxx.ap-northeast-1.alb.aliyuncsslbintl.com)

この設定により、example.com へのアクセスが ALB を通じて Kubernetes サービスにルーティングされます。

方法 2:ローカルの hosts ファイルを編集(開発・テスト用途)

DNS 設定がまだ完了していない場合や、開発・テスト環境で一時的にドメインを解決させたい場合は、ローカルの hosts ファイルを編集することで対応できます。
Windows の場合:
C:\Windows\System32\drivers\etc\hosts
macOS / Linux の場合:
/etc/hosts
例:

alb-xxx.ap-northeast-1.alb.aliyuncsslbintl.com example.com

これらの設定により、example.com へのアクセスがローカルで ALB の IP アドレスに解決され、Ingress を通じて Kubernetes サービスにルーティングされます。


以上で、Alibaba Cloud ACK クラスタにおける ALB Ingress の設定から、DNS 解決の設定までの一連の手順が完了します。

Discussion