Service の YAML ファイルでアノテーションを使用して、Server Load Balancer (SLB) インスタンス、リスナー、バックエンドサーバーグループなどのリソースを設定し、幅広いロードバランシング機能を利用できます。
インデックス
カテゴリ | 機能カテゴリ | 設定リンク |
SLB インスタンスの作成 | ||
既存インスタンスの指定 | ||
SLB インスタンスの設定 | ||
インスタンス保護の有効化 | ||
セッション維持の設定 | ||
ポートとプロトコルの設定 | ||
高度な設定 | ||
設定管理 | ||
アノテーションの使用上の注意
アノテーションでは大文字と小文字が区別されます。
アノテーションを使用する前に、その機能でサポートされている Cloud Controller Manager (CCM) のバージョンを確認してください。CCM コンポーネントをアップグレードするには、「コンポーネントの管理」をご参照ください。CCM コンポーネントの変更履歴については、「Cloud Controller Manager」をご参照ください。
2019年9月11日付けで、
annotationsフィールドのalicloudはalibaba-cloudに更新されました。例:
更新前:
service.beta.kubernetes.io/alicloud-loadbalancer-id更新後:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idシステムは
alicloud形式との互換性を維持しているため、変更を行う必要はありません。
CLB インスタンスの一般的な操作
インターネット向け SLB インスタンスの作成
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancerイントラネット SLB インスタンスの作成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
説明 | サポートされる CCM バージョン |
SLB インスタンスがイントラネットインスタンスであることを指定します。有効値:
デフォルト値: | 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: LoadBalancerSLB インスタンスのスペックの指定
アノテーション: 複数。以下の表をご参照ください。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type | インスタンスの課金方法。有効値:
デフォルト値: 重要
| v2.4.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec | SLB インスタンスの仕様。このパラメーターを使用して、特定の仕様の CLB インスタンスを作成したり、既存の CLB インスタンスの仕様を更新したりできます。有効値:
デフォルト値: このパラメーターの有効値の詳細については、「CreateLoadBalancer」をご参照ください。 重要 CLB コンソールで CLB インスタンスのスペックを変更すると、CCM によってスペックが元のものに戻される可能性があります。この操作はスペック保証型のインスタンスでのみサポートされています。操作には注意が必要です。 | 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既存の SLB インスタンスの使用
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
説明 | サポートされる CCM バージョン |
重要 クラスターの利用不可やトラフィックの中断などの予期せぬ動作を防ぐため、API Server の CLB インスタンスや CCM によって作成された CLB インスタンスを再利用しないでください。Classic Load Balancer (CLB) コンソールで新しいインスタンスを手動で作成してください。 SLB インスタンスの ID。このアノテーションを使用して、既存の CLB インスタンスを指定します。
| 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既存の SLB インスタンスを使用し、既存のリスナーを強制的に上書き
アノテーション: この操作では、以下の表で説明するアノテーションを使用します。既存のリスナーを強制的に上書きします。リスナーポートの競合が発生した場合、既存のリスナーは削除されます。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | 重要 クラスターの利用不可やトラフィックの中断などの予期せぬ動作を防ぐため、API Server の CLB インスタンスや CCM によって作成された CLB インスタンスを再利用しないでください。Classic Load Balancer (CLB) コンソールで新しいインスタンスを手動で作成してください。 SLB インスタンスの ID。このアノテーションを使用して、既存の CLB インスタンスを指定します。
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | 既存の SLB インスタンスをバインドする際に、CLB インスタンスのリスナーを強制的に上書きするかどうかを指定します。有効値:
デフォルト値: 重要 CLB インスタンスを再利用し、 | 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: LoadBalancerSLB インスタンス作成時のプライマリゾーンとセカンダリゾーンの指定
アノテーション: この操作では、以下の表で説明するアノテーションを使用します。プライマリゾーンとセカンダリゾーンを指定した後は、変更できません。
一部のリージョンの SLB インスタンスは、プライマリゾーンとセカンダリゾーンをサポートしていません。SLB インスタンス作成ページの情報が優先されます。
アノテーション | 説明 | サポートされる 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帯域幅課金 SLB インスタンスの作成
アノテーション: 以下の表に示すように、複数のアノテーションがサポートされています。以下の 2 つのアノテーションは必須です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type | SLB インスタンスの課金方法。有効値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth | SLB インスタンスの帯域幅。これはピーク帯域幅です。デフォルト値は 50 です。このパラメーターはインターネット SLB インスタンスにのみ適用されます。その他の制限については、「インターネット SLB インスタンスの課金方法の変更」をご参照ください。 | 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: LoadBalancerSLB インスタンスの vSwitch の指定
アノテーション: 以下の表に示すように、複数のアノテーションがサポートされています。以下の 2 つのアノテーションは必須です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | SLB インスタンスがイントラネットインスタンスであることを指定します。有効値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | SLB インスタンスが属する vSwitch の ID。vSwitch は Kubernetes クラスターと同じ VPC (Virtual Private Cloud) に属している必要があります。 このパラメーターを設定する場合、 VPC コンソールにログインして vSwitch ID をクエリできます。 | 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イントラネット SLB インスタンスの IP アドレスの指定
アノテーション: 以下の表に、指定できるアノテーションをリストします。これらのうち 3 つのアノテーションは必須です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | SLB インスタンスがイントラネットインスタンスであることを指定します。有効値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | SLB インスタンスが属する vSwitch の ID。vSwitch は Kubernetes クラスターと同じ VPC に属している必要があります。 このパラメーターを設定する場合、 VPC コンソールにログインして vSwitch ID をクエリできます。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip | イントラネット SLB インスタンスの 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: nginxSLB インスタンスへの追加タグの付与
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
説明 | サポートされる CCM バージョン |
追加したいタグのリスト。複数のタグはカンマ (,) で区切ります。例: 重要 Service にこのアノテーションを追加して追加のタグを指定した後、コンソールで対応する SLB インスタンスのタグを変更すると、上書きされる可能性があります。 | 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: LoadBalancerIPv6 SLB インスタンスの作成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
説明 | サポートされる CCM バージョン |
SLB インスタンスの IP バージョン。IP バージョンはインスタンス作成後に変更できません。この機能を使用するには、クラスターの kube-proxy モードを IPVS に設定する必要があります。有効値:
デフォルト値: | 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: LoadBalancerSLB インスタンスの削除保護の有効化
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
説明 | サポートされる CCM バージョン |
SLB インスタンスの削除保護。有効値:
デフォルト値: 重要 LoadBalancer タイプの Service 用に作成された SLB インスタンスの場合、CLB コンソールで手動で削除保護を有効にしても、 | 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: LoadBalancerSLB インスタンスの設定変更保護の有効化
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
説明 | サポートされる CCM バージョン |
SLB インスタンスの設定変更保護。有効値:
デフォルト値: | 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: LoadBalancerSLB インスタンスの名前の指定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
説明 | サポートされる CCM バージョン |
SLB インスタンスの名前。名前の長さは 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: LoadBalancerSLB インスタンスのリソースグループの指定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
説明 | サポートされる CCM バージョン |
SLB インスタンスが属するリソースグループの ID。リソースグループ ID は指定後に変更できません。Alibaba Cloud Resource Management プラットフォームでリソースグループ ID をクエリできます。 | 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: LoadBalancerService のホスト名の設定
アノテーション: 複数。詳細については、以下の表をご参照ください。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はカンマ (,) で区切ります。例: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname | サービスにホスト名を設定します。ホスト名は DNS 命名規則に従う必要があります。 次の項目に注意してください:
| 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:30248/TCP,443:32670/TCP 10s従量課金 SLB インスタンスの作成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
説明 | サポートされる CCM バージョン |
インスタンスの課金方法。有効値:
デフォルト値: 重要
| 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: LoadBalancerService 削除時の自動作成 SLB インスタンスの保持
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
説明 | サポートされる CCM バージョン |
LoadBalancer タイプの Service を削除すると、Service 用に作成された CLB インスタンスは保持され、 この機能を有効にすると、Service の同期中に 値:
重要 この操作は、サービスタイプを変更するのではなく、サービスを削除することによって実行してください。そうしないと、サービスが以前に保持されていた CLB インスタンスに誤って再関連付けされる可能性があります。 | v2.10.0 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "true"
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 リスナーにのみ適用されます。SLB インスタンスに複数の TCP リスナーポートが設定されている場合、この設定はデフォルトですべての TCP リスナーに適用されます。 単位:秒。値は 0 から 3600 までの整数である必要があります。値 0 はセッション維持を無効にします。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 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: LoadBalancerHTTP および HTTPS リスナーのセッション維持 (Cookie の挿入) の設定
アノテーション: この操作では、以下の表で説明するアノテーションを使用します。クッキーを挿入するには、以下の 4 つのアノテーションが必要です。
この機能は HTTP および HTTPS リスナーでのみサポートされています。
複数の HTTP または HTTPS リスナーポートを設定した場合、このセッション維持設定はデフォルトですべての HTTP および HTTPS リスナーに適用されます。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session | セッション維持を有効にするかどうかを指定します。このパラメーターは HTTP および HTTPS リスナーにのみ有効です。有効値:
デフォルト値: 詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type | クッキーの処理方法。このパラメーターは HTTP および HTTPS リスナーにのみ有効です。このパラメーターは
詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout | Cookie のタイムアウト期間。このパラメーターは、 詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie | サーバーに設定された Cookie の名前。 クッキーは 1~200 文字で、ASCII 文字と数字のみを含めることができます。カンマ (,)、セミコロン (;)、スペースを含めることはできません。ドル記号 ($) で始めることはできません。 このパラメーターは、 詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はカンマ (,) で区切ります。例: | 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: LoadBalancerSLB インスタンスのアクセスコントロールポリシーグループの設定
アノテーション: 複数のアノテーションがサポートされており、以下の表で説明します。以下の 3 つのアノテーションは必須です。
このアノテーションを使用してアクセス制御が有効な SLB インスタンスを作成する前に、Classic Load Balancer (CLB) コンソールでアクセスコントロールポリシーグループを作成し、その ID (`acl-id`) を記録する必要があります。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status | アクセス制御を有効にするかどうかを指定します。有効な値:
デフォルト値: | v1.9.3.164-g2105d2e-aliyun 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id | リスナーにバインドされているアクセス制御ポリシグループの ID。このパラメーターは、 | v1.9.3.164-g2105d2e-aliyun 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type | アクセス制御ポリシーのタイプ。有効値:
| 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: LoadBalancerSLB インスタンスの転送ポートの指定
ポート転送は、HTTP ポートから HTTPS ポートへのリクエストをリダイレクトします。
アノテーション: 以下の表で説明するアノテーションがサポートされています。以下の 3 つのアノテーションは必須です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はカンマ (,) で区切ります。例: | 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 ポートにリダイレクトします。例: | 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: LoadBalancerSLB インスタンスのスケジューリングアルゴリズムの設定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
説明 | サポートされる CCM バージョン |
スケジューリングアルゴリズム。有効な値:
デフォルト値: このパラメーターの有効値の詳細については、対応するリスナータイプを作成するための API ドキュメントの | 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: LoadBalancerUDP リスナーを作成する
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancerHTTP リスナーを作成する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
説明 | サポートされる CCM バージョン |
複数の値はカンマ (,) で区切ります。例: | 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: LoadBalancerHTTPS リスナーを作成する
注: 以下の表に示すように、複数の値がサポートされています。
HTTPS リクエストは CLB レイヤーで復号化され、HTTP リクエストとしてバックエンド Pod に転送されます。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はカンマ (,) で区切ります。例: | 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 リスナーのヘルスチェックを有効にするかどうかを指定します。有効値:
デフォルト値: | v2.6.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックのタイプ。有効値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | ヘルスチェックからの応答を待つ期間。このパラメーターは TCP ヘルスチェックに適用されます。バックエンド ECS インスタンスが指定された期間内に応答しない場合、ヘルスチェックは失敗します。単位:秒。有効値:1~300。
| v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | バックエンドサーバーのヘルスチェックステータスを 有効値:2〜10。デフォルト値:3。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | バックエンドサーバーのヘルスチェックステータスを success から fail に変更するために必要な連続したヘルスチェック失敗回数。有効値:2~10。デフォルト値:3。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 2 回の連続したヘルスチェックの間隔。単位:秒。有効値:1~50。デフォルト値:2。詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 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: LoadBalancerUDP ヘルスチェックの設定
アノテーション: この操作には、以下の表で説明するすべてのアノテーションが必要です。
ヘルスチェックは、デフォルトで UDP ポートに対して有効になっています。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | TCP および UDP リスナーのヘルスチェックを有効にするかどうかを指定します。有効値:
デフォルト値: | v2.6.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | ヘルスチェックからの応答を待つ期間。このパラメーターは TCP ヘルスチェックに適用されます。バックエンド ECS インスタンスが指定された期間内に応答しない場合、ヘルスチェックは失敗します。単位:秒。有効値:1~300。
| v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | バックエンドサーバーのヘルスチェックステータスを fail から success に変更するために必要な連続したヘルスチェック成功回数。 有効値:2〜10。デフォルト値:3。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | バックエンドサーバーのヘルスチェックステータスを success から fail に変更するために必要な連続したヘルスチェック失敗回数。有効値:2~10。デフォルト値:3。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 2 回の連続したヘルスチェックの間隔。単位:秒。有効値:1~50。デフォルト値:2。詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | 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: LoadBalancerTCP および UDP リスナーのヘルスチェックの無効化
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
説明 | サポートされる CCM バージョン |
TCP および UDP リスナーのヘルスチェックを有効にするかどうかを指定します。有効値:
デフォルト値: | 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: LoadBalancerHTTP ヘルスチェックの設定
アノテーション: 複数。詳細については、以下の表をご参照ください。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | 有効な値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックのタイプ。有効値:
デフォルト値: 詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | ヘルスチェックに使用される URI。TCP ヘルスチェックの場合、このアノテーションパラメーターを設定する必要はありません。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode | ヘルスチェックの成功を示す HTTP ステータスコード。複数の HTTP ステータスコードはカンマ (,) で区切ります。有効値:
デフォルト値: 詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | ヘルスチェックに使用されるドメイン名。有効値:
詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout | ヘルスチェックからの応答を待つ期間。このパラメーターは HTTP ヘルスチェックに適用されます。バックエンド ECS インスタンスが指定された期間内に応答しない場合、ヘルスチェックは失敗します。 単位:秒。有効値:1〜300。
詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | バックエンドサーバーのヘルスチェックステータスを fail から success に変更するために必要な連続したヘルスチェック成功回数。 有効値:2〜10。デフォルト値:3。詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | バックエンドサーバーのヘルスチェックステータスを success から fail に変更するために必要な連続したヘルスチェック失敗回数。有効値:2~10。デフォルト値:3。詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 2 回の連続したヘルスチェックの間隔。単位:秒。有効値:1~50。デフォルト値:2。詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はカンマ (,) で区切ります。例: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | HTTP リスナーのヘルスチェックメソッド。有効値:
| 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 | 接続ドレインを有効にするかどうかを指定します。有効な値:
| 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 | 複数の値はカンマ (,) で区切ります。例: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto | X-Forwarded-Proto ヘッダーを使用して CLB インスタンスのリスナープロトコルを取得するかどうかを指定します。有効値:
デフォルト値: | v2.1.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport | X-Forwarded-For_SLBPORT ヘッダーを使用して SLB インスタンスのリスナーポートを取得するかどうかを指定します。有効値:
デフォルト値: | v2.9.1 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport | X-Forwarded-For_ClientSrcPort ヘッダーを使用して SLB インスタンスにアクセスするクライアントのポートを取得するかどうかを指定します。有効値:
デフォルト値: | 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 | 複数の値はカンマ (,) で区切ります。例: | 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 | 複数の値はカンマ (,) で区切ります。例: | 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 を有効にするかどうかを指定します。有効値:
デフォルト値: | 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 | 複数の値はカンマ (,) で区切ります。例: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout | リクエストタイムアウト期間。単位:秒。有効値:1〜180。デフォルト値:60 バックエンドサーバーがタイムアウト期間内に応答しない場合、SLB インスタンスは待機を停止し、クライアントに HTTP 504 エラーコードを返します。 | 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 | 複数の値はカンマ (,) で区切ります。例: | 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-tls-cipher-policy | セキュリティポリシーには、オプションの TLS バージョンと HTTPS でサポートされる暗号スイートが含まれます。詳細については、「CreateLoadBalancerHTTPSListener」をご参照ください。有効値:
デフォルト値: | 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 プロトコルの同時設定
この機能には、Kubernetes クラスターが v1.24 以降である必要があります。詳細については、「ACK クラスターの Kubernetes バージョンの更新」をご参照ください。
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: LoadBalancerTCP および UDP リスナーの Proxy Protocol の設定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
説明 | サポートされる CCM バージョン |
TCP および UDP リスナーの Proxy Protocol を設定します。Proxy Protocol を設定した後、それを使用してクライアントのソース IP アドレスをバックエンドサーバーに渡すことができます。有効値:
デフォルト値: 重要 この機能はスムーズな移行をサポートしていません。Proxy Protocol を切り替えるには、アップグレードのためにサービスを停止する必要があります。操作には注意が必要です。 | 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-backend-label
説明 | サポートされる CCM バージョン |
ラベルを使用して CLB インスタンスのバックエンドにアタッチするワーカーノードを指定します。複数のラベルはカンマ (,) で区切ります。例: | v1.9.3 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancerPod が存在するノードをバックエンドサーバーとして使用
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
デフォルトでは、externalTrafficPolicy は Cluster モードに設定されており、クラスター内のすべてのノードをバックエンドサーバーグループにアタッチします。Local モードは、Pod が存在するノードのみをバックエンドサーバーとしてアタッチします。
説明 | サポートされる CCM バージョン |
スケジューリングアルゴリズム。有効な値:
デフォルト値: | v1.9.3 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancerCLB インスタンスのバックエンドサーバーグループから [スケジュール不可] ノードを削除
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend
説明 | サポートされる CCM バージョン |
CLB インスタンスのバックエンドサーバーグループから SchedulingDisabled ノードを削除します。有効値:
デフォルト値: | v1.9.3.164-g2105d2e-aliyun 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancerCLB インスタンスのバックエンドに Pod ENI を直接アタッチ
アノテーション: service.beta.kubernetes.io/backend-type
説明 | デフォルト値 | サポートされる CCM バージョン |
CLB インスタンスのバックエンドサーバーのタイプ。有効値:
|
| v1.9.3.164-g2105d2e-aliyun 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/backend-type: "eni"
name: nginx
spec:
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer既存の vServer グループを再利用する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
既存の vServer グループを再利用できます。この機能は、既存の SLB インスタンスを再利用する場合にのみ利用可能です。詳細と例については、「SLB インスタンスを再利用してクラスター間でサービスをデプロイ」をご参照ください。
トラフィックを受信する Service の重みの設定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
複数の Service が同じ SLB インスタンスを再利用する場合、このアノテーションを使用して現在の Service の重みを設定し、受信するトラフィックを制御できます。このアノテーションは、既存の vServer グループを再利用する場合にのみ利用可能です。詳細と例については、「SLB インスタンスを再利用してクラスター間でサービスをデプロイ」をご参照ください。
バックエンドサーバーの重み更新の無視
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
説明 | サポートされる CCM バージョン |
サービス同期中に vServer グループのバックエンドサーバーの重みの更新をスキップします。この設定は、CCM 以外のメカニズムを使用してバックエンドサーバーの重みをを手動で管理する必要があるシナリオに適しています。有効値:
デフォルト値: | 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