Service の YAML ファイルにアノテーションを追加することで、高度なロードバランシング機能を利用して、CLB インスタンス、リスナー、バックエンドサーバーグループを設定できます。
目次
カテゴリ | 機能カテゴリ | 設定リンク |
ロードバランサーの作成 | ||
既存インスタンスの使用 | ||
ロードバランサーの設定 | ||
インスタンス保護の有効化 | ||
セッション維持の設定 | ||
ポートとプロトコルの設定 | ||
詳細設定 | ||
設定管理 | ||
アノテーションの利用上の注意
アノテーションの値では大文字と小文字が区別されます。
アノテーションを使用する前に、このトピックでサポートされている 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 の一般的な操作
インターネット向け CLB インスタンスの作成
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancerイントラネット CLB インスタンスの作成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
説明 | サポートされる CCM バージョン |
SLB インスタンスが内部向けかどうかを指定します。有効な値:
デフォルト値: CLB インスタンスの vSwitch を手動で指定することを推奨します。詳細については、「CLB インスタンスの vSwitch の指定」をご参照ください。指定しない場合、システムは CCM のバージョンに基づいて自動的に vSwitch を選択します。
| 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 | CLB インスタンスの課金方法。有効な値:
デフォルト値: 重要
| v2.4.0 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec | SLB インスタンスの仕様。 このパラメーターを使用して、特定の仕様の SLB インスタンスを作成するか、既存の SLB インスタンスの仕様を更新します。 有効な値:
デフォルト値: その他の有効な値については、「CreateLoadBalancer」をご参照ください。 重要 CLB コンソールで SLB インスタンスの仕様を変更すると(仕様課金 SLB インスタンスでのみサポートされています)、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 バージョン |
重要
CLB インスタンスの 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 サーバーの CLB インスタンスや CCM によって作成された CLB インスタンスを再利用しないでください。Classic Load Balancer (CLB) コンソールで手動で新しいインスタンスを作成してください。 CLB インスタンスの ID。このアノテーションを使用して、既存の Server Load Balancer を指定します。
| v1.9.3.81-gca19cd4-aliyun 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | 既存の SLB インスタンスにバインドする際に、CCM が Service と 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: LoadBalancerCLB インスタンス作成時のプライマリゾーンとセカンダリゾーンの指定
アノテーション: 複数 (次の表を参照)。作成後、プライマリゾーンとセカンダリゾーンは変更できません。
一部のリージョンでは、CLB インスタンスのプライマリゾーンとセカンダリゾーンをサポートしていません。詳細は CLB コンソールで確認してください。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid | プライマリバックエンドサーバーのゾーン ID。 | v1.9.3.10-gfb99107-aliyun 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid | バックアップバックエンドサーバーのゾーン ID。 | v1.9.3.10-gfb99107-aliyun 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer帯域幅ベースのSLBインスタンスを作成
アノテーション: 複数 (次の表を参照)。両方のアノテーションが必要です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type | CLB インスタンスの課金方法。有効な値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth | CLB インスタンスの帯域幅制限 (Mbps)。デフォルト値: 50。インターネット向け CLB インスタンスにのみ適用されます。その他の制限については、「インターネット向け CLB インスタンスの課金方法の変更」をご参照ください。 | 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: LoadBalancerCLB インスタンスの vSwitch の指定
アノテーション: 複数 (次の表を参照)。両方のアノテーションが必要です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | SLB インスタンスが内部向けかどうかを指定してください。有効な値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | CLB インスタンスの VSwitch ID。VSwitch は Kubernetes クラスターと同じ VPC に属している必要があります。 このパラメーターを設定する場合、 VSwitch ID は Virtual Private Cloud (VPC) コンソールで確認できます。 | v1.9.3 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancerイントラネット CLB インスタンスの IP アドレスの指定
アノテーション: 複数 (次の表を参照)。3 つすべてのアノテーションが必要です。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | CLB インスタンスがイントラネット向けかどうかを指定します。有効な値:
デフォルト値: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | CLB インスタンスの VSwitch ID。VSwitch は Kubernetes クラスターと同じ VPC に属している必要があります。 このパラメーターを設定する場合、 VSwitch ID は Virtual Private Cloud (VPC) コンソールで確認できます。 | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip | イントラネット CLB インスタンスの 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 バージョン |
追加するタグのリスト。複数のタグはコンマ (,) で区切ります。例: 重要 このアノテーションを追加して追加のタグをセットすると、対応する 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 CLB インスタンスの作成
アノテーション: 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: LoadBalancerCLB インスタンスの削除保護の有効化
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
説明 | サポートされる CCM バージョン |
CLB インスタンスの削除保護を有効にします。有効な値:
デフォルト値: 重要 LoadBalancer Service によって作成された CLB インスタンスの場合、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 バージョン |
CLB インスタンスの設定変更保護を有効にします。有効な値:
デフォルト値: | 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: LoadBalancerCLB インスタンスのリソースグループの指定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
説明 | サポートされる CCM バージョン |
CLB インスタンスのリソースグループ ID。割り当て後にリソースグループ ID を変更することはできません。リソースグループ ID は Alibaba Cloud Resource Management コンソールで確認できます。 | v1.9.3.313-g748f81e-aliyun 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancerService のホスト名の設定
アノテーション: 複数 (次の表を参照)。
アノテーション | 説明 | サポートされる CCM バージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数の値はコンマ (,) で区切ります。例: | v1.9.3 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname | Service のホスト名を設定します。ホスト名は 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従量課金 CLB インスタンスの作成
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
説明 | サポートされる CCM バージョン |
CLB インスタンスの課金方法。有効な値:
デフォルト値: 重要
| v2.4.0 以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancerサービスを削除する際に自動的に作成された SLB インスタンスを保持する
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
説明 | サポートされる CCM バージョン |
LoadBalancer Service を削除する際に、Service によって作成された CLB インスタンスを保持し、CLB インスタンスから 有効にすると、Service の同期中に 有効な値:
重要 この操作を実行するには、タイプを変更するのではなく、サービスを削除してください。そうしないと、サービスが以前に保持されていた SLB インスタンスに誤って再アタッチされる可能性があります。 | 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 CLB インスタンスのセッション維持タイムアウトの設定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout
説明 | サポートされる CCM バージョン |
セッション維持タイムアウト。TCP リスナーにのみ適用されます。CLB インスタンスに複数の 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 リスナーのセッション維持 (クッキーの挿入) の設定
アノテーション: 複数 (次の表を参照)。クッキーを挿入する場合、4 つすべてのアノテーションが必要です。
HTTP および HTTPS SLB インスタンスにのみ適用されます。
複数の 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 | Cookie 処理方法。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: LoadBalancerCLB インスタンスのアクセス制御ポリシーグループの設定
アノテーション: 複数 (次の表を参照)。3 つすべてのアノテーションが必要です。
このアノテーションを使用する前に、Classic Load Balancer (CLB) コンソールでアクセス制御ポリシーグループを作成し、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 | リスナーにアタッチする ACL 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 バージョン |
スケジューリングアルゴリズム。有効な値:
デフォルト値: その他の有効な値については、対応するリスナータイプを作成するための CLB 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
ヘルスチェック:HTTP リスナーのヘルスチェックはデフォルトで無効になっています。バックエンドサービスの可用性を確保するために、リスナーポートに HTTP または TCP のヘルスチェックを設定してください。
クラスター内からのアクセス:クラスター内から CLB IP を介してサービスにアクセスすると、トラフィックが内部でインターセプトされ、アクセスに失敗することがあります。「Service のホスト名の設定」を参照して、アノテーションを追加してトラフィックを強制的に CLB 経由でルーティングしてください。詳細については、「クラスター内から LoadBalancer Service の External IP にアクセスする際の注意点」をご参照ください。
説明 | サポートされる 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 に送信されます。
ヘルスチェック:HTTPS リスナーのヘルスチェックはデフォルトで無効になっています。バックエンドサービスの可用性を確保するために、リスナーポートに HTTP または TCP のヘルスチェックを設定してください。
クラスター内からのアクセス:クラスター内から CLB IP を介してサービスにアクセスすると、トラフィックが内部でインターセプトされ、アクセスに失敗することがあります。「Service のホスト名の設定」を参照して、アノテーションを追加してトラフィックを強制的に CLB 経由でルーティングしてください。詳細については、「クラスター内から LoadBalancer Service の External IP にアクセスする際の注意点」をご参照ください。
アノテーション | 説明 | サポートされる 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: LoadBalancerHTTPS リスナーの拡張ドメイン名証明書の設定
アノテーション: 複数 (次の表を参照)。
アノテーション | 説明 | サポートされる 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-domain-extensions | 拡張ドメイン名とその証明書 ID を CLB コンソールにログインし、証明書管理ページで証明書 ID を表示します。 | v2.13.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-domain-extensions: "${DOMAIN_1}:${CERT_ID_1},${DOMAIN_2}:${CERT_ID_2}"
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 | ヘルスチェックの間隔。単位:秒。有効な値:[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 | ヘルスチェックの間隔。単位:秒。有効な値:[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 ステータスコード。複数のコードはコンマ (,) で区切ります。有効な値:
デフォルト値: 詳細については、「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 | ヘルスチェックの間隔。単位:秒。有効な値:[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 | XForwardedFor_SLBPORT ヘッダーを使用して CLB インスタンスのリスナーポートを取得するかどうかを設定します。有効な値:
デフォルト値: | v2.9.1 以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport | XForwardedFor_ClientSrcPort ヘッダーを使用して CLB インスタンスにアクセスするクライアントのポートを取得するかどうかを設定します。有効な値:
デフォルト値: | 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 バックエンドサーバーがタイムアウト期間内に応答しない場合、CLB インスタンスは待機を停止し、クライアントに 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 | セキュリティポリシーには、HTTPS 用のオプションの TLS バージョンとそれに対応する暗号化アルゴリズムスイートが含まれます。詳細については、「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 クラスターのアップグレード」をご参照ください。
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
クラスター内で CLB IP を介して Service にアクセスすると、リクエストトラフィックが内部でインターセプトされ、アクセスが異常になることがあります。詳細については、「Service のホスト名の設定」をご参照ください。これは、アノテーションを追加してトラフィックを強制的に CLB をバイパスさせる方法を説明しています。詳細については、「クラスター内から LoadBalancer Service の External IP にアクセスする際の考慮事項」をご参照ください。
説明 | サポートされる CCM バージョン |
TCP および UDP リスナーに Proxy Protocol を設定します。設定後、Proxy Protocol はクライアントの送信元アドレスをバックエンドサーバーに伝えることができます。有効な値:
デフォルト値: 重要 この機能はスムーズなオンライン移行をサポートしていません。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バックエンドサーバーグループの一般的な操作
指定されたラベルを持つ Worker ノードをバックエンドサーバーとして使用
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label
説明 | サポートされる CCM バージョン |
ラベルを使用して、CLB バックエンドにアタッチする Worker ノードを指定します。複数のラベルはコンマ (,) で区切ります。例: | 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 バージョン |
SchedulingDisabled ノードを CLB バックエンドから削除します。有効な値:
デフォルト値: | 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: LoadBalancerPod ENI の CLB バックエンドへの直接マウント
アノテーション: 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 グループの再利用をサポートします。これは、既存の CLB インスタンスを再利用する場合にのみ有効です。使用例については、「既存の CLB インスタンスを再利用したクラスター間でのサービスのデプロイ」をご参照ください。
Service のトラフィックの重みの設定
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
複数の Service が同じ CLB インスタンスを再利用する場合、このアノテーションを使用して現在の Service のトラフィックの重みを設定できます。このアノテーションは、既存の vServer グループを再利用する場合にのみ有効です。使用例については、「既存の CLB インスタンスを再利用したクラスター間でのサービスのデプロイ」をご参照ください。
バックエンドサーバーの重みの更新を無視
アノテーション: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
説明 | サポートされる CCM バージョン |
Service の同期中に、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