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

Container Compute Service:注釈を使用してCLBインスタンスを設定する

最終更新日:Dec 27, 2024

さまざまな負荷分散機能を使用するために、ServiceのYAMLファイルに注釈を追加して、クラシックロードバランサー(CLB)インスタンス、リスナー、およびバックエンドサーバーグループを設定できます。

目次

カテゴリ

ハイパーリンク

注釈の使用上の注意

CLBインスタンスを管理するための一般的な操作

リスナーを管理するための一般的な操作

関連情報

注釈の使用上の注意

  • 注釈の値は大文字と小文字が区別されます。

  • アノテーションを使用する前に、この機能でサポートされているクラウドコントローラーマネージャー(CCM)コンポーネントのバージョンを確認してください。CCMコンポーネントの更新方法の詳細については、コンポーネントの管理を参照してください。CCMコンポーネントのリリースノートの詳細については、クラウドコントローラーマネージャーを参照してください。

  • 2019年9月11日から、alicloudキーワードはannotationsalibaba-cloudに変更されました。

    例:

    変更前: service.beta.kubernetes.io/alicloud-loadbalancer-id

    変更後: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

    システムは、alicloudキーワードを使用する注釈を引き続きサポートします。 既存の注釈を変更する必要はありません。

CLBインスタンスを管理するための一般的な操作

インターネット向けCLBインスタンスを作成する

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

内部向けCLBインスタンスを作成する

注釈service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

説明

デフォルト値

サポートされているCCMバージョン

内部向けCLBインスタンスを作成します。 有効な値:

  • internet:インターネット向けCLBインスタンスを使用してServiceを公開します。 これはデフォルト値です。 CLBインスタンスのアドレスタイプは、インターネットに設定する必要があります。

  • intranet:内部向けCLBインスタンスを使用してServiceを公開します。 CLBインスタンスのアドレスタイプは、イントラネットに設定する必要があります。

internet

CCM 1.9.3以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

指定した仕様を使用するCLBインスタンスを作成する

次の注釈が使用されます。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type

CLBインスタンスの課金方式。 有効な値:

  • paybytraffic

  • paybybandwidth

paybytraffic

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec

CLBインスタンスの仕様。 詳細については、CreateLoadBalancerを参照してください。 この注釈を使用して、指定した仕様を使用するCLBインスタンスを作成したり、CLBインスタンスの仕様を更新したりできます。

重要

CLBコンソールを使用してCLBインスタンスの仕様を更新すると、CCMがCLBインスタンスを元の仕様に復元する場合があります。 注意して進めてください。 CLBコンソールを使用して、仕様課金方式を使用するCLBインスタンスの仕様のみを変更できます。

slb.s1.small

CCM 1.9.3以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

既存のCLBインスタンスを使用する

注釈service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

説明

デフォルト値

サポートされているCCMバージョン

使用したいCLBインスタンスのID。 この注釈を使用して、既存のCLBインスタンスを指定できます。

  • デフォルトでは、既存のCLBインスタンスを使用する場合、CLBインスタンスのリスナーは上書きされません。 既存のリスナーを上書きするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners注釈を"true"に設定します。 この設定は、現在のServiceのリスナーのみを上書きし、他のリスナーには影響しません。

    説明

    CCMは、次の理由により、既存のCLBインスタンスのリスナーを上書きしません。

    • CLBインスタンスのリスナーがアプリケーションに関連付けられている場合、リスナーが上書きされた後にサービスの中断が発生する可能性があります。

    • CCMは限られたバックエンド設定をサポートしており、複雑な設定を処理できません。 複雑なバックエンド設定を使用するには、コンソールでリスナーを作成します。 リスナーは既存のリスナーを上書きしません。

    したがって、既存のCLBインスタンスのリスナーを上書きしないことをお勧めします。 これらのリスナーがリッスンしているポートが使用されなくなった場合は、リスナーを強制的に上書きできます。

  • 既存のCLBインスタンスを使用する場合、annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tagsなどの追加タグを追加することはできません。

デフォルト値なし

CCM 1.9.3.81-gca19cd4-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}" 
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

既存のCLBインスタンスを使用し、CLBインスタンスのリスナーを強制的に上書きする

次の注釈が使用されます。 次の注釈を使用して、CLBインスタンスのリスナーを強制的に上書きします。 リスナーポートの競合が発生した場合、元のリスナーは削除されます。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

使用したいCLBインスタンスのID。 この注釈を使用して、既存のCLBインスタンスを指定できます。

  • デフォルトでは、既存のCLBインスタンスを使用する場合、CLBインスタンスのリスナーは上書きされません。 既存のリスナーを上書きするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners注釈を"true"に設定します。 この設定は、現在のServiceのリスナーのみを上書きし、他のリスナーには影響しません。

    説明

    CCMは、次の理由により、既存のCLBインスタンスのリスナーを上書きしません。

    • CLBインスタンスのリスナーがアプリケーションに関連付けられている場合、リスナーが上書きされた後にサービスの中断が発生する可能性があります。

    • CCMは限られたバックエンド設定をサポートしており、複雑な設定を処理できません。 複雑なバックエンド設定を使用するには、コンソールでリスナーを作成します。 リスナーは既存のリスナーを上書きしません。

    したがって、既存のCLBインスタンスのリスナーを上書きしないことをお勧めします。 これらのリスナーがリッスンしているポートが使用されなくなった場合は、リスナーを強制的に上書きできます。

  • 既存のCLBインスタンスを使用する場合、annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tagsなどの追加タグを追加することはできません。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners

既存のCLBインスタンスのリスナーを上書きするかどうかを指定します。 有効な値:

  • "true":リスナーを上書きします。 この設定は、現在のServiceのリスナーのみを上書きし、他のリスナーには影響しません。

  • "false":リスナーを上書きしません。

重要

既存のCLBインスタンスを使用し、force-override注釈を"true"に設定する場合は、CLBインスタンスのリスナーを複数のServiceに関連付けないでください。 関連付けると、これらのServiceがリスナーを上書きするときに設定の競合が発生します。

"false"

CCM 1.9.3.81-gca19cd4-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

CLBインスタンスを作成するときにプライマリゾーンとセカンダリゾーンを指定する

次の注釈が使用されます。 CLBインスタンスのプライマリゾーンとセカンダリゾーンを指定した後、ゾーンを変更することはできません。

一部のリージョンのCLBインスタンスは、プライマリゾーンとセカンダリゾーンをサポートしていません。 CLBインスタンスの作成ページの実際的信息が優先されます。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid

プライマリバックエンドサーバーがデプロイされているゾーンのID。

デフォルト値なし

CCM 1.9.3.10-gfb99107-aliyun以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid

セカンダリバックエンドサーバーがデプロイされているゾーンのID。

デフォルト値なし

CCM 1.9.3.10-gfb99107-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

帯域幅課金CLBインスタンスを作成する

次の注釈が使用されます。 両方の注釈が必要です。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type

CLBインスタンスの課金方式。 有効な値:

  • paybytraffic

  • paybybandwidth

paybytraffic

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth

CLBインスタンスの最大帯域幅。 この注釈は、インターネット向けCLBインスタンスにのみ適用されます。 インターネット向けCLBインスタンスの課金方式の制限の詳細については、ModifyLoadBalancerInstanceSpecを参照してください。

50

CCM 1.9.3.10-gfb99107-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

CLBインスタンスにvSwitchを指定する

次の注釈が使用されます。 両方の注釈が必要です。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

内部向けCLBインスタンスを作成するには、値をintranetに設定します。 有効な値:

  • internet:インターネット向けCLBインスタンスを使用してServiceを公開します。 これはデフォルト値です。 CLBインスタンスのアドレスタイプインターネットに設定する必要があります。

  • intranet:内部向けCLBインスタンスを使用してServiceを公開します。 CLBインスタンスのアドレスタイプイントラネットに設定する必要があります。

internet

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

CLBインスタンスが存在するvSwitchのID。 vSwitchとクラスターは、同じ仮想プライベートクラウド(VPC)にデプロイする必要があります。

この注釈を使用する場合は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type注釈を"intranet"に設定する必要があります。

VPCコンソールにログインして、vSwitch IDを照会できます。

デフォルト値なし

CCM 1.9.3以降

apiVersion: v1
kind: Service
metadata:
  annotations:
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

内部向けCLBインスタンスのIPアドレスを指定する

次の注釈が使用されます。 これらの注釈が必要です。

注釈

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

内部向けCLBインスタンスを作成するには、値をintranetに設定します。 有効な値:

  • internet:インターネット向けCLBインスタンスを使用してServiceを公開します。 これはデフォルト値です。 CLBインスタンスのアドレスタイプインターネットに設定する必要があります。

  • intranet:内部向けCLBインスタンスを使用してServiceを公開します。 CLBインスタンスのアドレスタイプイントラネットに設定する必要があります。

internet

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

CLBインスタンスが存在するvSwitchのID。 vSwitchとクラスターは同じVPCにデプロイする必要があります。

この注釈を使用する場合は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type注釈をintranetに設定する必要があります。

VPCコンソールにログインして、vSwitch IDを照会できます。

デフォルト値なし

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip

内部向けCLBインスタンスのIPアドレス。

  • IPアドレスは、vSwitchのCIDRブロック内にある必要があります。 IPv4アドレスのみがサポートされています。 この注釈は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id注釈と組み合わせて使用する必要があります。

  • IPアドレスを指定した後は変更できません。

デフォルト値なし

CCM 2.7.0以降

apiVersion: v1
kind: Service
metadata:
 annotations:
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
 name: nginx
 namespace: default
spec:
 type: LoadBalancer
 ports:
 - port: 80
   targetPort: 80
   name: http
 selector:
   app: nginx

CLBインスタンスに追加タグを追加する

注釈service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

説明

デフォルト値

サポートされているCCMバージョン

CLBインスタンスに追加するタグ。 複数のタグはカンマ(,)で区切ります。 例: "k1=v1,k2=v2"

デフォルト値なし

CCM 1.9.3以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2" 
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

IPv6 CLBインスタンスの作成

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

説明

既定値

サポートされているCCMバージョン

CLBインスタンスのIPバージョン。指定後はIPバージョンを変更できません。この注釈を使用するには、クラスターのkube-proxyモードがIPVSに設定されていることを確認してください。有効な値:

  • ipv4

  • ipv6 IPv6アドレスはIPv6ネットワークでのみ使用できます。

ipv4

CCM 1.9.3.220-g24b1885-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
  name: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

CLBインスタンスの削除保護を有効にする

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection

説明

デフォルト値

サポートされているCCMバージョン

CLBインスタンスの削除保護を有効にするかどうかを指定します。有効な値:

  • on

  • off

重要

LoadBalancerサービス用に作成されたCLBインスタンスに対して、CLBコンソールで手動で削除保護を有効にした場合、kubectl delete svc {your-svc-name}コマンドを実行してCLBインスタンスを削除できます。

on

CCM 1.9.3.313-g748f81e-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

CLBインスタンスの設定読み取り専用モードを有効にする

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

説明

既定値

サポートされているCCMバージョン

CLBインスタンスの設定読み取り専用モードを有効にするかどうかを指定します。有効な値:

  • ConsoleProtection

  • NonProtection

ConsoleProtection

CCM 1.9.3.313-g748f81e-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

CLBインスタンスの名前を指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

説明

既定値

サポートされているCCMバージョン

CLBインスタンスの名前。名前は2~128文字で、文字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)を使用できます。名前は文字で始める必要があります。

既定値なし

CCM 1.9.3.313-g748f81e-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

CLBインスタンスが属するリソースグループを指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

説明

デフォルト値

サポートされているCCMバージョン

CLBインスタンスが属するリソースグループのID。リソースグループは、指定した後は変更できません。 リソース管理コンソール にログインして、リソースグループIDを照会できます。

デフォルト値なし

CCM 1.9.3.313-g748f81e-aliyun以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

サービスのホスト名を指定する

以下のアノテーションが使用されます。

アノテーション

説明

デフォルト値

サポートされているCCMバージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname

サービスのホスト名を指定します。ホスト名は、ドメイン名の命名規則に準拠している必要があります。

以下の点に注意してください。

  • このアノテーションを追加すると、サービスの外部IPアドレスは、デフォルトのCLB IPアドレスからyour_service_nameに変更されます。クラスター内からCLB IPアドレスにアクセスすると、リクエストは最初に該当するCLBインスタンスに転送されます。

  • このアノテーションを追加した後、リスナープロトコルがTCPまたはUDPの場合、クラスター内からのリクエストがCLB IPアドレスに転送されるとループが発生します。詳細については、SLBインスタンスにアクセスできないのはなぜですか?を参照してください。

  • このアノテーションは、ドメイン名をCLBインスタンスに自動的に関連付けるものではありません。ドメイン名コンソールにログインしてドメイン名を購入し、CLBインスタンスに関連付けることができます。ドメイン名の購入方法については、ドメイン名とはの「ドメイン名の購入」セクションを参照してください。

デフォルト値なし

CCM 2.3.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
  name: nginx-svc
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

予期される出力:

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP            PORT(S)                      AGE
nginx-svc    loadBalancer   47.100.XX.XX     www.example.com        80:30248/TCP,443:32670/TCP   10s

LCU課金方式のCLBインスタンスを作成する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

説明

デフォルト値

サポートされているCCMバージョン

CLBインスタンスの課金方式。有効な値:

  • PayBySpec: CLBインスタンスは、その仕様に基づいて課金されます。これがデフォルト値です。

  • PayByCLCU: CLBインスタンスは、ロードバランサーキャパシティユニット(LCU)に基づいて課金されます。

重要

LCU課金方式のCLBインスタンスの仕様を変更することはできません。PayByCLCU を指定し、同時に service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec アノテーションを追加することはできません。

PayBySpec

CCM 2.4.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーを管理するための一般的な操作

TCP ベースの CLB インスタンスのセッション持続期間を指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout

説明

デフォルト値

サポートされている CCM バージョン

セッション持続期間。単位: 秒。この注釈は、TCP リスナーにのみ適用されます。CLB インスタンスに複数の TCP リスナーがある場合、設定はすべての TCP リスナーに適用されます。

単位: 秒。有効な値: 0 ~ 3600。デフォルト値: 0。デフォルトでは、セッション持続は無効になっています。詳細については、CreateLoadBalancerTCPListener を参照してください。

0

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Cookie を挿入して HTTP または HTTPS リスナーのセッション持続を有効にする

次の注釈が使用されます。Cookie を挿入してセッション持続を有効にする場合は、次の注釈が必要です。

  • 次の注釈は、HTTP ベースおよび HTTPS ベースの CLB インスタンスにのみ適用されます。

  • CLB インスタンスに複数の HTTP または HTTPS リスナーがある場合、設定はすべての HTTP または HTTPS リスナーに適用されます。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session

セッション持続を有効にするかどうかを指定します。この注釈は、HTTP および HTTPS リスナーにのみ適用されます。有効な値:

  • on

  • off

詳細については、CreateLoadBalancerHTTPListener および CreateLoadBalancerHTTPSListener を参照してください。

off

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type

Cookie の処理に使用される方法。この注釈は、HTTP および HTTPS リスナーにのみ適用されます。注釈 service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-sessionon に設定されている場合は、この注釈を指定する必要があります。有効な値:

  • insert: Cookie を挿入します。

  • server: Cookie を書き換えます。

詳細については、CreateLoadBalancerHTTPListener および CreateLoadBalancerHTTPSListener を参照してください。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout

Cookie のタイムアウト期間。この注釈は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session 注釈が on に設定され、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type 注釈が insert に設定されている場合に必須です。単位: 秒。有効な値: 1 ~ 86400。

詳細については、CreateLoadBalancerHTTPListener および CreateLoadBalancerHTTPSListener を参照してください。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie

バックエンドサーバーで設定された Cookie の名前。

Cookie は 1 ~ 200 文字の長さで、ASCII 文字と数字のみを含めることができます。カンマ (,)、セミコロン (;)、またはスペース文字を含めることはできません。ドル記号 ($) で始めることはできません。

この注釈は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session 注釈が on に設定され、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type 注釈が server に設定されている場合に必須です。

詳細については、CreateLoadBalancerHTTPListener および CreateLoadBalancerHTTPSListener を参照してください。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

CLB インスタンスの ACL を構成する

次の注釈が使用されます。これらの注釈は必須です。

この注釈を使用してアクセス制御が構成された CLB インスタンスを作成する前に、CLB コンソール で ACL を作成し、ACL の ID を記録する必要があります。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status

アクセス制御を有効にするかどうかを指定します。有効な値:

  • on

  • off

off

CCM 1.9.3.164-g2105d2e-aliyun 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id

リスナーに関連付ける ACL の ID。service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status 注釈が "on" に設定されている場合は、この注釈が必要です。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type

ACL のタイプ。有効な値:

  • white: ホワイトリスト。ACL 内の IP アドレスまたは CIDR ブロックからのリクエストのみが転送されます。指定された IP アドレスからのみアプリケーションへのアクセスを許可する場合に、IP アドレスのホワイトリストを使用できます。ホワイトリストが正しく構成されていない場合は、リスクが発生する可能性があります。ホワイトリストを設定すると、CLB インスタンスはホワイトリスト内の IP アドレスからのリクエストのみを転送します。ホワイトリストを有効にしても ACL に IP アドレスを追加しないと、すべてのリクエストが転送されます。

  • black: ブラックリスト。ACL 内の IP アドレスまたは CIDR ブロックからのすべてのリクエストは転送されません。指定された IP アドレスからのみアプリケーションへのアクセスを拒否する場合に、IP アドレスのブラックリストを使用できます。IP アドレスのブラックリストを有効にしてもブラックリストに IP アドレスを追加しないと、すべてのリクエストが転送されます。この注釈は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status 注釈が on に設定されている場合に必須です。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white" # ホワイトリスト
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

CLB インスタンスのポート転送を構成する

ポート転送により、CLB インスタンスは HTTP ポートからのリクエストを HTTPS ポートに転送できます。

次の注釈が使用されます。これらの注釈は必須です。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

CLB インスタンスの証明書の ID。

CLB コンソール にログインし、証明書ページで証明書 ID を表示できます。

説明

証明書の作成方法の詳細については、Alibaba Cloud SSL 証明書サービスの証明書を使用する を参照してください。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port

HTTP ポートからのリクエストを指定された HTTPS ポートに転送します。例: 80:443

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

CLB インスタンスのスケジューリングアルゴリズムを指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

説明

デフォルト値

サポートされている CCM バージョン

スケジューリングアルゴリズム。有効な値:

  • wrr: ウェイトの高いバックエンドサーバーは、ウェイトの低いバックエンドサーバーよりも多くのリクエストを受信します。

  • rr: ラウンドロビンアルゴリズムが使用されます。リクエストはバックエンドサーバーに順番に転送されます。

rr

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

UDP リスナーを作成する

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

HTTP リスナーを作成する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

説明

デフォルト値

サポートされている CCM バージョン

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

HTTPS リスナーを作成する

次の注釈が使用されます。

CLB インスタンスの HTTPS リスナーは、HTTPS リクエストを HTTP リクエストに復号化し、リクエストをバックエンドサーバーの Pod に転送します。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

CLB インスタンスの証明書の ID。

CLB コンソール にログインし、証明書ページで証明書 ID を表示できます。

説明

証明書の作成方法の詳細については、Alibaba Cloud SSL 証明書サービスの証明書を使用する を参照してください。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

ヘルスチェックを有効にするリスナーを作成する

TCP ヘルスチェックを有効にする

次の注釈が使用されます。これらの注釈は必須です。

デフォルトでは、TCP ポートのヘルスチェックは有効になっています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

TCP または UDP リスナーのヘルスチェックを有効にするかどうかを指定します。有効な値:

  • on

  • off

on

CCM 2.6.0 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

ヘルスチェックのタイプ。有効な値:

  • tcp

  • http

詳細については、CreateLoadBalancerTCPListener を参照してください。

tcp

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

ヘルスチェックのタイムアウト期間。この注釈は、TCP ヘルスチェックに適用されます。バックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。単位: 秒。有効な値: 1 ~ 300。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout 注釈の値が service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval 注釈の値よりも小さい場合、最初の注釈は有効になりません。タイムアウト期間は、2 番目の注釈の値に設定されます。詳細については、CreateLoadBalancerTCPListener を参照してください。

5

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

unhealthy なバックエンドサーバーが healthy と宣言されるまでに発生する必要がある、連続した正常なヘルスチェックの数。

有効な値: 2 ~ 10。詳細については、CreateLoadBalancerTCPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

正常なバックエンドサーバーが異常と宣言されるまでに発生する必要がある、連続した失敗したヘルスチェックの数。有効な値: 2 ~ 10。詳細については、CreateLoadBalancerTCPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

ヘルスチェックを実行する間隔。単位: 秒。有効な値: 1 ~ 50。詳細については、CreateLoadBalancerTCPListener を参照してください。

2

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"  # ヘルスチェックを有効にする
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

UDP ヘルスチェックを有効にする

次の注釈が使用されます。これらの注釈は必須です。

デフォルトでは、UDP ポートのヘルスチェックは有効になっています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

TCP または UDP リスナーのヘルスチェックを有効にするかどうかを指定します。有効な値:

  • on

  • off

on

CCM 2.6.0 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

ヘルスチェックのタイムアウト期間。この注釈は、TCP ヘルスチェックに適用されます。バックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。単位: 秒。有効な値: 1 ~ 300。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout 注釈の値が service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval 注釈の値よりも小さい場合、最初の注釈は有効になりません。タイムアウト期間は、2 番目の注釈の値に設定されます。詳細については、CreateLoadBalancerUDPListener を参照してください。

5

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

異常なバックエンドサーバーが正常と宣言されるまでに発生する必要がある、連続した正常なヘルスチェックの数。

有効な値: 2 ~ 10。詳細については、CreateLoadBalancerUDPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

正常なバックエンドサーバーが異常と宣言されるまでに発生する必要がある、連続した失敗したヘルスチェックの数。有効な値: 2 ~ 10。詳細については、CreateLoadBalancerUDPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

ヘルスチェックを実行する間隔。単位: 秒。有効な値: 1 ~ 50。詳細については、CreateLoadBalancerUDPListener を参照してください。

2

CCM 1.9.3 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on" # ヘルスチェックを有効にする
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

TCP または UDP リスナーのヘルスチェックを無効にする

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

説明

デフォルト値

サポートされている CCM バージョン

TCP または UDP リスナーのヘルスチェックを有効にするかどうかを指定します。有効な値:

  • on

  • off

on

CCM 2.6.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # ヘルスチェックを無効にする。
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

HTTP ヘルスチェックを有効にする

次の注釈が使用されます。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

有効な値:

  • on: デフォルトでは、TCP リスナーの場合は値が on に設定されており、変更できません。TCP リスナーを使用する場合は、この注釈は不要です。

  • off: デフォルトでは、HTTP リスナーの場合は値が off に設定されています。

off

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

ヘルスチェックのタイプ。有効な値:

  • tcp

  • http

詳細については、CreateLoadBalancerHTTPListener を参照してください。

tcp

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri

ヘルスチェックに使用する URI (Uniform Resource Identifier)。ヘルスチェックのタイプが TCP に設定されている場合、この注釈は不要です。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode

ヘルスチェックが成功した場合に返される HTTP ステータスコード。複数の HTTP ステータスコードをカンマ (,) で区切ります。有効な値:

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

詳細については、CreateLoadBalancerHTTPListener を参照してください。

http_2xx

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain

ヘルスチェックに使用するドメイン名。有効な値:

  • $_ip: バックエンドサーバーのプライベート IP アドレス。このパラメータを指定しないか、値を $_ip に設定すると、CLB インスタンスは各バックエンドサーバーのプライベート IP アドレスをヘルスチェックに使用します。

  • domain: ドメイン名は 1 ~ 80 文字の長さで、文字、数字、ピリオド (.)、およびハイフン (-) を含めることができます。

詳細については、CreateLoadBalancerHTTPListener を参照してください。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout

ヘルスチェックのタイムアウト期間。この注釈は、HTTP ヘルスチェックに適用されます。バックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。

単位: 秒。有効な値: 1 ~ 300。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout の値が service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval の値よりも小さい場合、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout の値は無効になり、タイムアウト期間は service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval の値になります。

詳細については、CreateLoadBalancerHTTPListener を参照してください。

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

異常なバックエンドサーバーが正常と宣言されるまでに発生する必要がある、連続した正常なヘルスチェックの数。

有効な値: 2 ~ 10。詳細については、CreateLoadBalancerHTTPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

正常なバックエンドサーバーが異常と宣言されるまでに発生する必要がある、連続した失敗したヘルスチェックの数。有効な値: 2 ~ 10。詳細については、CreateLoadBalancerHTTPListener を参照してください。

3

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

ヘルスチェックを実行する間隔。単位: 秒。有効な値: 1 ~ 50。詳細については、CreateLoadBalancerHTTPListener を参照してください。

2

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method

HTTP リスナーが使用するヘルスチェックメソッド。有効な値:

  • head

  • get

デフォルト値なし

CCM 2.3.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on" # HTTPヘルスチェックを有効にする
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    # オプション。ヘルスチェックのHTTPステータスコードを指定します。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # オプション。ヘルスチェックのドメイン名を指定します。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # オプション。ヘルスチェックメソッドを指定します。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーの接続ドレイニングを構成する

次の注釈が使用されます。これらの注釈は必須です。

TCP および UDP リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain

接続ドレイニングを有効にするかどうかを指定します。有効な値:

  • on

  • off

デフォルト値なし

CCM 2.0.1 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout

接続ドレイニングのタイムアウト期間。単位: 秒。有効な値: 10 ~ 900。

デフォルト値なし

CCM 2.0.1 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーに追加のリクエストヘッダーを構成する

次の注釈が使用されます。

HTTP および HTTPS リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto

X-Forwarded-Proto ヘッダーを使用して CLB インスタンスのリスナー プロトコルを取得するかどうかを指定します。有効な値:

  • on

  • off

off

CCM 2.1.0 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport

XForwardedFor_SLBPORT ヘッダーを使用して CLB インスタンスのリスナー ポートを取得するかどうかを指定します。有効な値:

  • on

  • off

off

CCM 2.9.1 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport

XForwardedFor_ClientSrcPort ヘッダーを使用して CLB インスタンスのリスナー ポートを取得するかどうかを指定します。有効な値:

  • on

  • off

off

CCM 2.9.1 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーのアイドル接続のタイムアウト期間を指定する

次の注釈が使用されます。

HTTP および HTTPS リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout

リスナーのアイドル接続のタイムアウト期間を指定します。単位: 秒。有効な値: 1 ~ 60。

15

CCM 2.1.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーの HTTP/2 を無効にする

次の注釈が使用されます。

HTTPS リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

CLB インスタンスの証明書の ID。

CLB コンソール にログインし、証明書ページで証明書 ID を表示できます。

説明

証明書の作成方法の詳細については、Alibaba Cloud SSL 証明書サービスの証明書を使用する を参照してください。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled

HTTP/2 を有効にするかどうかを指定します。有効な値:

  • on

  • off

on

CCM 2.1.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off" # HTTP/2を無効にする
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーのリクエストのタイムアウト期間を指定する

次の注釈が使用されます。

HTTP および HTTPS リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout

リクエストのタイムアウト期間。単位: 秒。有効な値: 1 ~ 180。

バックエンドサーバーがタイムアウト期間内に応答に失敗した場合、CLB インスタンスは待機を停止し、クライアントに HTTP 504 エラーコードを返します。

60

CCM 2.3.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーの接続のタイムアウト期間を指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout

TCP リスナーのみがサポートされています。

説明

デフォルト値

サポートされている CCM バージョン

接続のタイムアウト期間。単位: 秒。有効な値: 10 ~ 900。詳細については、CreateLoadBalancerTCPListener を参照してください。

デフォルト値なし

CCM 2.3.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーのセキュリティポリシーを構成する

次の注釈が使用されます。

HTTPS リスナーのみがサポートされています。

注釈

説明

デフォルト値

サポートされている CCM バージョン

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

複数の値をカンマ (,) で区切ります。例: https:443,http:80

デフォルト値なし

CCM 1.9.3 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

CLB インスタンスの証明書の ID。

CLB コンソール にログインし、証明書ページで証明書 ID を表示できます。

説明

証明書の作成方法の詳細については、Alibaba Cloud SSL 証明書サービスの証明書を使用する を参照してください。

デフォルト値なし

CCM 1.9.3.164-g2105d2e-aliyun 以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy

TLS セキュリティポリシー。各セキュリティポリシーには、HTTPS で使用可能な TLS プロトコルバージョンと暗号スイートが含まれています。詳細については、CreateLoadBalancerHTTPSListener を参照してください。有効な値:

  • tls_cipher_policy_1_0

  • tls_cipher_policy_1_1

  • tls_cipher_policy_1_2

  • tls_cipher_policy_1_2_strict

  • tls_cipher_policy_1_2_strict_with_1_3

tls_cipher_policy_1_0

CCM 2.4.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

リスナーに TCP と UDP の両方を構成する

説明

Kubernetes 1.24 以降を実行しているクラスターのみがこの機能をサポートしています。クラスターの更新方法の詳細については、ACK クラスタを手動でアップグレードする を参照してください。

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  type: LoadBalancer

TCP および UDP リスナーのプロキシプロトコルを構成する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

説明

デフォルト値

サポートされている CCM バージョン

TCP または UDP リスナーのプロキシプロトコルを有効にするかどうかを指定します。プロキシプロトコルが構成されると、クライアントの IP アドレスをバックエンドサーバーに渡すことができます。有効な値:

  • on

  • off

重要

この機能を有効にすると、サービスが中断される可能性があります。プロキシプロトコルを有効にする前に、アプリケーションを停止して更新する必要があります。注意して進めてください。

off

CCM 2.6.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on" # プロキシプロトコルを有効にする
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer