このトピックでは、アプリケーションロードバランサー (ALB) Ingress でサポートされているアノテーションと AlbConfig フィールドの使用方法について説明します。アノテーションを使用して、転送ルール、セッション永続性、およびヘルスチェックを設定できます。
ALB Ingress でサポートされているアノテーション
ALB Ingress にアノテーションを追加して、ALB 関連の設定を行うことができます。
アドレスプールにヘルスチェックタスクを作成する
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/healthcheck-enabled |
| false | バックエンドサーバーグループのヘルスチェックを有効にするかどうかを指定します。 |
alb.ingress.kubernetes.io/healthcheck-path | string | / | ヘルスチェックリクエストの送信先パス。 |
alb.ingress.kubernetes.io/healthcheck-protocol |
| HTTP | ヘルスチェックに使用されるプロトコル。 |
alb.ingress.kubernetes.io/healthcheck-method |
| HEAD | ヘルスチェック方式。 |
alb.ingress.kubernetes.io/healthcheck-httpcode | http_2xx, http_3xx, http_4xx, and http_5xx | http_2xx | ヘルスチェックに使用されるステータスコード。 次のステータスコードのいずれかまたは複数を選択できます:http_2xx、http_3xx、http_4xx、http_5xx。 |
alb.ingress.kubernetes.io/healthcheck-timeout-seconds | 1~300 | 5 | ヘルスチェックのタイムアウト期間(秒)。 |
alb.ingress.kubernetes.io/healthcheck-interval-seconds | 1~50 | 2 | ヘルスチェックの間隔。 |
alb.ingress.kubernetes.io/healthy-threshold-count | 2~10 | 3 | サーバーが正常と見なされるまでに連続してヘルスチェックに合格する必要がある回数。 |
alb.ingress.kubernetes.io/unhealthy-threshold-count | 2~10 | 3 | サーバーが異常と見なされるまでに連続してヘルスチェックに失敗する必要がある回数。 |
alb.ingress.kubernetes.io/healthcheck-connect-port | 0~65535 | 0 | ヘルスチェックに使用されるポート。 値を 0 に設定すると、バックエンドサーバーのポートがヘルスチェックに使用されます。 |
リダイレクト
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/ssl-redirect |
| false | HTTP リクエスト (301) を HTTPS リクエスト (443) にリダイレクトするかどうかを指定します。 |
バックエンドプロトコル
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/backend-protocol |
| http |
|
書き換え
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/rewrite-target | string | なし | リクエスト内のパスを上書きするパス。 |
リスナー
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/listen-ports |
|
| リスナーポートをプロトコルに関連付けます。 |
優先順位
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/order | 1~1000 | 10 | 転送ルールの優先順位。 |
カナリア
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/canary |
| false | カナリアにリクエストをルーティングするかどうかを指定します。 |
alb.ingress.kubernetes.io/canary-by-header | string | なし | カナリアにルーティングされるリクエストのヘッダー。 |
alb.ingress.kubernetes.io/canary-by-header-value | string | なし | カナリアにルーティングされるリクエストのヘッダーの値。 |
alb.ingress.kubernetes.io/canary-by-cookie | string | なし | カナリアにルーティングされるリクエストの Cookie。 |
alb.ingress.kubernetes.io/canary-weight | string | なし | カナリアに送信されるリクエストの割合。値は 0 から 100 までの整数です。 |
セッション永続性
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/sticky-session |
| false | セッション永続性を有効にするかどうかを指定します。 |
alb.ingress.kubernetes.io/sticky-session-type |
| Insert | Cookieの処理方法。 |
alb.ingress.kubernetes.io/cookie-timeout | 1~86400 | 1000 | セッション永続性のタイムアウト期間 (秒単位)。 |
ロード バランシング
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/backend-scheduler |
| wrr | ロード バランシング アルゴリズム。 |
alb.ingress.kubernetes.io/backend-scheduler-uch-value | string | なし | このアノテーションは、ロード バランシング アルゴリズムが uch に設定されている場合に使用できます。 |
クロスオリジン リソース共有 (CORS)
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/enable-cors |
| false | CORS を有効にするかどうかを指定します。 |
alb.ingress.kubernetes.io/cors-allow-origin | string | * | クロスドメイン要求を許可するオリジン。 |
alb.ingress.kubernetes.io/cors-expose-headers | stringArray | なし | 公開できるヘッダー。 |
alb.ingress.kubernetes.io/cors-allow-methods | 次の値を 1 つ以上選択します。
|
| 許可されるクロスドメイン要求のメソッド。 |
alb.ingress.kubernetes.io/cors-allow-credentials |
| true | 要求で資格情報を許可するかどうかを指定します。 |
alb.ingress.kubernetes.io/cors-max-age | -1 から 172800 (秒) | 172800 | ブラウザーでのプリフライト要求の最大キャッシュ時間。 |
alb.ingress.kubernetes.io/cors-allow-headers | stringArray |
| 許可されるクロスドメイン要求のヘッダー。 |
カスタム転送
アノテーション | 有効な値 | デフォルト値 | 説明 |
alb.ingress.kubernetes.io/actions.{svcName} | json | なし | カスタム転送アクション。 |
alb.ingress.kubernetes.io/conditions.{svcName} | json | なし | カスタム転送条件。 |
alb.ingress.kubernetes.io/rule-direction.{svcName} |
| リクエスト | カスタム転送方向。 |
その他
アノテーション | 有効な値 | 既定値 | 説明 |
alb.ingress.kubernetes.io/backend-keepalive |
| false | 永続的な TCP 接続を有効にするかどうかを指定します。 |
alb.ingress.kubernetes.io/traffic-limit-qps | 1~100000 | なし | QPS スロットリング。 |
alb.ingress.kubernetes.io/use-regex |
| false | パスフィールドで正規表現を使用できるかどうかを指定します。このアノテーションは、パスの種類がプレフィックスの場合にのみ有効です。 |
AlbConfig フィールド
AlbConfig は、ALB インスタンスとそのリスナーを記述するために使用される CustomResourceDefinition (CRD) です。次の表は、関連するフィールドについて説明しています。
Albconfig
フィールド | 有効値 | デフォルト値 | 説明 |
apiVersion | alibabacloud.com/v1 | なし | オブジェクトのAPIバージョン。 |
kind | AlbConfig | なし | オブジェクトに対応するRESTリソース。 |
metadata | なし | オブジェクトのメタデータ。 詳細については、メタデータを参照してください。 | |
spec | なし | ALBインスタンスとそのリスナーの属性を記述するために使用されるパラメーターのリスト。 | |
status | なし | ALBインスタンスのステータスは、調整後に |
AlbConfigSpec
フィールド | 有効な値 | 既定値 | 説明 |
config | なし | ALB インスタンスの属性。 | |
listeners | なし | ALB インスタンスのリスナーの属性。 |
LoadBalancerSpec
フィールド | 有効な値 | デフォルト値 | 説明 |
id | string | "" | ALBインスタンスのID。インスタンスIDを指定すると、ALBインスタンスを再利用できます。 |
name | string | k8s-{namespace}-{name}-{hashCode} | ALBインスタンスの名前。 |
addressAllocatedMode |
| Dynamic | ALBインスタンスのアドレスモード。 |
addressType |
| Internet | ALBインスタンスのIPv4 CIDRブロックのネットワークタイプ。 |
ipv6AddressType |
| Intranet | ALBインスタンスのIPv6 CIDRブロックのネットワークタイプ。 |
addressIpVersion |
| IPv4 | プロトコルのバージョン。 |
resourceGroupId | string | デフォルトのリソースグループ | ALBインスタンスが属するリソースグループのID。 |
edition |
| Standard | ALBインスタンスの機能バージョン。 |
deletionProtectionEnabled | *bool | null | 予約フィールド。このフィールドは調整できません。 |
forceOverride | *bool | false | 再利用モードでALBインスタンスの属性を強制的に上書きするかどうかを指定します。 |
listenerForceOverride | *bool | null | 再利用モードでリスナーの属性を強制的に上書きするかどうかを指定します。 |
zoneMappings | なし | ゾーンとElastic IP Address(EIP)の構成。 | |
accessLogConfig | なし | ログ収集の設定。 | |
billingConfig | なし | 課金方法。 | |
modificationProtectionConfig | なし | 構成読み取り専用モードの設定。 | |
tags | なし | ALBインスタンスのタグ。 |
ゾーンマッピング
フィールド | 有効な値 | デフォルト値 | 説明 |
vSwitchId | string | "" | 必須。 vSwitch の ID。 |
zoneId | string | "" | 自動的に指定されます。 vSwitch のゾーン。 |
allocationId | string | "" | EIP の ID。 |
eipType | string | "" | 予約フィールド。 |
AccessLogConfig
フィールド | 有効な値 | 既定値 | 説明 |
logStore | string | "" | Simple Log Serviceログストアの名前。 |
logProject | string | "" | Simple Log Serviceプロジェクトの名前。 |
BillingConfig
フィールド | 有効な値 | デフォルト値 | 説明 |
internetBandwidth | int | 0 | 予約フィールド。 |
internetChargeType | string | "" | 予約フィールド。 |
payType | PostPay | PostPay | 課金方法。 |
bandWidthPackageId | string | "" | 関連付けられているインターネット共有帯域幅インスタンスのID。インターネット共有帯域幅インスタンスの関連付けを解除することはできません。 |
ModificationProtectionConfig
フィールド | 有効な値 | デフォルト値 | 説明 |
reason | string | "" | 予約フィールド。 |
status | string | "" | 予約フィールド。 |
タグ
フィールド | 有効な値 | 既定値 | 説明 |
key | "" | "" | ラベルのキー。 |
value | "" | "" | ラベルの値。 |
ListenerSpec
フィールド | 有効な値 | デフォルト値 | 説明 |
gzipEnabled |
| null | 圧縮を有効にするかどうかを指定します。 |
http2Enabled |
| null | HTTP/2 を使用するかどうかを指定します。 |
port |
| 0 | 必須。 リスニングポート。 |
protocol |
| "" | 必須。 リスナープロトコル。 |
securityPolicyId | string | "" | TLS セキュリティポリシーの ID。 |
idleTimeout | int | 60 | アイドル状態の接続タイムアウト期間。 説明 値 0 は、デフォルト値が使用されることを示します。 |
loadBalancerId | string | "" | 予約フィールド。 |
description | string |
| リスナーの名前。 |
caEnabled | bool | false | 予約フィールド。 |
requestTimeout | int | 60 | リクエストのタイムアウト期間。 |
quicConfig | QUIC リスナー構成。 | ||
defaultActions | Action | null | 予約フィールド。 |
caCertificates | null | 予約フィールド。 | |
certificates | null | リスナーのサーバー証明書。 | |
xForwardedForConfig | なし | XForward ヘッダーの構成。 | |
logConfig | LogConfig | なし | 予約フィールド。 |
aclConfig | なし | アクセス制御の構成。 |
QuicConfig
フィールド | 有効な値 | 既定値 | 説明 |
quicUpgradeEnabled | bool | false | QUIC アップグレードを有効にするかどうかを指定します。 |
quicListenerId | string | "" | QUIC リスナー。 |
証明書
フィールド | 有効値 | 既定値 | 説明 |
IsDefault | bool | false | 現在の証明書が既定の証明書であるかどうかを指定します。 説明 各サービスまたはシステムは、1つの既定の証明書のみを持つことができます。 |
CertificateId | string | "" | 証明書のID。 |
優先順位
フィールド | アノテーション | 有効な値 | デフォルト値 |
XForwardedForClientCertSubjectDNAlias | string | "" | カスタムヘッダーの名前です。 このフィールドは、 |
XForwardedForClientCertSubjectDNEnabled | bool | false | クライアント証明書の所有者に関する情報を取得するために |
XForwardedForProtoEnabled | bool | false | ALBインスタンスのリスナー プロトコルを取得するために |
XForwardedForClientCertIssuerDNEnabled | bool | false | クライアント証明書を発行した認証局に関する情報を取得するために、 |
XForwardedForSLBIdEnabled | bool | false |
|
XForwardedForClientSrcPortEnabled | bool | false | クライアントポートを取得するために |
XForwardedForClientCertFingerprintEnabled | bool | false | クライアント証明書のフィンガープリントを取得するために |
XForwardedForEnabled | bool | false | クライアント IP アドレスを取得するために |
XForwardedForSLBPortEnabled | bool | false |
|
XForwardedForClientCertClientVerifyAlias | string | "" | カスタムヘッダーの名前です。 このフィールドは、 |
XForwardedForClientCertIssuerDNAlias | string | "" | カスタムヘッダーの名前です。 このフィールドは、 |
XForwardedForClientCertFingerprintAlias | string | "" | カスタムヘッダーの名前です。 このフィールドは、 |
alb.ingress.kubernetes.io/order | 1~1000 | 10 |
|
カナリア
アノテーション | 有効な値 | デフォルト値 | 説明 |
aclName | string | なし | AclEntry モードのネットワーク ACL の名前。 |
alb.ingress.kubernetes.io/canary |
| "" | ネットワーク ACL の種類。ブラックリストまたはホワイトリストを指定できます。 |
aclEntries | string | null | ACL ルール。 |
aclIds | stringArray | null | 既存のネットワーク ACL の ID です。 |
AlbConfigStatus
フィールド | 出力 | デフォルト値 | 説明 |
loadBalancer | なし | ALB インスタンスの状態。 |
LoadBalancerStatus
フィールド | 出力 | 既定値 | 説明 |
dnsname | string | なし | ALB インスタンスの DNS アドレス。 |
id | string | なし | ALB インスタンスの ID。 |
listeners | なし | リスナーの属性。 |
リスナーの状態
フィールド | 出力 | 例 | 説明 |
portAndProtocol | string | 80/HTTP | リスナーとプロトコルの構成。 |
certificates | なし | 関連付けられている証明書。 |
セッション永続性
フィールド | 出力 | 例 | 説明 |
certificateId | string | xxxx-cn-hangzhou | 証明書のID。 |
isDefault | bool | true | 証明書がデフォルト証明書であるかどうかを指定します。 |
参考資料
ALB Ingress は、クラウドネイティブアプリケーションの高弾性と大規模なレイヤー 7 トラフィック管理の要件を満たします。詳細については、ALB Ingress を使用したアクセスサービス を参照してください。
ALB Ingress のアノテーションの使用方法の詳細については、ALB Ingress の高度な構成 を参照してください。