2023年2月28日をもって、Container Service for Kubernetes (ACK) Serverless における SLB Ingress は非推奨となりました。クラスターで SLB Ingress コントローラーをインストールまたは管理することはできなくなり、SLB Ingress に対するテクニカルサポートの提供も終了します。できるだけ早く ALB イングレスに移行することを推奨します。このトピックでは、SLB Ingress から ALB イングレスへの移行方法について説明します。
背景情報
SLB は、提供するレイヤー 7 の機能が限られています。たとえば、HTTP ヘッダーの書き換え、リダイレクト、レート制限などの機能をサポートしていません。また、インスタンス仕様を手動で管理する必要があり、これが SLB Ingress の大きな制限となっています。これらの制限に対処するため、レイヤー 7 向けに設計され、より強力な Ingress トラフィック管理を提供する ALB Ingress ゲートウェイが導入されました。
ALB イングレスは、Alibaba Cloud の Application Load Balancer (ALB) をベースにしています。SLB Ingress と比較して、ALB イングレスは複雑なルーティング (ヘッダーと Cookie に基づく) と証明書の自動検出をサポートします。HTTP、HTTPS、QUIC プロトコルをサポートし、クラウドネイティブアプリケーションのレイヤー 7 トラフィック管理のニーズにより良く対応します。ALB と SLB の機能比較については、「SLB プロダクトファミリーの概要」をご参照ください。
移行プロセス
移行例
このトピックでは、次の Ingress リソースを例として使用します。Ingress エンドポイントはドメイン名 demo.ingress.vip に解決されます。
ブラウザのアドレスバーに demo.ingress.vip と入力します。ページに Welcome to nginx! と表示されます。
ステップ 1:ALB イングレスの作成
-
ALB Ingress コントローラーをインストールします。詳細については、「ALB Ingress コントローラーの管理」をご参照ください。
-
AlbConfig を作成します。
-
次の内容を使用して albconfig.yaml を作成します。
apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Internet zoneMappings: - vSwitchId: vsw-wz9e2usil7e5an1xi**** - vSwitchId: vsw-wz92lvykqj1siwvif**** listeners: - port: 80 protocol: HTTPzoneMappings:ALB イングレスの vSwitch ID です。異なるゾーンにある少なくとも 2 つの vSwitch を指定する必要があります。vSwitch は、ご利用のクラスターと同じ VPC 内にある必要があります。
-
次のコマンドを実行して AlbConfig を作成します。
kubectl apply -f albconfig.yaml -
次のコマンドを実行して、ALB インスタンスが作成されたかどうかを確認します。
kubectl get albconfig <AlbConfig-name>期待される出力:
NAME ALBID DNSNAME PORT&PROTOCOL CERTID AGE alb-demo alb-eeee6gtqbmrm19**** alb-eeee6gtqbmrm19****.cn-shenzhen.alb.aliyuncs.com 27s
-
-
IngressClass を作成します。
-
次の内容を使用して ingressclass.yaml を作成します。
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demoparameters.name:バインドする
AlbConfigの名前です。 -
次のコマンドを実行して IngressClass を作成します。
kubectl apply -f ingressclass.yaml
-
-
ALB イングレスを作成します。
-
次の内容を使用して albingress.yaml を作成します。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress-alb namespace: default spec: ingressClassName: alb rules: - host: demo.ingress.vip http: paths: - backend: service: name: nginx port: number: 80 path: / pathType: Prefix-
name:Ingress の名前です。名前は SLB Ingress の名前と異なる必要があります。
-
ingressClassName:IngressClass の名前です。
-
-
次のコマンドを実行して ALB イングレスを作成します。
kubectl apply -f albingress.yaml -
次のコマンドを実行して、ALB イングレスのエンドポイントを取得します。
kubectl get ing期待される出力:
NAME CLASS HOSTS ADDRESS PORTS AGE demo-ingress slb demo.ingress.vip 120.79.**.** 80 35m demo-ingress-alb alb demo.ingress.vip alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com 80 10m 46s出力から ALB イングレスのエンドポイントをメモします。この例では、エンドポイントは
alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.comです。 -
次のコマンドを実行して、ALB イングレスを使用して Nginx アプリケーションにアクセスします。
curl -H "Host: demo.ingress.vip" http://alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com期待される出力:
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> .............
-
ステップ 2:ALB イングレスへのトラフィックの移行
demo.ingress.vip の DNS レコードを更新して、SLB エンドポイントの代わりに ALB エンドポイントを指すようにします。これにより、トラフィックは ALB イングレスを介して Nginx サービスにリダイレクトされます。
-
Alibaba Cloud DNS コンソールにログインします。
-
ドメイン名の設定 ページで、すべてのドメイン名 タブのドメイン名をクリックします。
-
解決設定 ページで、目的の DNS レコードを見つけ、操作 列の 変更 をクリックします。
-
Modify Record ダイアログボックスで、レコード値 を ALB イングレスのエンドポイント (この例では、
alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com) に変更し、OK をクリックします。 -
ブラウザのアドレスバーに demo.ingress.vip と入力します。
ブラウザに Welcome to nginx! と表示されます。これにより、トラフィックが ALB イングレス経由でルーティングされ、移行が完了したことが確認できます。
ステップ 3:SLB Ingress の削除
-
SLB Ingress を削除します。
クラスター管理ページの左側のナビゲーションウィンドウで、を選択します。
-
Ingress ページの上部で、適切な 名前空間 を選択します。SLB Ingress を見つけ、操作 列で を選択します。
-
表示されるダイアログボックスで、OK をクリックします。
-
SLB Ingress コントローラーをアンインストールします。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、クラスターリストをクリックします。
クラスターリスト ページで、クラスター名をクリックします。 左側のナビゲーションウィンドウで、アドオン管理 をクリックします。
-
アドオン管理 ページで その他 タブをクリックし、[SLB Ingress コントローラー] を見つけて アンインストール をクリックします。
-
表示されるダイアログボックスで、OKをクリックします。
よくある質問
SLB Ingress から ALB イングレスへのシームレスな移行は可能ですか。
いいえ。ALB と SLB は異なるタイプのロードバランサーであるため、直接のインプレース移行はサポートされていません。