すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:SLB Ingress から ALB イングレスへの移行

最終更新日:Jun 23, 2026

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 に解決されます。

YAML ファイルの表示

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: demo-ingress
  namespace: default
spec:
  ingressClassName: slb
  rules:
    - host: demo.ingress.vip
      http:
        paths:
          - backend:
              service:
                name: nginx
                port:
                  number: 80
            path: /
            pathType: Prefix

ブラウザのアドレスバーに demo.ingress.vip と入力します。ページに Welcome to nginx! と表示されます。

ステップ 1:ALB イングレスの作成

  1. ALB Ingress コントローラーをインストールします。詳細については、「ALB Ingress コントローラーの管理」をご参照ください。

  2. クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続します

  3. AlbConfig を作成します。

    1. 次の内容を使用して 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: HTTP

      zoneMappings:ALB イングレスの vSwitch ID です。異なるゾーンにある少なくとも 2 つの vSwitch を指定する必要があります。vSwitch は、ご利用のクラスターと同じ VPC 内にある必要があります。

    2. 次のコマンドを実行して AlbConfig を作成します。

      kubectl apply -f albconfig.yaml
    3. 次のコマンドを実行して、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
  4. IngressClass を作成します。

    1. 次の内容を使用して 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-demo

      parameters.name:バインドする AlbConfig の名前です。

    2. 次のコマンドを実行して IngressClass を作成します。

      kubectl apply -f ingressclass.yaml
  5. ALB イングレスを作成します。

    1. 次の内容を使用して 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 の名前です。

    2. 次のコマンドを実行して ALB イングレスを作成します。

      kubectl apply -f albingress.yaml
    3. 次のコマンドを実行して、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 です。

    4. 次のコマンドを実行して、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 サービスにリダイレクトされます。

  1. Alibaba Cloud DNS コンソールにログインします。

  2. ドメイン名の設定 ページで、すべてのドメイン名 タブのドメイン名をクリックします。

  3. 解決設定 ページで、目的の DNS レコードを見つけ、操作 列の 変更 をクリックします。

  4. Modify Record ダイアログボックスで、レコード値 を ALB イングレスのエンドポイント (この例では、alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com) に変更し、OK をクリックします。

  5. ブラウザのアドレスバーに demo.ingress.vip と入力します。

    ブラウザに Welcome to nginx! と表示されます。これにより、トラフィックが ALB イングレス経由でルーティングされ、移行が完了したことが確認できます。

ステップ 3:SLB Ingress の削除

  1. SLB Ingress を削除します。

    1. クラスター管理ページの左側のナビゲーションウィンドウで、ネットワーク > Ingressを選択します。

    2. Ingress ページの上部で、適切な 名前空間 を選択します。SLB Ingress を見つけ、操作 列で 詳細 > 削除 を選択します。

    3. 表示されるダイアログボックスで、OK をクリックします。

  2. SLB Ingress コントローラーをアンインストールします。

    1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、クラスターリストをクリックします。

    2. クラスターリスト ページで、クラスター名をクリックします。 左側のナビゲーションウィンドウで、アドオン管理 をクリックします。

    3. アドオン管理 ページで その他 タブをクリックし、[SLB Ingress コントローラー] を見つけて アンインストール をクリックします。

    4. 表示されるダイアログボックスで、OKをクリックします。

よくある質問

SLB Ingress から ALB イングレスへのシームレスな移行は可能ですか。

いいえ。ALB と SLB は異なるタイプのロードバランサーであるため、直接のインプレース移行はサポートされていません。