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

Container Service for Kubernetes:SLB Ingress から ALB Ingress への移行

最終更新日:Sep 25, 2026

2023 年 2 月 28 日より、Container Service for Kubernetes (ACK) Serverless では SLB Ingress が廃止されました。クラスター経由で SLB Ingress Controller アドオンをインストールまたは管理することができなくなり、SLB Ingress のサポートは終了します。速やかに SLB Ingress から ALB Ingress へ移行してください。このトピックでは、ALB Ingress の作成、DNS トラフィックの切り替え、および SLB Ingress の削除について説明します。

背景情報

SLB はレイヤー 7 の機能が限定的で、HTTP ヘッダー書き換え、リダイレクト、URL 書き換え、レート制限などの機能をサポートしておらず、インスタンス仕様を手動で管理する必要があります。ALB Ingress は、より強力な Ingress トラフィック管理機能を持つレイヤー 7 ゲートウェイです。

ALB Ingress は Alibaba Cloud Application Load Balancer (ALB) を使用します。ヘッダーおよび Cookie ベースのルーティング、証明書の自動検出、HTTP、HTTPS、QUIC をサポートし、クラウドネイティブアプリケーションのレイヤー 7 トラフィックをより適切に処理します。ALB と SLB の機能比較については、「SLB 製品ファミリーの概要」をご参照ください。

移行プロセス

image

移行例

この例では、エンドポイントが demo.ingress.vip に解決される Ingress リソースを使用します。

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 Ingress の作成

  1. 「ALB Ingress controller の管理」に従って、ALB Ingress Controller アドオンをインストールします。

  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 Ingress 用の vSwitch ID です。クラスターと同じ VPC 内にあり、かつ異なるゾーンに属する vSwitch を少なくとも 2 つ指定してください。

    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 Ingress を作成します。

    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 Ingress を作成します。

      kubectl apply -f albingress.yaml
    3. ALB Ingress のエンドポイントを取得します。

      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 Ingress のエンドポイント (例:alb-eeee6gtqbmrm1****.cn-shenzhen.alb.aliyuncs.com) を控えてください。

    4. ALB Ingress を介して 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 Ingress へのトラフィック切り替え

ALB Ingress を介してトラフィックをルーティングするには、demo.ingress.vip の DNS レコードを更新し、SLB エンドポイントではなく ALB エンドポイントを指すように設定します。

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

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

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

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

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

    ブラウザに Welcome to nginx! が表示され、ALB Ingress を介して Nginx にアクセスできることと、SLB Ingress から ALB Ingress への切り替えが成功したことを確認できます。

ステップ 3:SLB Ingress の削除

  1. SLB Ingress を削除します。

    1. 詳細ページの左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。

    2. Ingress ページで、適切な 名前空間を選択して SLB Ingress を探し、操作 列で 詳細 > 削除を選択します。

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

  2. SLB Ingress Controller アドオンをアンインストールします。

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

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

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

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

よくある質問

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

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