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