さまざまな負荷分散機能を使用するには、ServiceのYAMLファイルにアノテーションを追加して、Classic load Balancer (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バージョン |
内部対応のCLBインスタンスを作成します。 有効な値:
| internet | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
指定された仕様を使用するCLBインスタンスの作成
以下の注釈が使用される。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type | 課金方法です。 有効な値:
重要 従量課金CLBインスタンスの仕様を変更することはできません。 | PayBySpec | CCM 2.4.0以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec | CLBインスタンスの仕様。 詳細については、「CreateLoadBalancer」をご参照ください。 このアノテーションを使用して、指定された仕様を使用するCLBインスタンスを作成したり、CLBインスタンスの仕様を更新したりできます。 重要 CLBコンソールを使用してCLBインスタンスの仕様を更新すると、CCMはCLBインスタンスを元の仕様に復元できます。 作業は慎重に行ってください。 CLBコンソールを使用して、課金方法を使用するCLBインスタンスの仕様のみを変更できます。 | slb.s1.small | CCM 1.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
既存のCLBインスタンスの使用
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
説明 | デフォルト値 | サポートされているCCMバージョン |
使用するCLBインスタンスのID。 このアノテーションを使用して、既存のCLBインスタンスを指定できます。
| デフォルト値なし | CCM 1.9.3.81-gca19cd4-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}" # You can configure only one access control list (ACL).
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
既存のCLBインスタンスを使用し、CLBインスタンスのリスナーを強制的に上書きします
以下の注釈が使用される。 CLBインスタンスのリスナーを強制的に上書きするには、次の注釈を使用します。 リスナーポートの競合が発生した場合、元のリスナーは削除されます。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | 使用するCLBインスタンスのID。 このアノテーションを使用して、既存のCLBインスタンスを指定できます。
| ||
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | 既存のCLBインスタンスのリスナーを上書きするかどうかを指定します。 有効な値:
重要 既存のCLBインスタンスを使用し、 | "false" | CCM 1.9.3.81-gca19cd4-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
CLBインスタンスの作成時のプライマリゾーンとセカンダリゾーンの指定
以下の注釈が使用される。 CLBインスタンスのプライマリゾーンとセカンダリゾーンを指定した後、ゾーンを変更することはできません。
一部のリージョンのCLBインスタンスは、プライマリゾーンとセカンダリゾーンをサポートしていません。 CLBインスタンス作成ページの実際の情報が優先されます。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid | プライマリバックエンドサーバーがデプロイされているゾーンのID。 | デフォルト値なし | CCM 1.9.3.10-gfb99107-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid | セカンダリバックエンドサーバーがデプロイされているゾーンのID。 | デフォルト値なし | CCM 1.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
帯域幅課金CLBインスタンスの作成
以下の注釈が使用される。 両方の注釈が必要です。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type | CLBインスタンスの課金方法。 有効な値:
| paybytraffic | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth | CLBインスタンスの最大帯域幅。 この注釈は、インターネット接続のCLBインスタンスにのみ適用されます。 インターネット接続CLBインスタンスの課金方法の制限の詳細については、「ModifyLoadBalancerInstanceSpec」をご参照ください。 | 50 | CCM 1.9.3.10-gfb99107-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
CLBインスタンスのvSwitchの指定
以下の注釈が使用される。 両方の注釈が必要です。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | 内部対応のCLBインスタンスを作成するには、値をイントラネットに設定します。 有効な値:
| internet | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | CLBインスタンスが存在するvSwitchのID。 vSwitchとクラスターは、同じ仮想プライベートクラウド (VPC) にデプロイする必要があります。 このアノテーションを使用する場合、 VPCコンソールにログインしてvSwitch IDを照会できます。 | デフォルト値なし | CCM 1.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アドレスを指定する
以下の注釈が使用される。 これらの注釈が必要です。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | 内部対応のCLBインスタンスを作成するには、値をイントラネットに設定します。 有効な値:
| internet | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | CLBインスタンスが存在するvSwitchのID。 vSwitchとクラスターは同じVPCにデプロイする必要があります。 このアノテーションを使用する場合、 VPCコンソールにログインしてvSwitch IDを照会できます。 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip | 内部対応のCLBインスタンスのIPアドレス。
| デフォルト値なし | CCM 2.7.0以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
name: nginx
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
name: http
selector:
app: nginx
CLBインスタンスへの追加タグの追加
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスに追加するタグ。 複数入力する場合は、コンマ (,) で区切ります。 例: 重要 このアノテーションをサービスに追加して追加のタグを指定すると、コンソールでCLBインスタンスタグに対して実行される操作が上書きされる場合があります。 | デフォルト値なし | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
IPv6 CLBインスタンスの作成
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスのIPバージョン。 IPバージョンを変更することはできません。 このアノテーションを使用するには、クラスターのkube-proxyモードがIPVSに設定されていることを確認します。 有効な値:
| ipv4 | CCM 1.9.3.220-g24b1885-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
CLBインスタンスの削除保護の有効化
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスの削除保護を有効にするかどうかを指定します。 有効な値:
重要 LoadBalancerサービス用に作成されたCLBインスタンスの削除保護をCLBコンソールで手動で有効にした場合、 | on | CCM 1.9.3.313-g748f81e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
CLBインスタンスの設定読み取り専用モードの有効化
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスの設定読み取り専用モードを有効にするかどうかを指定します。 有効な値:
| ConsoleProtection | CCM 1.9.3.313-g748f81e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
CLBインスタンスの名前の指定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスの名前。 名前は2 ~ 128文字で、英数字、ピリオド (.) 、アンダースコア (_) 、ハイフン (-) を使用できます。 先頭は英字とする必要があります。 | デフォルト値なし | CCM 1.9.3.313-g748f81e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
CLBインスタンスが属するリソースグループの指定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスが属するリソースグループのID。 リソースグループの指定後は変更できません。 リソース管理コンソールにログインして、リソースグループIDを照会できます。 | デフォルト値なし | CCM 1.9.3.313-g748f81e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
サービスのホスト名の指定
以下の注釈が使用される。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname | サービスのホスト名を指定します。 ホスト名は、ドメイン名の命名規則に準拠している必要があります。 以下の点にご注意ください。
| デフォルト値なし | CCM 2.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インスタンスの課金方法。 有効な値:
重要 従量課金CLBインスタンスの仕様を変更することはできません。 | PayBySpec | CCM 2.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
サービスの削除時に自動的に作成されたCLBインスタンスを保持する
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
説明 | デフォルト値 | サポートされているCCMバージョン |
LoadBalancerサービスを削除すると、そのサービスを使用して作成されたCLBインスタンスは保持され、CLBインスタンスおよびサーバーグループの この機能を有効にすると、 有効値:
重要 この操作を実行するには、サービスの種類を変更する代わりにサービスを削除します。 そうしないと、サービスが誤ってサービスに再関連付けされる可能性があります。 | ワークロードへの影響なし | CCM 2.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リスナーがある場合、設定はすべてのTCPリスナーに適用されます。 単位は秒です。 有効な値: 0 ~ 3600 デフォルト値:0 デフォルトでは、セッション維持は無効になっています。 詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 0 | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
cookieの挿入によるHTTPまたはHTTPSリスナーのセッション維持の有効化
以下の注釈が使用される。 セッションの永続性を有効にするためにcookieを挿入する場合は、次の注釈が必要です。
次の注釈は、HTTPベースおよびHTTPSベースのCLBインスタンスにのみ適用されます。
CLBインスタンスに複数のHTTPまたはHTTPSリスナーがある場合、設定はすべてのHTTPまたはHTTPSリスナーに適用されます。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session | セッションの継続時間を適用するかどうかを設定します。 HTTP および HTTPS リスナーにのみ適用されます。 有効な値:
詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | off | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type | cookieの処理に使用されるメソッド。 HTTP および HTTPS リスナーにのみ適用されます。 このアノテーションは、
詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout | Cookie のタイムアウト時間です。 このアノテーションは、 詳細については、「CreateLoadBalancerHTTPListener」および「CreateLoadBalancerHTTPSListener」をご参照ください。 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie | バックエンドサーバーで設定されたcookieの名前。 cookieの長さは1 ~ 200文字で、ASCII文字と数字のみを使用できます。 カンマ (,) 、セミコロン (;) 、またはスペース文字は使用できません。 ドル記号 ($) で始めることはできません。 このアノテーションは、 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
CLBインスタンスのACLの設定
以下の注釈が使用される。 これらの注釈が必要です。
このアノテーションを使用してアクセス制御が設定されたCLBインスタンスを作成する前に、CLBコンソールでACLを作成し、ACLのIDを記録する必要があります。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alicloud-loadbalancer-cert-id | アクセス制御を有効にするかどうかを指定します。 有効な値:
| off | CCM 1.9.3.164-g2105d2e-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id | リスナーに関連付けるACLのID。 このアノテーションは、 | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type | ACL のタイプを設定します。 有効な値:
| デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
CLBインスタンスのポート転送の設定
ポート転送により、CLBインスタンスはHTTPポートからHTTPSポートにリクエストを転送できます。
以下の注釈が使用される。 これらの注釈が必要です。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | CLBインスタンスの証明書のID。 CLBコンソールにログインし、[証明書] ページで証明書IDを確認できます。 説明 証明書の作成方法の詳細については、「Alibaba Cloud SSL証明書サービスの証明書の使用」をご参照ください。 | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port | HTTPポートから指定されたHTTPSポートにリクエストを転送します。 例: | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 80
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
CLBインスタンスのスケジューリングアルゴリズムの指定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
説明 | デフォルト値 | サポートされているCCMバージョン |
スケジューリングのアルゴリズム。 有効な値:
| rr | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
UDPリスナーの作成
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
HTTPリスナーの作成
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
説明 | デフォルト値 | サポートされているCCMバージョン |
複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
HTTPSリスナーの作成
以下の注釈が使用される。
CLBインスタンスのHTTPSリスナーは、HTTPSリクエストをHTTPリクエストに復号化し、バックエンドサーバー上のポッドにリクエストを転送します。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | CLBインスタンスの証明書のID。 CLBコンソールにログインし、[証明書] ページで証明書IDを確認できます。 説明 証明書の作成方法の詳細については、Alibaba Cloud SSL証明書サービスからの証明書の使用. | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
ヘルスチェックを有効にするリスナーの作成
TCPヘルスチェックの有効化
以下の注釈が使用される。 これらの注釈が必要です。
デフォルトでは、TCPポートに対してヘルスチェックが有効になっています。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | TCPまたはUDPリスナーのヘルスチェックを有効にするかどうかを指定します。 有効な値:
| on | CCM 2.6.0以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックのタイプ。 有効な値:
詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | tcp | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | ヘルスチェックのタイムアウト期間。 このアノテーションは、TCP ヘルスチェックに適用されます。 ECS (Elastic Compute Service) インスタンスなどのバックエンドサーバーが、指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。 単位は秒です。 有効な値:1 から 300。
| 5 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 正常でないバックエンドサーバーが正常であると宣言される前に ( 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 正常なバックエンドサーバーが異常であると宣言される前に発生する必要がある、連続して失敗したヘルスチェックの数。 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | ヘルスチェックが実行される間隔。 単位は秒です。 有効値:1 〜 50 。 詳細については、「CreateLoadBalancerTCPListener」をご参照ください。 | 2 | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
UDPヘルスチェックの有効化
以下の注釈が使用される。 これらの注釈が必要です。
デフォルトでは、UDPポートに対してヘルスチェックが有効になっています。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | TCPまたはUDPリスナーのヘルスチェックを有効にするかどうかを指定します。 有効な値:
| on | CCM 2.6.0以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | ヘルスチェックのタイムアウト期間。 このアノテーションは、TCP ヘルスチェックに適用されます。 ECSインスタンスなどのバックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。 単位は秒です。 有効な値:1 から 300。
| 5 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 正常でないバックエンドサーバーが正常であると宣言される前に実行する必要があるヘルスチェックの連続成功回数。 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 正常なバックエンドサーバーが異常であると宣言される前に発生する必要がある、連続して失敗したヘルスチェックの数。 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | ヘルスチェックが実行される間隔。 単位は秒です。 有効値:1 〜 50 。 詳細については、「CreateLoadBalancerUDPListener」をご参照ください。 | 2 | CCM 1.9.3以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
TCPまたはUDPリスナーのヘルスチェックの無効化
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
説明 | デフォルト値 | サポートされているCCMバージョン |
TCPまたはUDPリスナーのヘルスチェックを有効にするかどうかを指定します。 有効な値:
| on | CCM 2.6.0以降 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Disable health checks.
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
HTTPヘルスチェックの有効化
以下の注釈が使用される。
注釈 | 説明 | デフォルト値 | サポートされているCCMバージョン |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | 有効な値:
| off | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | ヘルスチェックのタイプ。 有効な値:
詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | tcp | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | ヘルスチェックに使用するURI (Uniform Resource Identifier) 。 ヘルスチェックのタイプがTCPに設定されている場合、このアノテーションは不要です。 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode | ヘルスチェックが成功するためのHTTPステータスコード。 複数のHTTPステータスコードはコンマ (,) で区切ります。 有効な値:
詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | http_2xx | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | ヘルスチェックに使用されるドメイン名。 有効な値:
詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout | ヘルスチェックのタイムアウト期間。 このアノテーションは、HTTP ヘルスチェックに適用されます。 ECSインスタンスなどのバックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。 単位は秒です。 有効な値:1 から 300。
| デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 正常でないバックエンドサーバーが正常であると宣言される前に実行する必要があるヘルスチェックの連続成功回数。 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 正常なバックエンドサーバーが異常であると宣言される前に発生する必要がある、連続して失敗したヘルスチェックの数。 設定可能な値は 1 から 100 です。 詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | 3 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | ヘルスチェックが実行される間隔。 単位は秒です。 有効値:1 〜 50 。 詳細については、「CreateLoadBalancerHTTPListener」をご参照ください。 | 2 | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | HTTPリスナーによって使用されるヘルスチェック方法。 有効な値:
| デフォルト値なし | CCM 2.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"
# Specify the HTTP status codes for health check. This annotation is optional.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
# Specify the domain name for health check. This annotation is optional.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
# Specify the health check method. This annotation is optional.
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 | 接続ドレインを有効にするかどうかを指定します。 有効な値:
| デフォルト値なし | CCM 2.0.1以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | 接続ドレインのタイムアウト期間。 単位は秒です。 有効な値: 10 ~ 900 | デフォルト値なし | CCM 2.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 | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto | X-Forwarded-Protoヘッダーを使用してCLBインスタンスのリスナープロトコルを取得するかどうかを指定します。 有効な値:
| off | CCM 2.1.0以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport | XForwardedFor_SLBPORTヘッダーを使用してCLBインスタンスのリスナーポートを取得するかどうかを指定します。 有効な値:
| off | CCM 2.9.1以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport | XForwardedFor_ClientSrcPortヘッダーを使用してCLBインスタンスのリスナーポートを取得するかどうかを指定します。 有効な値:
| off | CCM 2.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 | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout | リスナーのアイドル接続のタイムアウト期間を指定します。 単位は秒です。 有効な値: 1 ~ 60。 | 15 | CCM 2.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 | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | CLBインスタンスの証明書のID。 CLBコンソールにログインし、[証明書] ページで証明書IDを確認できます。 説明 証明書の作成方法の詳細については、Alibaba Cloud SSL証明書サービスからの証明書の使用. | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled | HTTP/2を有効にするかどうかを指定します。 有効な値:
| on | CCM 2.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 | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout | リクエストのタイムアウト期間。 単位は秒です。 有効な値: 1 ~ 180 バックエンドサーバーがタイムアウト期間内に応答しなかった場合、CLBインスタンスは待機を停止し、HTTP 504エラーコードをクライアントに返します。 | 60 | CCM 2.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」をご参照ください。 | デフォルト値なし | CCM 2.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 | 複数入力する場合は、カンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.9.3以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | CLBインスタンスの証明書のID。 CLBコンソールにログインし、[証明書] ページで証明書IDを確認できます。 説明 証明書の作成方法の詳細については、Alibaba Cloud SSL証明書サービスからの証明書の使用. | デフォルト値なし | CCM 1.9.3.164-g2105d2e-aliyun以降 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | TLSセキュリティポリシー。 各セキュリティポリシーには、HTTPSで利用可能なTLSプロトコルバージョンと暗号スイートが含まれています。 詳細については、「CreateLoadBalancerHTTPSListener」をご参照ください。 有効な値:
| tls_cipher_policy_1_0 | CCM 2.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 1.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: LoadBalancer
TCPおよびUDPリスナーのプロキシプロトコルの設定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
説明 | デフォルト値 | サポートされているCCMバージョン |
TCPまたはUDPリスナーのプロキシプロトコルを有効にするかどうかを指定します。 プロキシプロトコルを設定すると、クライアントIPアドレスをバックエンドサーバーに渡すことができます。 有効な値:
重要 この機能を有効にすると、サービスが中断する場合があります。 プロキシプロトコルを有効にする前に、アプリケーションを停止して更新する必要があります。 作業は慎重に行ってください。 | off | CCM 2.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
バックエンドサーバーグループを管理する一般的な操作
ラベルを指定したワーカーノードをCLBインスタンスのバックエンドサーバーとして追加
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスのバックエンドサーバーとして追加するワーカーノードのラベルを指定します。 複数入力する場合は、コンマ (,) で区切ります。 例: | デフォルト値なし | CCM 1.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: LoadBalancer
ポッドがCLBインスタンスのバックエンドサーバーとして実行されるノードの追加
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
デフォルトでは、externalTrafficPolicy
パラメーターはサービスのクラスターに設定されています。 クラスターモードでは、クラスター内のすべてのノードがCLBインスタンスのバックエンドサーバーとして追加されます。 ローカルモードでは、ポッドがデプロイされているノードのみがCLBインスタンスのバックエンドサーバーとして追加されます。
説明 | デフォルト値 | サポートされているCCMバージョン |
スケジューリングのアルゴリズム。 有効な値:
| rr | CCM 1.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: LoadBalancer
スケジュール不能ノードをCLBインスタンスのバックエンドサーバーグループから削除する
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスのバックエンドサーバーグループからスケジュール不可能なノードを削除するかどうかを指定します。 有効な値:
| off | CCM 1.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: LoadBalancer
CLBインスタンスのバックエンドサーバーとしてENIが割り当てられているポッドを追加する
注釈: service.beta.kubernetes.io/backend-type
説明 | デフォルト値 | サポートされているCCMバージョン |
CLBインスタンスのバックエンドサーバーとして追加されるリソースのタイプ。 有効な値:
|
| CCM 1.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インスタンスを使用する場合にのみ有効です。 詳細については、「CCMを使用したクラスター間のサービスのデプロイ」をご参照ください。
重み付きラウンドロビンを有効にするサービスの重みの指定
注釈: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
複数のサービスが同じCLBインスタンスを使用する場合、このアノテーションを使用して、現在のサービスに配信されるトラフィックの割合を指定できます。 このアノテーションは、既存のvServerグループが再利用された場合にのみ有効です。 詳細については、「CCMを使用したクラスター間のサービスのデプロイ」をご参照ください。