Service を使用してネットワークロードバランサー (NLB) インスタンスを構成する場合、Service の YAML ファイルにアノテーションを追加して負荷分散を構成できます。たとえば、アノテーションを追加して、NLB インスタンスのネットワークタイプを指定したり、NLB インスタンスの設定変更保護を有効にしたり、NLB インスタンスの相互認証を構成したりできます。このトピックでは、Service アノテーションを使用して NLB インスタンス、リスナー、およびバックエンドサーバーグループを構成する方法について説明します。
目次
カテゴリ | 機能 | 参照 |
NLB インスタンスの作成 | ||
NLB インスタンスの構成 | ||
セキュリティ設定の構成 | ||
リスナーの作成 | ||
リスナーの構成 | ||
セキュリティ設定の構成 | ||
バックエンドサーバーの構成 | ||
使用上の注意
クラスタの Kubernetes バージョンは 1.24 以降である必要があり、クラウドコントローラーマネージャー (CCM) は V2.5.0 以降である必要があります。クラスタのアップデート方法については、「ACK クラスタを手動でアップグレードする」をご参照ください。コンポーネントのアップデート方法については、「コンポーネントの管理」をご参照ください。
Service の NLB インスタンスを構成するには、Service の
spec.loadBalancerClassパラメーターをalibabacloud.com/nlbに設定する必要があります。そうでない場合、デフォルトで Classic Load Balancer(CLB) インスタンスが作成されます。Service の作成後に、Service の
spec.loadBalancerClassパラメーターを変更して、ロードバランサーインスタンスのタイプを CLB と NLB の間で変更することはできません。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 つのゾーンを選択する必要があります。複数のゾーンはコンマ (,) で区切ります。例: | 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}" # 例: 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 インスタンスのネットワークタイプを変更できます。有効な値:
デフォルト値: NLB コンソールにログインして、NLB をサポートするリージョンとゾーンを表示できます。各 NLB インスタンスに少なくとも 2 つのゾーンを選択する必要があります。複数のゾーンはカンマ (,) で区切ります。例: | 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}" # 例: 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: LoadBalancerNLB インスタンスの名前の指定
注釈: 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}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # NLB インスタンスの名前。
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: LoadBalancerNLB インスタンスが属するリソースグループの指定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
説明 | サポートされている CCM バージョン |
NLB インスタンスが属するリソースグループの ID です。リソースグループは、指定した後は変更できません。 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}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "${your-resource-group-id}" # リソースグループの 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デュアルスタック NLB インスタンスの作成
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
説明 | サポートされている CCM バージョン |
NLB インスタンスの IP バージョン。IP バージョンは、指定した後は変更できません。このアノテーションを使用するには、クラスタの kube-proxy モードが IPVS に設定されていることを確認してください。有効な値:
デフォルト値: | 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}" # 例: 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: LoadBalancerNLB インスタンスへの追加タグの追加
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
説明 | サポートされている CCM バージョン |
追加するタグ。複数のタグはカンマ (,) で区切ります。例: 重要 このアノテーションをサービスに追加して追加のタグを指定した後、コンソールで NLB インスタンス タグに対して実行された操作が上書きされる場合があります。 | 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}" # 例: 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 インスタンスの既存のリスナーを上書きするかどうかを指定します。有効な値:
デフォルト値: | CCM 2.5.0 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # 使用する既存の NLB インスタンスの ID。
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インターネット共有帯域幅インスタンスと NLB インスタンスの関連付け
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id
説明 | サポートされている CCM バージョン |
NLB インスタンスに関連付ける EIP 帯域幅プランの ID です。 NLB インスタンスに関連付ける Elastic IP Address (EIP) 帯域幅プランの ID。 Virtual Private Cloud (VPC) コンソールにログインして、インターネット共有帯域幅インスタンスの 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}" # 例: 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: LoadBalancerNLB インスタンスの削除保護の有効化
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
説明 | サポートされている CCM バージョン |
NLB インスタンスの削除保護を有効にするかどうかを指定します。有効な値:
デフォルト値: 重要 LoadBalancer サービス用に作成された NLB インスタンスに対して、NLB コンソールで削除保護を手動で有効にした場合、 | 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}" # 例: 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: LoadBalancerNLB インスタンスの設定変更保護モードの有効化
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
説明 | サポートされている CCM バージョン |
NLB インスタンスの設定変更保護を有効にするかどうかを指定します。有効な値:
デフォルト値: | 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}" # 例: 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: LoadBalancerIPv6 NLB インスタンスのネットワークタイプの指定
次のアノテーションが使用されます。
アノテーション | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version | NLB インスタンスの IP バージョン。IP バージョンは、指定した後は変更できません。このアノテーションを使用するには、クラスターの kube-proxy モードが IPVS に設定されていることを確認してください。有効な値:
デフォルト値: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type | IPv6 NLB インスタンスのネットワークタイプを指定します。有効な値:
デフォルト値: 説明 パブリック 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}" # 例: 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 # パブリック IPv6 アドレスを指定します。
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: LoadBalancerService の削除時に自動的に作成された NLB インスタンスを保持する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
説明 | サポートされている CCM バージョン |
LoadBalancer サービスを削除すると、サービスを使用して作成された NLB インスタンスは保持され、NLB インスタンスとサーバーグループの この機能が有効になっている場合、サービスの同期中に 有効な値:
重要 この操作は、サービスの種類を変更するのではなく、サービスを削除して実行します。そうしないと、サービスが保持されている NLB インスタンスに誤って再関連付けされる可能性があります。 | CCM 2.10.0 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "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
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerリスナーを管理するための一般的な操作
リスナーのセキュリティグループの構成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids
説明 | サポートされている CCM バージョン |
リスナーに構成されているセキュリティグループの ID。複数の ID はカンマ (,) で区切ります。例: | 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}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # 複数のセキュリティグループ 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リスナーに 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}" # 例: 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: LoadBalancerTCP リスナーの作成
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: 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: LoadBalancerUDP リスナーの作成
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: 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: LoadBalancerTCP/SSL リスナーの作成
次のアノテーションが使用されます。
アノテーション | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | リスナーのプロトコルタイプ。複数のリスナータイプはカンマ (,) で区切ります。例: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | サーバー証明書 ID。SSL Certificates Service コンソール にログインして、SSL 証明書 ID を表示できます。 |
TCP/SSL リスナーは、クライアント IP アドレスの保持が有効になっているサーバーグループにバインドできません。したがって、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:${port}" アノテーションと service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on" アノテーションの両方を同時に構成することはできません。NLB インスタンスを介してクライアント IP アドレスを取得する方法については、「NLB がクライアント IP アドレスを保持し、バックエンドサーバーに渡すことを有効にする」をご参照ください。
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# 証明書が中国本土のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-cn-hangzhou です。
# 証明書が中国本土以外のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-ap-southeast-1 です。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${付加された証明書 ID}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerリスナー ポート範囲を構成する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range
説明 | サポートされている CCM バージョン |
このアノテーションは、Terway ネットワークプラグインを使用する場合にのみサポートされます。 NLB ポートフォワーディングのリスナーポート範囲を構成することにより、指定されたポート範囲を監視し、トラフィックをバックエンドサーバーの対応するポートに転送できます。 フォーマット: | CCM 2.11.1 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456 と cn-hangzhou-j:vsw-j654321。
# ポート範囲 80 ~ 100 と 400 ~ 500 のリスナーを構成します。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range: "80-100:80,400-500:443"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
# targetPort はバックエンドサーバーのヘルスチェックポートであり、int タイプである必要があります。
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer相互認証の有効化
次のアノテーションが使用されます。
アノテーション | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | リスナーのプロトコルタイプ。複数のリスナータイプはカンマ (,) で区切ります。例: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | サーバー証明書 ID。SSL Certificates Service コンソール にログインして、SSL 証明書 ID を表示できます。 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id | 認証局 (CA) 証明書 ID。SSL Certificates Service コンソール にログインして、CA 証明書 ID を表示できます。 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert | 相互認証を有効にするかどうかを指定します。有効な値:
デフォルト値: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# クラスタが中国本土のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-cn-hangzhou です。
# クラスタが中国本土以外のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-ap-southeast-1 です。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${付加された証明書 ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}" # CA 証明書 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: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerTLS セキュリティポリシーの構成
次のアノテーションが使用されます。
アノテーション | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | リスナーのプロトコルタイプ。複数のリスナータイプはカンマ (,) で区切ります。例: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | サーバー証明書 ID。SSL Certificates Service コンソール にログインして、SSL 証明書 ID を表示できます。 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | セキュリティポリシーの ID。システムセキュリティポリシーとカスタムセキュリティポリシーがサポートされています。有効な値:
デフォルト値: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# クラスタが中国本土のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-cn-hangzhou です。
# クラスタが中国本土以外のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-ap-southeast-1 です。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${付加された証明書 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: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerProxy Protocol の構成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
説明 | サポートされている CCM バージョン |
クライアント IP アドレスをバックエンドサーバーに渡すためにプロキシプロトコルを有効にするかどうかを指定します。有効な値:
デフォルト値: 重要 プロキシプロトコルを有効にする前に、バックエンドサービスでプロキシプロトコル V2 が有効になっているかどうかを確認してください。プロキシプロトコル V2 が無効になっている場合、クライアント IP アドレスはバックエンドサーバーに渡されません。注意して設定してください。 | 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}" # 例: 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 アドレスをバックエンドサーバーに渡すためにプロキシプロトコルを有効にするかどうかを指定します。有効な値:
デフォルト値: 重要 プロキシプロトコルを有効にする前に、バックエンドサービスでプロキシプロトコル V2 が有効になっているかどうかを確認してください。プロキシプロトコル V2 が無効になっている場合、クライアント IP アドレスはバックエンドサーバーに渡されません。注意して構成してください。 | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled | プロキシプロトコルを使用して VpcId パラメーターをバックエンドサーバーに渡すかどうかを指定します。有効な値:
デフォルト値: | CCM 2.9.1 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled | プロキシプロトコルを使用して PrivateLinkEpId パラメーターをバックエンドサーバーに渡すかどうかを示します。有効な値:
デフォルト値: | CCM 2.9.1 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled | プロキシプロトコルを使用して PrivateLinkEpsId パラメーターをバックエンドサーバーに渡すかどうかを指定します。有効な値:
デフォルト値: | 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}" # 例: 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: LoadBalancer1 秒あたりに作成できる接続の最大数を指定する
アノテーション: 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}" # 例: 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}" # 例: 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: LoadBalancerALPN ポリシーを構成する
以下の アノテーション が使用されます。
アノテーション | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | リスナーのプロトコルタイプ。複数のリスナータイプはカンマ (,) で区切ります。例: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | サーバー証明書 ID。SSL 証明書サービス コンソール にログインして、SSL 証明書 ID を表示できます。 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn | Application-Layer Protocol Negotiation (ALPN) を有効にするかどうかを指定します。有効な値:
デフォルト値: | CCM 2.10.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy | ALPN ポリシー。有効な値:
このアノテーションの値の詳細については、「CreateListener」の |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
# クラスタが中国本土のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-cn-hangzhou です。
# クラスタが中国本土以外のリージョンにデプロイされている場合、リージョン情報が付加された SSL 証明書 ID は ${your-cert-id}-ap-southeast-1 です。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${The appended certificate ID}" # 付加された証明書 ID
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancerバックエンドサーバーグループを管理するための一般的な操作
スケジューリングアルゴリズムを設定する
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
説明 | サポートされている CCM バージョン |
ルーティングアルゴリズム。有効な値:
デフォルト値: この注釈の値の詳細については、「サーバーグループを作成する」の | 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}" # 例: 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 | この注釈は、接続ドレインを有効にするかどうかを指定します。有効な値:
デフォルト値: | 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}" # 例: 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 の保持を有効にするかどうかを指定します。有効な値:
デフォルト値: | 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}" # 例: 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: LoadBalancerTCP ヘルスチェックを設定する
以下の注釈を使用します。 TCP ヘルスチェックを設定するには、以下の表のすべての注釈が必要です。デフォルトでは、TCP ポートに対してヘルスチェックが有効になっています。
注釈 | 説明 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | ヘルスチェックを有効にするかどうかを指定します。有効な値:
デフォルト値: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックに使用するプロトコル。有効な値:
デフォルト値: tcp. |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | ヘルスチェックに使用するバックエンドサーバーポート。有効な値: 0 ~ 65535。デフォルト値: 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 | 異常なバックエンドサーバーが正常と宣言されるまでに必要な、連続した正常なヘルスチェックの数。有効な値: 2 ~ 10。 デフォルト値: 2. |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 正常なバックエンドサーバーが異常と宣言されるまでに必要な、連続した失敗したヘルスチェックの数。有効な値: 2 ~ 10。 デフォルト値: 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}" # 例: 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: LoadBalancerHTTP ヘルスチェックを設定する
以下の注釈を使用します。 HTTP ヘルスチェックを設定するには、以下の表のすべての注釈が必要です。デフォルトでは、TCP ポートに対してヘルスチェックが有効になっています。
注釈 | 説明 | サポートされている CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | ヘルスチェックを有効にするかどうかを指定します。有効な値:
デフォルト値: | CCM 2.5.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックに使用するプロトコル。有効な値:
デフォルト値: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | ヘルスチェックに使用するパス。パスは 1 ~ 80 文字で、文字、数字、および特殊文字のみを含めることができます。 URL はスラッシュ (/) で始まる必要があります。詳細については、「CreateServerGroup」をご参照ください。 説明 このアノテーションは、 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | ヘルスチェックに使用するドメイン名。有効な値:
説明 このアノテーションは、 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | ヘルスチェックに使用するバックエンドサーバーポート。有効な値: 0 ~ 65535。デフォルト値: 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 | 異常なバックエンドサーバーが正常と宣言されるまでに必要な、連続した正常なヘルスチェックの数。有効な値: 2 ~ 10。 デフォルト値: 2. | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 正常なバックエンドサーバーが異常と宣言されるまでに必要な、連続した失敗したヘルスチェックの数。有効な値: 2 ~ 10。 デフォルト値: 2. | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | ヘルスチェックを実行する間隔。単位: 秒 有効な値: 1 ~ 50。 デフォルト値: 10. | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | ヘルスチェックを実行するために使用するメソッド。有効な値:
説明 このアノテーションは、 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: 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"
# オプション。ヘルスチェックメソッドを指定します。
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 バージョン |
バックエンドサーバーグループタイプを指定します。有効な値:
デフォルト値: 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}" # 例: 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 クラスタのサービスを公開する」をご参照ください。
バックエンドサーバーの重みの更新を無視する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
説明 | サポートされている CCM バージョン |
サービスの同期プロセス中に、サーバーグループ内のバックエンドサーバーの重みの更新はスキップされます。 この構成は、CCM 以外のメカニズムでバックエンドサーバーの重みを手動で管理する必要があるシナリオに適しています。 有効な値:
デフォルト値: | CCM 2.11.1 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例: cn-hangzhou-k:vsw-i123456 and cn-hangzhou-j:vsw-j654321。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "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