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

Container Compute Service:アノテーションを使用したクラシックロードバランサー (CLB) の設定

最終更新日:Apr 21, 2026

高度な負荷分散機能を有効にするには、Service YAML ファイルでアノテーションを使用して、CLB、リスナー、バックエンドサーバーグループの 3 種類のリソースを設定します。

目次

主な内容

クイックリンク

アノテーションの使用

CLB の操作

リスナーの操作

バックエンドサーバーグループの操作

関連ドキュメント

アノテーション

  • アノテーションでは大文字と小文字が区別されます。

  • アノテーションを使用する前に、このトピックでサポートされている Cloud Controller Manager (CCM) のバージョンを確認してください。CCM をアップグレードするには、「コンポーネントの管理」をご参照ください。CCM の変更履歴については、「Cloud Controller Manager」をご参照ください。

  • 2019 年 9 月 11 日以降、annotations のプレフィックス alicloudalibaba-cloud に更新されました。

    例:

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

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

    システムは alicloud 形式との互換性を維持しているため、既存の設定を変更する必要はありません。

CLB の操作

パブリックロードバランサーの作成

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

プライベートロードバランサーの作成

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

説明

デフォルト

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

ロードバランサーのアドレスタイプを指定します。有効な値:

  • internet: サービスをパブリックネットワーク経由で公開します。これはデフォルト値です。CLB インスタンスの IP バージョンインターネットに接続 である必要があります。

  • intranet: プライベートネットワーク経由でサービスを公開します。CLB インスタンスの IP バージョン内部ネットワークに接続 である必要があります。

internet

v1.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

ロードバランサーの仕様の指定

アノテーション: 複数。次の表をご参照ください。

アノテーション

説明

デフォルト値

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

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

インスタンスの課金方法を指定します。仕様課金インスタンスを作成するには、`PayBySpec` を使用します。

  • paybytraffic

  • paybybandwidth

PayBySpec

v1.9.3 以降

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

ロードバランサーインスタンスの仕様。詳細については、「CreateLoadBalancer」をご参照ください。このアノテーションを使用して、特定の仕様の CLB インスタンスを作成したり、既存のインスタンスの仕様を更新したりします。

重要

CLB コンソールで仕様を変更した場合 (この操作は仕様課金インスタンスでのみサポートされます)、CCM が変更を元に戻す可能性があります。

slb.s1.small

v1.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

既存のロードバランサーの使用

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

説明

デフォルト値

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

ロードバランサーインスタンスの ID。このアノテーションを使用して、既存の CLB インスタンスを指定します。

  • デフォルトでは、既存のロードバランサーインスタンスを使用しても、そのリスナーは上書きされません。既存のリスナーを強制的に上書きするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners"true" に設定します。この設定は現在のサービスのリスナーのみを上書きし、他のリスナーには影響しません。

    説明

    デフォルトでは、次の理由により既存のリスナーは上書きされません:

    • ワークロードが既存のロードバランサーインスタンスのリスナーにすでにバインドされている場合、強制的な上書きはサービス中断を引き起こす可能性があります。

    • CCM はバックエンド設定のサポートが限定的であり、複雑な設定を管理できません。複雑な要件がある場合は、コンソールでリスナーを設定し、上書きされないようにしてください。

    これらの理由から、リスナーを強制的に上書きしないことを推奨します。既存のロードバランサーインスタンス上のリスナーポートが使用されなくなった場合にのみ、リスナーを強制的に上書きしてください。

  • 既存のロードバランサーインスタンスを再利用する場合、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags アノテーションを使用して追加のタグを追加することはできません。

なし

v1.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

既存のロードバランサーの使用とリスナーの上書き

アノテーション: 複数。次の表をご参照ください。この操作は既存のリスナーを強制的に上書きします。リスナーポートが競合する場合、既存のリスナーは削除されます。

アノテーション

説明

デフォルト値

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

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

既存の CLB インスタンスの ID。

  • デフォルトでは、既存のロードバランサーインスタンスを使用しても、そのリスナーはオーバーライドされません。既存のリスナーを強制的にオーバーライドするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners アノテーションを "true" に設定します。この設定は現在のサービスのリスナーのみをオーバーライドし、他のリスナーには影響しません。

    説明

    デフォルトでは、既存のロードバランサーを再利用しても、そのリスナーは 2 つの理由でオーバーライドされません:

    • サービスが既存のロードバランサーのリスナーにバインドされている場合、強制的なオーバーライドはサービス中断を引き起こす可能性があります。

    • Cloud Controller Manager (CCM) はバックエンド設定のサポートが限定的であり、複雑な設定を処理できません。複雑なバックエンド設定が必要な場合は、オーバーライドせずにコンソールでリスナーを設定してください。

    これらの理由から、リスナーの強制的なオーバーライドは行わないでください。ただし、既存のロードバランサー上のリスナーポートが使用されなくなった場合は、強制的にオーバーライドできます。

  • 既存のロードバランサーを使用する場合、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags アノテーションで追加のタグを追加することはサポートされていません。

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

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

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

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

重要

既存の CLB を再利用し、force-override"true" に設定する場合、複数のサービスで同じ CLB 上の同じリスナーを再利用しないでください。さもないと、リスナー設定の競合が発生します。

"false"

v1.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 インスタンスの作成ページをご参照ください。

アノテーション

説明

デフォルト値

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

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

プライマリアベイラビリティゾーンの ID。

なし

v1.9.3.10-gfb99107-aliyun 以降

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

スタンバイアベイラビリティゾーンの ID。

なし

v1.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

帯域幅課金ロードバランサーの作成

アノテーション: 複数。次の表をご参照ください。以下の 2 つのアノテーションが必要です。

アノテーション

説明

デフォルト値

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

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

ロードバランサーインスタンスの課金方法。有効な値:

  • paybytraffic

  • paybybandwidth

paybytraffic

v1.9.3 以降

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

ロードバランサーインスタンスのピーク帯域幅。このアノテーションはパブリックロードバランサーインスタンスにのみ適用されます。その他の制限については、「パブリックロードバランサーインスタンスの課金方法の変更」をご参照ください。

50

v1.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

ロードバランサーの VSwitch の指定

アノテーション: 複数。次の表をご参照ください。以下の 2 つのアノテーションが必要です。

アノテーション

説明

デフォルト値

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

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

ロードバランサーのアドレスタイプを指定します。有効な値:

  • internet: サービスをパブリックネットワーク経由で公開します。これはデフォルト値です。CLB インスタンスの IP バージョン は、インターネットに接続 である必要があります。

  • intranet: サービスをプライベートネットワーク経由で公開します。CLB インスタンスの IP バージョン内部ネットワークに接続 である必要があります。

internet

v1.9.3 以降

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

ロードバランサーインスタンスが属する VSwitch の ID。VSwitch は Kubernetes クラスターと同じ VPC にある必要があります。

このアノテーションでは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type"intranet" に設定する必要があります。

VSwitch ID は VPC コンソールで確認できます。

なし

v1.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

プライベートロードバランサーの IP アドレスの指定

アノテーション: 複数。次の表をご参照ください。以下の 3 つのアノテーションが必要です。

アノテーション

説明

デフォルト値

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

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

ロードバランサーのアドレスタイプを指定します。有効な値:

  • internet: サービスをパブリックネットワーク経由で公開します。これがデフォルト値です。CLB インスタンスの IP バージョンインターネットに接続 である必要があります。

  • intranet: プライベートネットワーク上でサービスを公開します。 CLB インスタンスの IP バージョン内部ネットワークに接続 である必要があります。

internet

v1.9.3 以降

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

ロードバランサーインスタンスが属する VSwitch の ID。VSwitch は Kubernetes クラスターと同じ VPC にある必要があります。

このアノテーションでは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type を "intranet" に設定する必要があります。

VSwitch ID は VPC コンソールで確認できます。

なし

v1.9.3 以降

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

プライベートロードバランサーインスタンスの IP アドレス。

  • IP アドレスは VSwitch の CIDR ブロック内にある必要があります。IPv4 アドレスのみがサポートされています。このアノテーションは service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id アノテーションと一緒に使用する必要があります。

  • IP アドレスはロードバランサーインスタンスの作成後に変更できません。

なし

v2.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

ロードバランサーへのタグの追加

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

説明

デフォルト値

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

追加するタグのカンマ区切りリスト。例:"k1=v1,k2=v2"

なし

v1.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 ロードバランサーの作成

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

説明

デフォルト値

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

ロードバランサーインスタンスの IP バージョン。IP バージョンはインスタンスの作成後に変更できません。この機能を使用するには、クラスター内の kube-proxy が IPVS モードで実行されている必要があります。有効な値:

  • ipv4:IPv4。

  • ipv6:IPv6。結果として得られる IPv6 アドレスは、IPv6 が有効な環境からのみアクセス可能です。

ipv4

v1.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

ロードバランサーの削除保護の有効化

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection

説明

デフォルト値

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

ロードバランサーインスタンスの削除保護が有効かどうかを指定します。有効な値:

  • on

  • off

重要

CLB コンソールで削除保護を有効にしても、kubectl delete svc {your-svc-name} コマンドを実行することでロードバランサーインスタンスは削除できてしまう点にご注意ください。

on

v1.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

ロードバランサーの変更保護の有効化

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

説明

デフォルト値

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

ロードバランサーインスタンスの変更保護ステータスを指定します。有効な値:

  • ConsoleProtection

  • NonProtection

ConsoleProtection

v1.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

ロードバランサーの名前の指定

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

説明

デフォルト値

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

ロードバランサーインスタンスの名前。名前は 2~128 文字で、英字または漢字で始まり、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) を含めることができます。

なし

v1.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

ロードバランサーのリソースグループの指定

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

説明

デフォルト値

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

ロードバランサーインスタンスのリソースグループの ID。リソースグループ ID は一度設定すると変更できません。リソースグループ ID は Resource Management コンソールで確認できます。

なし

v1.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

なし

v1.9.3 以降

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

サービスのホスト名を指定します。ホスト名は DNS の命名規則に準拠する必要があります。

次の点にご注意ください:

  • このアノテーションを追加すると、サービスの EXTERNAL-IP がデフォルトの CLB IP アドレスから ${your_service_hostname} に変更されます。クラスター内から CLB IP アドレスにアクセスすると、トラフィックは CLB インスタンスを経由してクラスターに転送されます。

  • このアノテーションを追加すると、リスナープロトコルが TCP または UDP の場合、クラスター内から CLB IP アドレスにアクセスする際にヘアピン問題が発生します。詳細については、「クライアントがロードバランサーにアクセスできない」をご参照ください。

  • このアノテーションは DNS レコードを自動的に作成しません。ホスト名を CLB インスタンスの IP アドレスにポイントする DNS A レコードまたは CNAME レコードを手動で作成する必要があります。ドメイン名の詳細については、「Alibaba Cloud Domains とは」をご参照ください。

なし

v2.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/TCP,443/TCP   10s

従量課金ロードバランサーの作成

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

説明

デフォルト値

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

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

  • PayBySpec:デフォルト値。仕様による課金。

  • PayByCLCU:消費量による課金。

重要

消費量で課金されるロードバランサーインスタンスの仕様は設定できません。値 PayByCLCUservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec アノテーションと一緒には使用できません。

PayBySpec

v2.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 セッション維持の設定

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout

説明

デフォルト値

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

TCP リスナーのセッション維持時間を指定します。ロードバランサーインスタンスに複数の TCP リスナーがある場合、この設定はデフォルトですべてに適用されます。

値は秒単位で、0 から 3600 の範囲です。デフォルト値は 0 で、セッション維持を無効にします。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。

0

v1.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

スティッキーセッション (クッキーの挿入) の設定

この機能は、次の表に示すように、複数のアノテーションを使用して設定されます。クッキーの挿入方法を使用するには、これらのアノテーションのうち 3 つが必要です。

  • この機能は、HTTP または HTTPS リスナーを持つロードバランサーインスタンスにのみ適用されます。

  • デフォルトでは、このスティッキーセッション設定は、設定されているすべての HTTP および HTTPS リスナーに適用されます。

アノテーション

説明

デフォルト値

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

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

スティッキーセッションを有効または無効にします。この設定は HTTP および HTTPS リスナーにのみ適用されます。有効な値:

  • on

  • off

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

off

v1.9.3 以降

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

クッキーの処理方法を指定します。この設定は HTTP および HTTPS リスナーに対してのみ有効です。このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-sessionon に設定されている場合に必要です。有効な値:

  • insert:クッキーを挿入します。

  • server:クッキーを書き換えます。

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

なし

v1.9.3 以降

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

クッキーのタイムアウト (秒)。有効な範囲は 1~86,400 です。このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-sessionon に、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-typeinsert に設定されている場合に必要です。

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

なし

v1.9.3 以降

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

サーバー上で設定されているクッキーの名前。

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

このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-sessionon に、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-typeserver に設定されている場合に必要です。

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

なし

v1.9.3 以降

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

スティッキーセッション設定が適用されるリスナーポートを指定します。デフォルトでは、設定はすべてのリスナーに適用されます。複数のエントリはカンマ (,) で区切ります。例:https:443,http:80

なし

v1.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

アクセス制御リストの設定

注意: 次の表の 3 つのアノテーションが必要です。

これらのアノテーションを使用する前に、クラシックロードバランサー (CLB) コンソールでアクセス制御リストを作成し、その ID を記録してください。

アノテーション

説明

デフォルト値

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

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

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

  • on

  • off

off

v1.9.3.164-g2105d2e-aliyun 以降

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

リスナーに関連付けるアクセス制御リストの ID。このパラメーターは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status"on" に設定されている場合に必要です。

なし

v1.9.3.164-g2105d2e-aliyun 以降

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

アクセス制御のタイプ。指定可能な値:

  • white:選択したアクセス制御リスト内の IP アドレスまたは IP アドレス範囲からのリクエストのみを転送するホワイトリスト。ホワイトリストは、アプリケーションが特定の IP アドレスからのみアクセス可能である必要があるシナリオに適しています。ホワイトリストを使用すると、ビジネスリスクが生じる可能性があります。ホワイトリストを有効にしてもアクセス制御リストが空の場合、リスナーはすべてのリクエストを転送します。

  • black:選択したアクセス制御リスト内の IP アドレスまたは IP アドレス範囲からのすべてのリクエストをブロックするブラックリスト。ブラックリストは、特定の IP アドレスからのアクセスを制限したいシナリオに適しています。ブラックリストを有効にしてもアクセス制御リストが空の場合、すべてのリクエストが転送されます。

なし

v1.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

ロードバランサーのポートフォワーディングの設定

ポートフォワーディングは、HTTP ポートからのリクエストを HTTPS ポートにリダイレクトします。

アノテーション: 以下の 3 つのアノテーションが必要です。

アノテーション

説明

デフォルト値

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

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

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

なし

v1.9.3 以降

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

Alibaba Cloud 証明書 ID。

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

説明

証明書を作成するには、「Alibaba Cloud 発行の証明書の選択」をご参照ください。

なし

v1.9.3.164-g2105d2e-aliyun 以降

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

HTTP リクエストを HTTPS ポートに転送します。例:80:443

なし

v1.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

ロードバランサーのスケジューリングアルゴリズム

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

説明

デフォルト値

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

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

  • wrr:重み付けラウンドロビン。重みが大きいバックエンドサーバーは、より多くの受信リクエストを受け取ります。

  • rr:ラウンドロビン。バックエンドサーバーはリクエストを順番に受け取ります。

rr

v1.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

なし

v1.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 リクエストを復号し、HTTP リクエストとしてバックエンド Pod に送信します。

アノテーション

説明

デフォルト値

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

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

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

なし

v1.9.3 以降

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

Alibaba Cloud 証明書 ID。

CLB コンソールにログオンし、証明書 ページで証明書 ID を確認します。

説明

証明書を作成するには、「Alibaba Cloud 発行の証明書の選択」をご参照ください。

なし

v1.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

v2.6.0 以降

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

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

  • tcp

  • http

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

tcp

v1.9.3 以降

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

ヘルスチェックの応答を待つ時間 (秒)。この期間内にバックエンドサーバーが応答しない場合、ヘルスチェックは失敗します。有効な値:1~300。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout の値が service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval の値より小さい場合、前者の設定は無効になり、タイムアウトは後者の値に設定されます。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。

5

v1.9.3 以降

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

バックエンドサーバーのステータスを fail から success に変更するために必要な連続した成功したヘルスチェックの回数。

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

3

v1.9.3 以降

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

バックエンドサーバーのステータスを success から fail に変更するために必要な連続した失敗したヘルスチェックの回数。有効な値:2~10。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。

3

v1.9.3 以降

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

ヘルスチェックの間隔 (秒)。有効な値:1~50。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。

2

v1.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

v2.6.0 以降

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

ヘルスチェックの応答タイムアウト。このパラメーターは UDP リスナーに適用されます。このタイムアウト内にバックエンドサーバーが応答しない場合、ヘルスチェックは失敗します。単位:秒。値の範囲:[1, 300]。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout の値が service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval の値より小さい場合、前者の設定は無効になり、タイムアウトは後者の値に設定されます。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。

5

v1.9.3 以降

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

バックエンドサーバーのステータスを fail から success に変更するために必要な連続した成功したヘルスチェックの回数。

値の範囲:[2, 10]。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。

3

v1.9.3 以降

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

バックエンドサーバーのステータスを success から fail に変更するために必要な連続した失敗したヘルスチェックの回数。値の範囲:[2, 10]。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。

3

v1.9.3 以降

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

ヘルスチェックの間隔。単位:秒。値の範囲:[1, 50]。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。

2

v1.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

v2.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 であり、変更できません。

  • off:HTTP リスナーのデフォルト値は off です。

off

v1.9.3 以降

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

ヘルスチェックのプロトコル。有効な値:

  • tcp

  • http

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

tcp

v1.9.3 以降

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

ヘルスチェックの URI パス。このアノテーションは HTTP ヘルスチェックにのみ必要です。

なし

v1.9.3 以降

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

成功したヘルスチェックを示す HTTP ステータスコード。複数の値をカンマで区切ります。有効な値:

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

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

http_2xx

v1.9.3 以降

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

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

  • $_ip:バックエンドサーバーのプライベート IP アドレスを使用します。このアノテーションが指定されていない場合も、これがデフォルトの動作です。

  • domain:ドメイン名。1~80 文字の長さで、英字、数字、ピリオド (.)、ハイフン (-) のみを含める必要があります。

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

なし

v1.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」をご参照ください。

なし

v1.9.3 以降

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

バックエンドサーバーが正常と見なされるまでに必要な連続した成功したヘルスチェックの回数 (ステータスが fail から success に変更)。

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

3

v1.9.3 以降

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

バックエンドサーバーが異常と見なされるまでに必要な連続した失敗したヘルスチェックの回数 (ステータスが success から fail に変更)。有効な値:2~10。詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。

3

v1.9.3 以降

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

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

2

v1.9.3 以降

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

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

なし

v1.9.3 以降

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

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

  • head

  • get

なし

v2.3.0 以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
    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

なし

v2.0.1 以降

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

接続ドレインのタイムアウトを秒単位で設定します。有効な範囲は 10~900 です。

なし

v2.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

なし

v1.9.3 以降

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

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

  • on

  • off

off

v2.1.0 以降

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

XForwardedFor_SLBPORT ヘッダーフィールドを使用してロードバランサーインスタンスのリスナーポートを取得するかどうかを指定します。有効な値:

  • on

  • off

off

v2.9.1 以降

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

XForwardedFor_ClientSrcPort ヘッダーフィールドを使用してクライアントの送信元ポートを取得するかどうかを指定します。有効な値:

  • on

  • off

off

v2.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

なし

v1.9.3 以降

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

リスナーのアイドルタイムアウトを指定します。単位:秒。有効な値:[1, 60]。

15

v2.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

なし

v1.9.3 以降

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

Alibaba Cloud 上の証明書 ID。

CLB コンソールにログオンし、証明書 ページで証明書 ID を見つけます。

説明

証明書を作成するには、「Alibaba Cloud 発行の証明書の選択」をご参照ください。

なし

v1.9.3.164-g2105d2e-aliyun 以降

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

HTTP/2 機能を有効または無効にします。有効な値:

  • on

  • off

on

v2.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"
  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

なし

v1.9.3 以降

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

リクエストタイムアウトを秒単位で指定します。値は 1~180 の間でなければなりません。

バックエンドサーバーが指定されたタイムアウト内に応答しない場合、ロードバランサーはクライアントに HTTP 504 エラーを返します。

60

v2.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」をご参照ください。

なし

v2.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

なし

v1.9.3 以降

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

Alibaba Cloud 証明書の ID を指定します。

SLB コンソールで、証明書 ページで証明書 ID を確認します。

説明

証明書を作成するには、「Alibaba Cloud 発行の証明書の選択」をご参照ください。

なし

v1.9.3.164-g2105d2e-aliyun 以降

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

セキュリティポリシーを指定します。これにより、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

v2.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 の設定

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 リスナーの Proxy Protocol の設定

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

説明

デフォルト

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

TCP および UDP リスナーに対して Proxy Protocol を有効にします。有効にすると、ロードバランサーはクライアントの送信元アドレスをバックエンドサーバーに渡します。有効な値:

  • on

  • off

重要

この機能はシームレスな移行をサポートしていません。Proxy Protocol の有効化または無効化にはサービスのアップグレードが必要であり、サービスの中断を引き起こします。この設定は慎重に行ってください。

off

v2.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

バックエンドサーバーグループの操作

既存の仮想サーバーグループの再利用

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port。このアノテーションにより、既存の仮想サーバーグループを再利用できます。これは、既存の CLB インスタンスを再利用する場合にのみ適用されます。詳細な例については、「既存のロードバランサーを再利用してクラスター間でサービスをデプロイする」をご参照ください。

サービスのトラフィックの重みの設定

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight

複数のサービスが同じ CLB インスタンスを再利用する場合、このアノテーションを使用して現在のサービスのトラフィックの重みを設定します。この設定は、既存の仮想サーバーグループを再利用する場合にのみ適用されます。詳細な例については、「既存のロードバランサーを再利用してクラスター間でサービスをデプロイする」をご参照ください。

バックエンドサーバーの重み更新のスキップ

アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update

説明

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

サービス同期中に仮想サーバーグループ内のバックエンドサーバーの重みの更新をスキップします。これにより、バックエンドサーバーの重みをを手動で管理できます。有効な値:

  • on

  • off

デフォルト値:off

v2.11.1 以降

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