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

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

最終更新日:Dec 14, 2024

Server load Balancer (SLB) Ingressは、2023年2月28日に段階的に廃止されました。 したがって、Container Service for Kubernetes (ACK) Serverlessは、2023年2月28日以降、SLB Ingressのテクニカルサポートを提供しなくなりました。 SLB Ingressが廃止された後、ACKサーバーレスクラスターにSLB Ingressコントローラーをインストールまたは管理することはできません。 できるだけ早い機会にSLB IngressからALB Ingressに移行することを推奨します。 このトピックでは、SLB IngressからALB Ingressに移行する方法について説明します。

背景情報

SLBはレイヤー7で限定機能を提供します。 たとえば、SLBはHTTPの書き換え、リダイレクト、上書き、およびスロットリングをサポートしていません。 また、SLBインスタンスの仕様を手動で指定する必要があります。 したがって、SLB Ingressはトラフィックルーティングのサポートを制限します。 ALB Ingressは、Application Load Balancer (ALB) に基づいて、レイヤー7で改善されたトラフィックルーティング機能を提供します。

SLB Ingressと比較して、ALB IngressはヘッダーまたはCookieに基づく複雑なルーティングを処理し、自動証明書検出をサポートできます。 ALB Ingressは、HTTP、HTTPS、およびクイックUDPインターネット接続 (QUIC) プロトコルもサポートしており、クラウドネイティブアプリケーションのレイヤー7トラフィック分散の要件を満たしています。 ALBとSLBの比較の詳細については、SLBとは何ですか?

移行手順

移行例

この例では、エンドポイントをドメイン名demo. Ingress. vipにマップするSLB ingressを使用します。

:

apiVersion: networking.k8s.io/v1
kind: Ingress
メタデータ:
  名前: demo-ingress
  namespace: デフォルト
spec:
  ingressClassName: slb
  rules:
    -host: demo.ingress.vip
      http:
        paths:
          - backend:
              service:
                name: nginx
                port:
                  number: 80
            path: /
            pathType: プレフィックス 

ブラウザのアドレスバーにdemo.ingress.vipと入力し、Enterキーを押します。 nginxへようこそ! ページに表示されます。

ステップ1: ALB Ingressの作成

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

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

  3. AlbConfigを作成します。

    1. albconfig.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      メタデータ:
        名前: alb-demo
      spec:
        config:
          名前: alb-test
          addressType: インターネット
          zoneMappings:
          -vSwitchId: vsw-wz9e2usil7e5an1xi ****
          -vSwitchId: vsw-wz92lvykqj1siwvif ****
        リスナー:
          - port: 80
            プロトコル: HTTP 

      zoneMappings: ALB Ingressによって使用されるvSwitchのID。 異なるゾーンに属するvSwitchを少なくとも2つ指定する必要があります。 指定するvSwitchは、クラスターと同じ仮想プライベートクラウド (VPC) に属している必要があります。

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

      kubectl apply -f albconfig.yaml
    3. 次のコマンドを実行して、ALBインスタンスが作成されているかどうかを確認します。

      kubectl get albconfig <AlbConfig name>

      期待される出力:

      名ALBID DNSNAMEポート&プロトコルCERTID年齢
      alb-デモalb-eeee6gtqbmrm19 **** alb-eeee6gtqbmrm19 **** .cn-shenzhen.alb.aliyuncs.com 27s 
  4. IngressClassを作成します。

    1. ingressclass.yamlという名前のファイルを作成し、次のコンテンツをファイルにコピーします。

      apiVersion: networking.k8s.io/v1
      種類: IngressClass
      メタデータ:
        名前: alb
      spec:
        コントローラー: ingress.k8s.alibabacloud/alb
        parameters:
          apiGroup: alibabacloud.com
          kind: AlbConfig
          名前: 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
      メタデータ:
        名前: demo-ingress-alb
        namespace: デフォルト
      spec:
        ingressClassName: alb
        rules:
          -host: demo.ingress.vip
            http:
              paths:
                - backend:
                    service:
                      name: nginx
                      port:
                        number: 80
                  path: /
                  pathType: プレフィックス 
      • 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。**。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 "ホスト: demo.ingress.vip" http:// alb-eeee6gtqbmrm1 **** .cn-shenzhen.alb.aliyuncs.com

      期待される出力:

      <!DOCTYPE html>
      <html>
      <ヘッド>
      <title> nginxへようこそ!</title>
      <style>
          body {
              幅: 35em;
              マージン: 0 auto;
              フォントファミリー: タホマ、ヴェルダナ、アリアル、サンセリフ。
          }
      </style>
      ............... 

ステップ2: ALB Ingressを使用してトラフィックを転送する

SLB ingressのエンドポイントをALB Ingressのエンドポイントに置き換えて、demo. Ingress. vipのDNSレコードを変更します。 このように、ALB Ingressはトラフィックを転送するために使用されます。

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

  2. On theドメイン名の解決ページで、ALB Ingressのドメイン名をクリックします。権限ドメイン名列を作成します。

  3. On theDNS設定ページをクリックします。変更で、アクション列を作成します。

  4. [DNSレコードの変更] パネルで、レコード値をALB Ingressのエンドポイントに設定します。この例では **** .cn-shenzhen.alb.aliyuncs.comをalb-eeee6gtqbmrm1します。 次に、[OK] をクリックします。

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

    nginx

    nginxへようこそ! ページに表示されます。 これは、ALB Ingressを使用してNGINXアプリケーションにアクセスできることを示しています。

ステップ3: SLB Ingressを削除する

  1. SLB Ingressを削除します。

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

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

    3. 表示されるメッセージで、[OK] をクリックします。

  2. SLB Ingressコントローラーのアンインストール

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

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

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

    4. 表示されるメッセージで、[OK] をクリックします。

よくある質問

SLB IngressからALB Ingressへのスムーズな移行はサポートされていますか?

SLB IngressはALB Ingressとは異なるため、SLB IngressからALB Ingressへのスムーズな移行はサポートされていません。