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

Container Service for Kubernetes:アノテーションを使用したNLBインスタンスの設定

最終更新日:Oct 31, 2024

ServiceのYAMLファイルにアノテーションを追加して、さまざまな負荷分散機能を使用するようにNetwork Load Balancer (NLB) インスタンスを構成できます。 NLBインスタンスは、Alibaba Cloudがすべてのインターネット (IoE) 用に開発した次世代のレイヤー4ロードバランサーです。 NLBインスタンスは、超高性能とオートスケーリングを提供します。 このトピックでは、アノテーションを使用してNLBインスタンス、リスナー、およびバックエンドサーバーグループを設定する方法について説明します。

目次

カテゴリ

ハイパーリンク

注釈使用法ノート

NLBインスタンスを管理する一般的な操作

インターネット向けNLBインスタンスの作成

内部向けNLBインスタンスの作成

NLBインスタンスの名前の指定

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

デュアルスタックNLBインスタンスの作成

NLBインスタンスへの追加タグの追加

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

EIP帯域幅プランをNLBインスタンスに関連付ける

NLBインスタンスの削除保護の有効化

NLBインスタンスの設定読み取り専用モードの有効化

IPv6 NLBインスタンスのネットワークタイプの指定

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

リスナーのセキュリティグループの設定

リスナーにTCPとUDPの両方を設定

TCPリスナーの作成

UDPリスナーの作成

TCP/SSLリスナーの作成

相互認証の有効化

TLSセキュリティポリシーの設定

プロキシプロトコルの設定

追加情報を含むプロキシプロトコルの設定

1秒あたりに作成できる最大接続数の指定

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

バックエンドサーバーグループを管理する一般的な操作

NLBインスタンスのスケジューリングアルゴリズムの指定

接続ドレインの設定

クライアントIP保存の設定

TCPヘルスチェックの設定

HTTPヘルスチェックの設定

バックエンドサーバーグループの種類の指定

既存のvServerグループの再利用

重み付きラウンドロビンを有効にするサービスの重みの指定

使用上の注意

  • クラスターのKubernetesバージョンは1.24以降である必要があり、クラウドコントローラマネージャー (CCM) はV2.5.0以降である必要があります。 クラスターを更新する方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。 コンポーネントの更新方法の詳細については、「コンポーネントの管理」をご参照ください。

  • サービスのNLBインスタンスを設定するには、サービスのspec.loadBalancerClassパラメーターをalibabacloud.com/nlbに設定する必要があります。 それ以外の場合、デフォルトでClassic Load Balancer (CLB) インスタンスが作成されます。

  • サービスの作成後、CLBとNLBの間でロードバランサーインスタンスのタイプを変更するために、サービスのspec.loadBalancerClassパラメーターを変更することはできません。

  • Container Service for Kubernetes (ACK) コンソールを使用してNLBインスタンスを管理することはできません。 NLBインスタンスを管理するには、kubectlを使用します。

NLBインスタンスを管理する一般的な操作

インターネット向けNLBインスタンスの作成

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

説明

デフォルト値

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

NLBインスタンスがデプロイされているゾーン。

NLBコンソールにログインして、NLBをサポートするリージョンとゾーンを表示できます。 NLBインスタンスごとに少なくとも2つのゾーンを選択する必要があります。 複数のゾーンはコンマ (,) で区切ります。 例: cn-hangzhou-k:vsw-i123456、cn-hangzhou-j:vsw-j654321

デフォルト値なし

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

内部向けNLBインスタンスの作成

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

説明

デフォルト値

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

内部向けNLBインスタンスを作成します。 アノテーションの値を変更して、NLBインスタンスのネットワークタイプを変更できます。 有効な値:

  • internet: インターネット向けのNLBインスタンスを作成します。

  • intranet: 内部向けNLBインスタンスを作成します。

NLBコンソールにログインして、NLBをサポートするリージョンとゾーンを表示できます。 NLBインスタンスごとに少なくとも2つのゾーンを選択する必要があります。 複数のゾーンはコンマ (,) で区切ります。 例: cn-hangzhou-k:vsw-i123456、cn-hangzhou-j:vsw-j654321

internet

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

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

デフォルト値なし

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # The name of the NLB instance. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

NLBインスタンスが属するリソースグループのID。 リソースグループの指定後は変更できません。

リソース管理コンソールにログインして、リソースグループIDを照会できます。

デフォルト値なし

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:  "${your-resource-group-id}" # The ID of the resource group. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

デュアルスタックNLBインスタンスの作成

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

説明

デフォルト値

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

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

  • ipv4: ipv4。

  • DualStack: IPv4/IPv6デュアルスタック。

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-mapsアノテーションで指定されたvSwitchに対してIPv6を有効にする必要があります。

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

ipv4

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

追加する追加のタグ。 複数入力する場合は、コンマ (,) で区切ります。 例: k1=v1,k2=v2

デフォルト値なし

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

使用する既存のNLBインスタンスのID。

デフォルト値なし

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

アノテーションは、NLBインスタンスの既存のリスナーを上書きするかどうかを指定します。 有効な値:

  • true: CCMは、サービスの設定に基づいてNLBインスタンスのリスナーを作成、更新、または削除します。

  • false: CCMはNLBインスタンスのリスナーに変更を加えません。

false

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # The ID of the existing NLB instance that you want to use. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

EIP帯域幅プランをNLBインスタンスに関連付ける

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

説明

デフォルト値

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

NLBインスタンスを関連付けるElastic IP Address (EIP) 帯域幅プランのID。

Virtual Private Cloud (VPC) コンソールにログインして、EIP帯域幅プランのIDを照会できます。

デフォルト値なし

CCM 2.9.1以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx" 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

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

  • on

  • オフ

重要

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

on

CCM 2.9.1以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

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

  • ConsoleProtection

  • 非保護

ConsoleProtection

CCM 2.9.1以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

IPv6 NLBインスタンスのネットワークタイプの指定

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

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

  • ipv4: ipv4。

  • DualStack: IPv4/IPv6デュアルスタック。

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-mapsアノテーションで指定されたvSwitchに対してIPv6を有効にする必要があります。

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

ipv4

CCM 2.5.0以降

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

IPv6 NLBインスタンスのネットワークタイプを指定します。 有効な値:

  • イントラネット: プライベートIPv6アドレス。

  • internet: パブリックIPv6アドレス。

説明

パブリックIPv6アドレスを使用するには、NLBインスタンスが存在するVPCにIPv6ゲートウェイを作成する必要があります。 詳細については、「IPv6ゲートウェイの作成と管理」をご参照ください。

イントラネット

CCM 2.9.1以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Specify a public IPv6 address.
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

リスナーのセキュリティグループの構成

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids

説明

デフォルト値

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

リスナー用に設定されたセキュリティグループのID。 ID が複数ある場合は、コンマ (,) で区切ります。 例: sg-aaaaa,sg-bbbbb

デフォルト値なし

CCM 2.6.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # Separate multiple security group IDs with commas (,). 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

リスナーにTCPとUDPの両方を設定

説明

デフォルト値

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

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

デフォルト値なし

非該当

apiVersion: v1
kind: Service
metadata:
  annotations:
      service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

TCPリスナーの作成

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

UDPリスナーの作成

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 80
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

TCP/SSLリスナーの作成

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

リスナーのプロトコルタイプ。 複数のリスナータイプはコンマ (,) で区切ります。 例: TCP:80、TCPSSL:443

デフォルト値なし

CCM 2.5.0以降

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

サーバー証明書ID。 証明書管理サービスコンソールにログインして、SSL証明書IDを表示できます。

デフォルト値なし

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    # If the cluster is deployed in a region in the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-cn-hangzhou. 
    # If the cluster is deployed in a region outside the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-ap-southeast-1. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The appended certificate ID}"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

相互認証の有効化

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

リスナーのプロトコルタイプ。 複数のリスナータイプはコンマ (,) で区切ります。 例: TCP:80、TCPSSL:443

デフォルト値なし

CCM 2.5.0以降

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

サーバー証明書ID。 証明書管理サービスコンソールにログインして、SSL証明書IDを表示できます。

デフォルト値なし

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

認証局 (CA) 証明書ID。 CA証明書IDを表示するには、証明書管理サービスコンソールにログインします。

デフォルト値なし

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

相互認証を有効にするかどうかを指定します。 有効な値:

  • on: 相互認証を有効にします。

  • off: 相互認証を無効にします。

デフォルト値なし

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"   
    # If the cluster is deployed in a region in the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-cn-hangzhou. 
    # If the cluster is deployed in a region outside the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-ap-southeast-1. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The appended certificate ID}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}"  # The CA certificate ID. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

TLSセキュリティポリシーの設定

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

リスナーのプロトコルタイプ。 複数のリスナータイプはコンマ (,) で区切ります。 例: TCP:80、TCPSSL:443

デフォルト値なし

CCM 2.5.0以降

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

サーバー証明書ID。 証明書管理サービスコンソールにログインして、SSL証明書IDを表示できます。

デフォルト値なし

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

セキュリティポリシーのID。 システムおよびカスタムセキュリティポリシーがサポートされています。 有効な値:

  • 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

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    # If the cluster is deployed in a region in the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-cn-hangzhou. 
    # If the cluster is deployed in a region outside the Chinese mainland, the SSL certificate ID appended with region information is ${your-cert-id}-ap-southeast-1. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The appended certificate ID}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

プロキシプロトコルの設定

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

説明

デフォルト値

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

プロキシプロトコルを有効にしてクライアントIPアドレスをバックエンドサーバーに渡すかどうかを指定します。 有効な値:

  • on:: プロキシプロトコルを有効にします。

  • off: プロキシプロトコルを無効にします。

重要

プロキシプロトコルを有効にする前に、バックエンドサービスに対してプロキシプロトコルV2が有効になっているかどうかを確認してください。 プロキシプロトコルV2が無効になっている場合、クライアントIPアドレスをバックエンドサーバーに渡すことはできません。 慎重に設定します。

off

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

追加情報を含むプロキシプロトコルの設定

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

プロキシプロトコルを有効にしてクライアントIPアドレスをバックエンドサーバーに渡すかどうかを指定します。 有効な値:

  • on:: プロキシプロトコルを有効にします。

  • off: プロキシプロトコルを無効にします。

重要

プロキシプロトコルを有効にする前に、バックエンドサービスに対してプロキシプロトコルV2が有効になっているかどうかを確認してください。 プロキシプロトコルV2が無効になっている場合、クライアントIPアドレスをバックエンドサーバーに渡すことはできません。 慎重に設定します。

off

CCM 2.5.0以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled

VpcIdパラメーターをバックエンドサーバーに渡すためにプロキシプロトコルを使用するかどうかを指定します。 有効な値:

  • on:: プロキシプロトコルを使用して、VpcIdパラメーターをバックエンドサーバーに渡します。

  • off: プロキシプロトコルを使用してVpcIdパラメーターをバックエンドサーバーに渡しません。

off

CCM 2.9.1以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled

PrivateLinkEpIdパラメーターをバックエンドサーバーに渡すためにプロキシプロトコルを使用するかどうかを示します。 有効な値:

  • on:: クライアントのIP保存を有効にします。

  • off: クライアントIP保存を無効にします。

off

CCM 2.9.1以降

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled

PrivateLinkEpsIdパラメーターをバックエンドサーバーに渡すためにプロキシプロトコルを使用するかどうかを指定します。 有効な値:

  • on:: プロキシプロトコルを使用してPrivateLinkEpsIdパラメーターをバックエンドサーバーに渡します。

  • off: プロキシプロトコルを使用してPrivateLinkEpsIdパラメーターをバックエンドサーバーに渡しません。

off

CCM 2.9.1以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

1秒あたりに作成できる最大接続数を指定します。

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

説明

デフォルト値

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

NLBインスタンスで1秒あたりに作成できる接続の最大数。 有効な値: 0 ~ 1000000 値0は、1秒あたりに作成できる接続数に制限がないことを示します。

デフォルト値なし

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

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

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

説明

デフォルト値

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

アイドル接続のタイムアウト期間。 単位は秒です。 有効な値: 10 ~ 900

900

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

バックエンドサーバーグループを管理する一般的な操作

NLBインスタンスのスケジューリングアルゴリズムの指定

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

説明

デフォルト値

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

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

  • wrr: 重み付きラウンドロビン (WRR) アルゴリズムが使用される。 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受け取ります。 デフォルト値です。

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

  • sch: ソースIPハッシュアルゴリズム。 同じ送信元IPアドレスからのリクエストは、同じバックエンドサーバーに転送されます。

  • tch: 4要素ハッシュアルゴリズムが使用されます。 一貫したハッシュは、以下の要因に基づく: 送信元IPアドレス、宛先IPアドレス、送信元ポート、および宛先ポート。 4つの要素に基づいて同じ情報を含むリクエストは、同じバックエンドサーバーに転送されます。

  • wlc: 重み付き最小接続アルゴリズムは、サーバーの重みとバックエンドサーバーへの接続数に基づいてリクエストを分散します。 複数のバックエンドサーバーの重みが同じ場合、接続が最も少ないバックエンドサーバーはより多くのリクエストを受信します。

スケジューリングアルゴリズムの詳細については、「CreateServerGroup」のSchedulerフィールドをご参照ください。

wrr

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

接続ドレインの設定

以下の注釈が使用される。

注釈

説明

デフォルト値

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

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

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

  • on:: 接続のドレインを有効にします。

  • off: 接続のドレインを無効にします。

off

CCM 2.5.0以降

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

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

デフォルト値なし

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    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:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

クライアントIP保存の設定

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

説明

デフォルト値

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

クライアントIP保存を有効にするかどうかを指定します。 有効な値:

  • on:: クライアントのIP保存を有効にします。

  • off: クライアントIP保存を無効にします。

off

CCM 2.5.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

TCPヘルスチェックの設定

以下の注釈が使用される。 TCPヘルスチェックを設定するには、次の表のすべてのアノテーションが必要です。 デフォルトでは、TCPポートに対してヘルスチェックが有効になっています。

注釈

説明

デフォルト値

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

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

ヘルスチェックを有効にするかどうかを指定します。 有効な値:

  • on:: ヘルスチェックを有効にします。

  • off: ヘルスチェックを無効にします。

on

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

ヘルスチェックに使用するプロトコル。 有効な値:

  • tcp

  • http

tcp

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

ヘルスチェックに使用されるバックエンドサーバーポート。 有効な値: 0 ~ 65535 デフォルト値:0 値0は、バックエンドサーバーで指定されたヘルスチェックポートが使用されていることを示します。

0

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

ヘルスチェックのタイムアウト期間。 単位は秒です。 有効な値:1 から 300。

5

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

正常でないバックエンドサーバーが正常であると宣言される前に実行する必要があるヘルスチェックの連続成功回数。 設定可能な値は 1 から 100 です。

2

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

正常なバックエンドサーバーが異常であると宣言される前に発生する必要がある、連続して失敗したヘルスチェックの数。 設定可能な値は 1 から 100 です。

2

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

ヘルスチェックが実行される間隔。 単位は秒です。 有効値:1 〜 50 。

10

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "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: "5"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

HTTPヘルスチェックの設定

以下の注釈が使用される。 TCPヘルスチェックを設定するには、次の表のすべてのアノテーションが必要です。 デフォルトでは、TCPポートに対してヘルスチェックが有効になっています。

注釈

説明

デフォルト値

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

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

ヘルスチェックを有効にするかどうかを指定します。 有効な値:

  • on:: ヘルスチェックを有効にします。

  • off: ヘルスチェックを無効にします。

on

CCM 2.5.0以降

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

ヘルスチェックに使用するプロトコル。 有効な値:

  • tcp

  • http

tcp

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

ヘルスチェックリクエストが送信されるパス。 パスの長さは1 ~ 80文字で、英数字、および特殊文字のみを使用できます。 パスはスラッシュ (/) で始まる必要があります。 詳細については、「CreateServerGroup」をご参照ください。

説明

このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeアノテーションがHTTPに設定されている場合にのみ有効になります。

デフォルト値なし

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

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

  • $_ip: プライベートサーバーIP

  • domain: domain nameドメイン名の長さは1 ~ 80文字で、英数字、ハイフン (-) 、ピリオド (.) を使用できます。

説明

このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeアノテーションがHTTPに設定されている場合にのみ有効になります。

デフォルト値なし

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

ヘルスチェックに使用されるバックエンドサーバーポート。 有効な値: 0 ~ 65535 デフォルト値:0 値0は、バックエンドサーバーで指定されたヘルスチェックポートが使用されていることを示します。

0

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

ヘルスチェックのタイムアウト期間。 単位は秒です。 有効な値:1 から 300。

5

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

正常でないバックエンドサーバーが正常であると宣言される前に実行する必要があるヘルスチェックの連続成功回数。 設定可能な値は 1 から 100 です。

2

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

正常なバックエンドサーバーが異常であると宣言される前に発生する必要がある、連続して失敗したヘルスチェックの数。 設定可能な値は 1 から 100 です。

2

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

ヘルスチェックが実行される間隔。 単位は秒です。 有効値:1 〜 50 。

10

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

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

  • GET

  • ヘッド

説明

このアノテーションは、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeアノテーションがHTTPに設定されている場合にのみ有効になります。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    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-health-check-domain: "www.test.com"
    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-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    # Optional. Specify the health check method. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

バックエンドサーバーグループの種類を指定する

注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type

説明

デフォルト値

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

バックエンドサーバーグループの種類を指定します。 有効な値:

  • Ip: IPアドレスを指定してバックエンドサーバーを追加できます。

  • インスタンス: ECS (Elastic Compute Service) インスタンスとENI (elastic network Interface) をバックエンドサーバーとして追加できます。 デフォルト値です。

NLBサーバーグループの詳細については、「NLBサーバーグループの概要」をご参照ください。

インスタンス

CCM 2.8.0以降

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # Example: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321. 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

既存のvServerグループの再利用

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

このアノテーションは、vServerグループを再利用するために使用できます。 このアノテーションは、既存のNLBインスタンスを使用する場合にのみ有効です。 詳細については、「既存のSLBインスタンスを再利用して異なるACKクラスターでサービスを公開する」をご参照ください。

重み付きラウンドロビンを有効にするサービスの重みの指定

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

複数のサービスが同じNLBインスタンスを使用する場合、このアノテーションを使用して、現在のサービスに配信されるトラフィックの割合を指定できます。 このアノテーションは、既存のvServerグループが再利用された場合にのみ有効です。 詳細については、「既存のSLBインスタンスを再利用して異なるACKクラスターでサービスを公開する」をご参照ください。