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

Container Service for Kubernetes:既存の SLB インスタンスを使用したアプリケーションの公開

最終更新日:Jun 16, 2026

既存の CLB または NLB を LoadBalancer Service にアタッチすることで、固定 IP を維持したり、複数の Service 間で共有したりできます。

クラスターの外部からは <SLB-IP>:<Service port> または SLB ドメイン名を使用します。クラスターの内部からは <Service name>:<Service port> を使用します。

前提条件

次のことを確認してください。

重要

既存の Server Load Balancer (SLB) インスタンスを再利用する予定がある場合は、クラスター作成時に [Ingress のインストール] を選択しないでください。後から手動でインスタンスを指定します。詳細については、「既存の CLB インスタンスの使用」および「既存の NLB インスタンスの使用」をご参照ください。

注意事項

リスナーの管理は cloud-controller-manager のバージョンに依存し、一部の SLB インスタンスは再利用できません。

cloud-controller-manager のバージョンごとのリスナーの動作

リスナーの設定は、cloud-controller-manager のバージョンに依存します。

  • v1.9.3.59-ge3bc999-aliyun 以降: デフォルトでは、cloud-controller-manager はリスナーを設定しません。ACK にリスナーを管理させるには service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true" を追加するか、手動で設定します。

  • v1.9.3.59-ge3bc999-aliyun より前: cloud-controller-manager はバックエンドサーバーグループを作成・管理し、手動で設定したものを含むすべてのリスナーをそれらのグループに関連付けます。

cloud-controller-manager のバージョンの確認

  • コンソール: ACK コンソールで、クラスターの [運用] > [アドオン] ページに移動します。[コアコンポーネント] タブで、[Cloud Controller Manager] のバージョンを確認します。

  • kubectl (ACK 専用クラスターのみ) :

    kubectl get pod -n kube-system -o yaml | grep image: | grep cloud-con | uniq

利用制限

アプリケーションのデプロイ

LoadBalancer Service のバックエンドとして、ステートレスな NGINX アプリケーションをデプロイします。

ACK コンソールの使用

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、クラスター名をクリックします。左側メニューで、[ワークロード] > [Deployment] を選択します。

  3. [Deployment] ページで、[イメージから作成] をクリックし、Deployment を設定します。

    1. [基本情報] ページで、[名前]my-nginx に設定し、[次へ] をクリックします。

    2. [コンテナ] ページで、イメージとポートを設定します。

      パラメーター

      [イメージ名]

      [イメージの選択] をクリックします。[Artifact Center] タブで nginx を検索し、[openanolis/nginx] を選択します。[イメージタグの選択] をクリックし、タグを設定して [OK] をクリックします。

      [ポート]

      名前: nginx、コンテナポート: 80

    3. [詳細設定] ページで、デフォルト設定を維持し、[作成] をクリックします。

kubectl の使用

  1. 次の内容の my-nginx.yaml という名前のファイルを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-nginx        # Deployment 名
      labels:
        app: nginx
    spec:
      replicas: 2           # Pod レプリカの数
      selector:
        matchLabels:
          app: nginx        # Service のセレクターと一致させる必要があります
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  2. アプリケーションをデプロイします。

    kubectl apply -f my-nginx.yaml
  3. Deployment の準備ができていることを確認します。

    kubectl get deployment my-nginx

    期待される出力:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    my-nginx   2/2     2            2           50s

LoadBalancer Service の作成

既存の SLB インスタンスに Service を関連付け、外部トラフィックを NGINX Pod にルーティングします。

ACK コンソールの使用

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、クラスター名をクリックします。左側メニューで、[ネットワーク] > [Service] を選択します。

  3. [Service] ページで、[作成] をクリックします。[Service の作成] ダイアログボックスで、次のパラメーターを設定します。

    パラメーター

    説明

    [名前]

    Service の名前

    my-nginx-svc

    [Service タイプ]

    [SLB] を選択し、[SLB タイプ][CLB] に設定し、[既存リソースの使用] を選択します。CLB インスタンスを選択します。リスナーのないインスタンスの場合は、[既存リスナーの上書き] を有効にします。

    SLB > CLB > 既存リソースの使用

    [外部トラフィックポリシー]

    [Local] は、現在のノード上の Pod にのみトラフィックをルーティングします。[Cluster] は、すべてのノードの Pod にトラフィックをルーティングします。

    Local

    [バックエンド]

    Service に関連付けるアプリケーション

    名前: app、値: nginx

    [ポートマッピング]

    Service ポートをコンテナポートにマッピングします

    Service ポート: 80、コンテナポート: 80、プロトコル: TCP

    [アノテーション]

    アノテーションを追加して SLB インスタンスを設定します。詳細については、「アノテーションを使用した CLB インスタンスの設定」および「アノテーションを使用した NLB インスタンスの設定」をご参照ください。

    N/A

  4. [OK] をクリックします。Service 名をクリックして詳細を表示し、[外部 IP] (例: 39.106.XX.XX:80) をクリックしてアクセスを確認します。

    image

kubectl の使用

  1. 次の内容の my-nginx-svc.yaml という名前のファイルを作成します。

    フィールド

    説明

    metadata.annotations

    alibaba-cloud-loadbalancer-id:既存の SLB インスタンスの ID。alibaba-cloud-loadbalancer-force-override-listeners: 'true':ACK がリスナーを管理できるようにします。既存のリスナー設定を維持する場合は、このアノテーションを省略します。

    spec.selector

    トラフィックを受信する Pod を選択します。Deployment の matchLabels (app: nginx) と一致する必要があります。

    spec.ports.port

    クラスター IP で公開されるポート。クラスター内からは clusterIP:port でアクセスします。

    spec.ports.targetPort

    バックエンド Pod のポート。kube-proxy はトラフィックを port から targetPort に転送します。

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${YOUR_LB_ID}                      # お使いの SLB インスタンス ID に置き換えます
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'true'       # リスナーが設定されていない新しいインスタンスの場合は true に設定します
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx            # バックエンド Pod のラベルと一致させる必要があります
      type: LoadBalancer

    主要なフィールド:

  2. Service を適用します。

    kubectl apply -f my-nginx-svc.yaml
  3. Service に外部 IP があることを確認します。

    kubectl get svc my-nginx-svc

    期待される出力:

    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
    my-nginx-svc   LoadBalancer   172.21.5.82   39.106.XX.XX     80:30471/TCP   5m
  4. アプリケーションにアクセスします。

    curl <YOUR-EXTERNAL-IP>    # 前のステップで取得した外部 IP に置き換えます

    期待される出力:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    ...
    </html>

Service の管理

ACK コンソールの使用

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、クラスター名をクリックします。左側メニューで、[ネットワーク] > [Service] を選択します。

  3. [Service] ページで、Service 名をクリックして詳細を表示するか、[操作] 列の [更新] または [削除] をクリックします。

kubectl の使用

Service の更新

kubectl edit service my-nginx-svc

または、my-nginx-svc.yaml を編集して再適用します。

kubectl apply -f my-nginx-svc.yaml

Service の表示

kubectl get service my-nginx-svc

期待される出力:

NAME           TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
my-nginx-svc   LoadBalancer   172.21.XX.XX   39.106.XX.XX     80:31599/TCP   5m

Service の削除

kubectl delete service my-nginx-svc

CLB 設定リファレンス

ACK コンソールで CLB インスタンスを作成または再利用する際に、これらのパラメーターを設定します。

新しい CLB インスタンスの作成

パラメーター

説明

[名前]

CLB インスタンスの名前

[アクセスモード]

[パブリックアクセス] または [内部アクセス]

[課金方法]

[仕様別の支払い] または [従量課金 (CU 単位)]。詳細については、「CLB の課金」をご参照ください。

[IP バージョン]

[IPv4] または [IPv6]

[スケジューリングアルゴリズム]

[ラウンドロビン (RR)] (デフォルト) :リクエストを順番に分散します。[加重ラウンドロビン (WRR)] :重みが大きいサーバーがより多くのリクエストを受信します。

[アクセス制御]

リスナーレベルのアクセス制御を有効または無効にします。詳細については、「アクセス制御」をご参照ください。

[ヘルスチェック]

TCP または HTTP。詳細については、「CLB のヘルスチェック」をご参照ください。

[その他]

アノテーションで設定します。詳細については、「アノテーションを使用した CLB インスタンスの設定」をご参照ください。

既存の CLB インスタンスの使用

インスタンスを選択し、必要に応じて [既存リスナーの上書き] を有効にします。詳細については、「既存の CLB インスタンスを使用して、そのリスナーを強制的に上書きする」をご参照ください。

重要

CLB を再利用する前に、利用制限を確認してください。詳細については、「LoadBalancer Service の設定に関する考慮事項」の「利用上の注意」をご参照ください。

詳細設定

パラメーター

説明

[スケジューリングアルゴリズム]

[ラウンドロビン (RR)] (デフォルト) または [加重ラウンドロビン (WRR)]

[アクセス制御]

リスナーのアクセス制御を有効または無効にします

[ヘルスチェック]

TCP または HTTP。詳細については、「CLB のヘルスチェック」をご参照ください。

[その他]

アノテーションで設定します。詳細については、「アノテーションを使用した CLB インスタンスの設定」をご参照ください。

NLB 設定リファレンス

ACK コンソールで NLB インスタンスを作成または再利用する際に、これらのパラメーターを設定します。

新しい NLB インスタンスの作成

パラメーター

説明

[名前]

NLB インスタンスの名前

[アクセスモード]

[パブリックアクセス] または [内部アクセス]

[課金方法]

[従量課金 (CU 単位)]。詳細については、「NLB の課金」をご参照ください。

[IP バージョン]

[IPv4] または [デュアルスタック]

[スケジューリングアルゴリズム]

[ラウンドロビン] :順番に分散します。[加重ラウンドロビン] (デフォルト) :重みが大きいサーバーがより多くのリクエストを受信します。[送信元 IP ハッシュ] :同じ送信元 IP が同じサーバーにルーティングされます。[4 タプルハッシュ] :送信元 IP、宛先 IP、送信元ポート、宛先ポートによってルーティングします。[QUIC ID ハッシュ] :同じ QUIC ID が同じサーバーにルーティングされます。[加重最小接続] :重みと接続数によってルーティングします。

[ヘルスチェック]

[TCP] (デフォルト) : SYN プローブ。[ヘルスチェック応答タイムアウト][ヘルスチェック間隔][正常しきい値]、および [異常しきい値] を設定します。[HTTP] : HEAD/GET プローブ。[ドメイン名] (バックエンドサーバーの内部 IP またはカスタムドメイン名)、[パス]、および [ヘルスチェックステータスコード] (http_2xx、http_3xx、http_4xx、http_5xx、デフォルト : http_2xx) を設定します。

[VPC]

クラスターの VPC リージョンと VPC ID

[Vswitch]

サポートされているゾーンにある vSwitch を選択するか、新規作成します

[その他]

アノテーションで設定します。詳細については、「アノテーションを使用した NLB インスタンスの設定」をご参照ください。

既存の NLB インスタンスの使用

インスタンスを選択し、必要に応じて [既存リスナーの上書き] を有効にします。詳細については、「既存の NLB インスタンスの使用」をご参照ください。

重要

NLB を再利用する前に、利用制限を確認してください。詳細については、「LoadBalancer Service の設定に関する考慮事項」の「利用上の注意」をご参照ください。

詳細設定

パラメーター

説明

[スケジューリングアルゴリズム]

上記の「新しい NLB インスタンスの作成」の表と同じオプションです

[ヘルスチェック]

上記の「新しい NLB インスタンスの作成」の表と同じオプションです

[VPC]

クラスターの VPC リージョンと VPC ID

[Vswitch]

サポートされているゾーンにある vSwitch を選択するか、新規作成します

[その他]

アノテーションで設定します。詳細については、「アノテーションを使用した NLB インスタンスの設定」をご参照ください。

次のステップ