AlbConfig リソースを設定して、Application Load Balancer (ALB) インスタンスの設定をカスタマイズできます。このトピックでは、ALB Ingress がサポートするアノテーションと AlbConfig フィールド、およびその使用方法について説明します。
インデックス
アノテーションフィールド
機能分類 | Ingress アノテーション |
アノテーション YAML | |
ALB Ingress 設定 | |
リスナー/プロトコル設定 | |
転送ルール設定 | |
高度な設定 | |
その他 |
AlbConfig フィールド
フィールドカテゴリ | フィールドリンク |
AlbConfig YAML | |
AlbConfig | |
ALB インスタンス | |
リスナー設定 | |
vSwitch | |
Simple Log Service | |
QUIC リスナー | |
証明書の設定 | |
アクセス制御 | |
トレース分析 | |
X-Forwarded-For 設定 | |
ログにカスタムヘッダーを使用 | |
予約済みフィールド |
アノテーション YAML の例
次のコードは、アノテーションを使用して Ingress リソース内の ALB インスタンスを設定する方法の例を示しています。アノテーションの詳細については、以降のセクションをご参照ください。
サポートされている Ingress アノテーション
ALB Ingress を使用する場合、必要に応じて Ingress リソースにアノテーションを追加できます。
ヘルスチェック
アノテーション | 説明 |
alb.ingress.kubernetes.io/healthcheck-enabled | バックエンドサーバーグループのヘルスチェックを有効にするかどうかを指定します。ヘルスチェックの設定例については、「ヘルスチェックの設定」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-path | ヘルスチェックのパス。 デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-protocol | ヘルスチェックのプロトコル。
デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-httpversion | HTTP バージョン。このパラメーターは、
デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-method | ヘルスチェックメソッド。
デフォルト値: 重要
|
alb.ingress.kubernetes.io/healthcheck-httpcode | ヘルスチェックのステータスコード。バックエンドサーバーは、プローブが成功し、指定されたステータスコードを返した場合にのみ正常と見なされます。 次のオプションを 1 つ以上指定できます。複数のステータスコードはコンマ (,) で区切ります。
デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-code | ヘルスチェックのステータスコード。バックエンドサーバーは、プローブが成功し、指定されたステータスコードを返した場合にのみ正常と見なされます。 このフィールドを
|
alb.ingress.kubernetes.io/healthcheck-timeout-seconds | ヘルスチェックのタイムアウト期間。単位: 秒 (s)。 有効値: 1~300。 デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-interval-seconds | ヘルスチェックの間隔。単位: 秒 (s)。 有効値: 1~50。 デフォルト値: |
alb.ingress.kubernetes.io/healthy-threshold-count | バックエンドサーバーを正常と宣言するために必要な連続した正常なヘルスチェックの回数。 有効値: 2~10。 デフォルト値: |
alb.ingress.kubernetes.io/unhealthy-threshold-count | バックエンドサーバーを異常と宣言するために必要な連続した失敗したヘルスチェックの回数。 有効値: 2~10。 デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-connect-port | ヘルスチェックに使用されるポート。 デフォルト値: 説明 値 |
リダイレクト
アノテーション | 説明 |
alb.ingress.kubernetes.io/ssl-redirect | HTTP リクエストに対して 308 ステータスコードを返し、ポート 443 の HTTPS リスナーにリダイレクトするかどうかを指定します。リダイレクト設定の例については、「HTTP リクエストを HTTPS にリダイレクトする」をご参照ください。
デフォルト値: |
バックエンドサービスが使用するプロトコル
アノテーション | 説明 |
alb.ingress.kubernetes.io/backend-protocol | バックエンドサーバーグループが使用するプロトコル。設定例については、「バックエンド HTTPS および gRPC プロトコルのサポート」をご参照ください。
デフォルト値: 説明 異なるリスナーでサポートされているバックエンドサーバーグループプロトコルは次のとおりです:
|
書き換え
アノテーション | 説明 |
alb.ingress.kubernetes.io/rewrite-target | リクエストが書き換えられるパス。書き換え設定の例については、「書き換え」をご参照ください。 |
リスナー
アノテーション | 説明 |
alb.ingress.kubernetes.io/listen-ports | Ingress リソースに関連付けられているリスナーポートとプロトコル。設定例については、「カスタムリスナーポートの設定」をご参照ください。 Ingress ルールのリスナープロトコルとポートを指定できます。次のコードにいくつかの例を示します:
|
スロースタート
アノテーション | 説明 |
alb.ingress.kubernetes.io/slow-start-enabled | スロースタート機能を有効にするかどうかを指定します。スロースタートを有効にすると、ALB Ingress は、新しい Pod がサービスのバックエンドに追加された後、徐々にトラフィックを分散します。これにより、Pod の起動時に CPU とメモリの使用率が高くなることによる例外を防ぎます。スロースタートの設定例については、「バックエンドのスロースタート」をご参照ください。
デフォルトでは、この機能は無効になっています。 |
alb.ingress.kubernetes.io/slow-start-duration | スロースタートの期間。期間が長いほど、トラフィックの増加は遅くなります。単位: 秒 (s)。 有効値: 30~900。 デフォルト値: |
優先度
アノテーション | 説明 |
alb.ingress.kubernetes.io/order | 転送ルールの相対的な優先度。値が小さいほど優先度が高くなります。優先度の設定例については、「転送ルールの優先度の設定」をご参照ください。 有効値: 1~1000。 デフォルト値: |
グレースケール
アノテーション | 説明 |
alb.ingress.kubernetes.io/canary | カナリアリリースを有効にするかどうかを指定します。カナリアリリースを実行する方法の詳細については、「ALB Ingress を使用したカナリアリリースの実装」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/canary-by-header | カナリアリリースが有効な場合に一致するリクエストヘッダー。 |
alb.ingress.kubernetes.io/canary-by-header-value | カナリアリリースが有効な場合に一致するリクエストヘッダーの値。 |
alb.ingress.kubernetes.io/canary-by-cookie | カナリアリリースが有効な場合に一致する Cookie。 |
alb.ingress.kubernetes.io/canary-weight | 指定されたサービスに転送されるリクエストの割合。値は 0 から 100 までの整数である必要があります。詳細については、「重みによるカナリアリリース」をご参照ください。 |
セッション維持
アノテーション | 説明 |
alb.ingress.kubernetes.io/sticky-session | バックエンドサーバーグループのセッション維持を有効にするかどうかを指定します。セッション維持の設定例については、「アノテーションを使用したセッション維持の有効化」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/sticky-session-type | セッション維持のタイプ。
デフォルト値: |
alb.ingress.kubernetes.io/cookie-timeout | セッション維持のタイムアウト。単位: 秒 (s)。 有効値: 1~86400。 デフォルト値: |
alb.ingress.kubernetes.io/cookie | カスタム Cookie の値。タイプ: 文字列。デフォルト値: |
接続ドレイン
アノテーション | 説明 |
alb.ingress.kubernetes.io/connection-drain-enabled | 接続ドレインを有効にするかどうかを指定します。接続ドレインを有効にすると、ALB Ingress は、バックエンド Pod が Terminating 状態になるか、ヘルスチェックによって異常と報告されたときに、一定期間通常のトラフィック転送を維持します。タイムアウト期間に達すると接続は終了します。これにより、バックエンドが突然削除されることによるサービスの中断を防ぎます。接続ドレインの仕組みの詳細については、「接続ドレイン」をご参照ください。
デフォルトでは、この機能は無効になっています。 |
alb.ingress.kubernetes.io/connection-drain-timeout | 接続ドレインのタイムアウト。単位: 秒 (s)。 有効値: 0~900。 デフォルト値: |
負荷分散
アノテーション | 説明 |
alb.ingress.kubernetes.io/backend-scheduler | バックエンドサーバーグループの負荷分散アルゴリズム。負荷分散アルゴリズムの設定例については、「サーバーグループの負荷分散アルゴリズムの指定」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/backend-scheduler-uch-value | 負荷分散アルゴリズムが "uch" の場合に使用される URL ハッシュパラメーター。 |
クロスドメイン
アノテーション | 説明 |
alb.ingress.kubernetes.io/enable-cors | クロスドメイン設定を有効にするかどうかを指定します。設定例については、「クロスドメイン設定」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/cors-allow-origin | 許可されるクロスドメインのオリジン。 デフォルト値: |
alb.ingress.kubernetes.io/cors-expose-headers | 公開できるヘッダーのリスト。 |
alb.ingress.kubernetes.io/cors-allow-methods | 許可されるクロスドメインリクエストメソッド。 次のオプションを 1 つ以上指定できます:
デフォルト値: |
alb.ingress.kubernetes.io/cors-allow-credentials | クロスドメインリクエストが資格情報を含むことができるかどうかを指定します。
デフォルト値: |
alb.ingress.kubernetes.io/cors-max-age | ブラウザでのプリフライトリクエストの最大キャッシュ時間。単位: 秒 (s)。 有効値: -1~172800。 デフォルト値: 説明 値 |
alb.ingress.kubernetes.io/cors-allow-headers | 許可されるクロスドメインヘッダーのリスト。 デフォルト値: |
カスタム転送
アノテーション | 説明 |
alb.ingress.kubernetes.io/actions.{svcName} | カスタム転送アクション。カスタム転送の詳細については、「ALB Ingress の転送ルールのカスタマイズ」をご参照ください。 |
alb.ingress.kubernetes.io/conditions.{svcName} | カスタム転送条件。 |
alb.ingress.kubernetes.io/rule-direction.{svcName} | カスタム転送方向。
デフォルト値: |
サーバーグループの IPv6 サポート
アノテーション | 説明 |
alb.ingress.kubernetes.io/enable-ipv6 | サーバーグループで IPv6 を有効にするかどうかを指定します。設定例については、「サーバーグループの IPv6 サポート」をご参照ください。
デフォルト値: |
その他
アノテーション | 説明 |
alb.ingress.kubernetes.io/backend-keepalive | バックエンドサーバーへの持続的接続を有効にするかどうかを指定します。設定例については、「バックエンドの持続的接続」をご参照ください。 デフォルト値: |
alb.ingress.kubernetes.io/traffic-limit-qps | クエリ/秒 (QPS) のスロットリング設定。 有効値: 1~1000000。 |
alb.ingress.kubernetes.io/use-regex | Path フィールドで正規表現を使用できるようにします。これは Prefix タイプに対してのみ有効です。 デフォルト値: |
AlbConfig フィールド
AlbConfig は、ALB インスタンスとそのリスナーを記述するカスタムリソース定義 (CRD) です。次のコードは、完全な AlbConfig の例を示しています。フィールドの詳細については、以降のセクションをご参照ください。
Albconfig
フィールド | タイプ | 説明 |
apiVersion | 固定値 | このオブジェクトのバージョン管理されたスキーマ。 固定値: |
kind | 固定値 | このオブジェクトが表す REST リソース。 固定値: |
metadata | 標準オブジェクトメタデータ。詳細については、「metadata」をご参照ください。 | |
spec | ALB インスタンスとそのリスナーのプロパティを記述するパラメーターのリスト。 | |
status | 調整が成功すると、インスタンスのステータスが |
AlbConfigSpec
フィールド | タイプ | 説明 |
config | ALB インスタンスのプロパティ。 | |
listeners | インスタンスのリスナープロパティ。 |
LoadBalancerSpec
フィールド | タイプ | 説明 |
id | string | ALB インスタンスの ID。既存のインスタンスを再利用するには、ID を指定します。このフィールドを空のままにすると、コントローラーは ALB インスタンスを作成します。新しい ALB インスタンスを作成するか、既存のインスタンスを再利用する方法の詳細については、「AlbConfig の作成」をご参照ください。 デフォルト値: |
name | string | ALB インスタンスの名前。 デフォルト値: |
addressAllocatedMode | enum | ALB インスタンスのアドレスモード。
デフォルト値: |
addressType | enum | ALB インスタンスの IPv4 アドレスタイプ。
デフォルト値: |
ipv6AddressType | enum | ALB インスタンスの IPv6 アドレスタイプ。これは IPv4 アドレスタイプと同じである必要はありません。
デフォルト値: |
addressIpVersion | enum | ALB インスタンスがデュアルスタックをサポートするかどうかを指定します。
デフォルト値: |
resourceGroupId | string | インスタンスが属するリソースグループの ID。 デフォルト値: |
edition | enum | インスタンスのエディション。再利用されたインスタンスのエディションは変更できません。
デフォルト値: |
deletionProtectionEnabled | bool | これは予約済みフィールドです。変更しないでください。 |
forceOverride | bool | 再利用モードでインスタンスのプロパティを強制的に上書きするかどうかを指定します。
デフォルト値: |
listenerForceOverride | bool | 再利用モードでリスナーのプロパティを強制的に上書きするかどうかを指定します。
デフォルト値: |
zoneMappings | ゾーンと EIP の設定。 | |
accessLogConfig | ログ収集。 | |
billingConfig | 課金方法。 | |
modificationProtectionConfig | 設定の読み取り専用モード。 | |
tags | インスタンスのタグ。 | |
securityGroupIds | string[] | ALB インスタンスが追加されるセキュリティグループの ID。詳細については、「AlbConfig を使用してセキュリティグループを設定する」をご参照ください。 |
ZoneMapping
フィールド | タイプ | 説明 |
vSwitchId | string | (必須) vSwitch の ID。 デフォルト値: |
zoneId | string | vSwitch のゾーン。デフォルト値のままにしてください。 デフォルト値: |
allocationId | string | Elastic IP アドレス (EIP) の ID。設定例については、「AlbConfig を使用して ALB インスタンスを設定する」をご参照ください。 デフォルト値: |
eipType | string | これは予約済みフィールドです。変更しないでください。 |
AccessLogConfig
フィールド | タイプ | 説明 |
logProject | string | Simple Log Service (SLS) プロジェクトの名前。 デフォルト値: |
logStore | string | SLS Logstore の名前。名前は デフォルト値: |
BillingConfig
フィールド | タイプ | 説明 |
internetBandwidth | int | これは予約済みフィールドです。変更しないでください。 |
internetChargeType | string | これは予約済みフィールドです。変更しないでください。 |
payType | enum | これは予約済みフィールドです。変更しないでください。 |
bandWidthPackageId | string | アタッチする共有帯域幅インスタンスの ID。アタッチされたインスタンスはデタッチできません。設定例については、「共有帯域幅の設定」をご参照ください。 デフォルト値: |
ModificationProtectionConfig
フィールド | タイプ | 説明 |
reason | string | 予約済みフィールド。 |
status | string | 予約済みフィールド。 |
タグ
フィールド | タイプ | 説明 |
key | string | タグのキー。 デフォルト値: |
value | string | タグの値。 デフォルト値: |
ListenerSpec
フィールド | タイプ | 説明 |
gzipEnabled | bool | データ圧縮を有効にするかどうかを指定します。データ圧縮の設定例については、「データ圧縮の使用」をご参照ください。
デフォルト値: |
http2Enabled | bool | HTTP/2 を有効にするかどうかを指定します。
デフォルト値: |
port | int | (必須) リスナーが使用するポート。 デフォルト値: |
protocol | enum | (必須) リスナーが使用するプロトコル。
|
securityPolicyId | string | TLS セキュリティポリシーの ID。 デフォルト値: |
idleTimeout | int | アイドル接続のタイムアウト。単位: 秒 (s)。 有効値: 1~600。 デフォルト値: 説明 値 0 は、デフォルト値が使用されることを示します。 |
loadBalancerId | string | これは予約済みフィールドです。変更しないでください。 |
description | string | リスナーの名前。 デフォルト値: |
caEnabled | bool | 相互認証を有効にするかどうかを指定します。
デフォルト値: |
requestTimeout | int | リクエストのタイムアウト。単位: 秒 (s)。 有効値: 1~600。 デフォルト値: |
quicConfig | QUIC リスナー設定。 | |
defaultActions | Action[] | これは予約済みフィールドです。変更しないでください。 |
caCertificates | リスナーのルート CA 証明書。 | |
certificates | リスナーのサーバー証明書。 | |
xForwardedForConfig | X-Forwarded-For フィールドの設定。 | |
logConfig | リスナーログの設定。 | |
aclConfig | アクセス制御。 |
QuicConfig
フィールド | タイプ | 説明 |
quicUpgradeEnabled | bool | QUIC アップグレードを有効にするかどうかを指定します。QUIC リスナーと HTTPS リスナーを一緒に使用するシナリオでは、quicUpgradeEnabled を使用して QUIC リスナーと HTTPS リスナーを関連付けたり、関連付けを解除したりします。詳細については、「QUIC リスナーを使用して HTTP/3 をサポートする」をご参照ください。
デフォルト値: |
quicListenerId | string | QUIC リスナーに関連付けられている HTTPS リスナー。 デフォルト値: |
証明書
フィールド | タイプ | 説明 |
IsDefault | bool | 証明書がデフォルトの証明書であるかどうかを指定します。証明書の設定方法の詳細については、「HTTPS 証明書を設定して暗号化通信を有効にする」をご参照ください。
デフォルト値: 重要 デフォルトの証明書として指定できる証明書は 1 つだけです。 |
CertificateId | string | 証明書の CertIdentifier。 デフォルト値: |
XForwardedForConfig
フィールド | タイプ | 説明 |
XForwardedForClientCertSubjectDNEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForProtoEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertIssuerDNEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForSLBIdEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForClientSrcPortEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertFingerprintEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに |
XForwardedForSLBPortEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertClientVerifyEnabled | bool | ALB インスタンスによって転送される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertSubjectDNAlias | string | カスタムフィールド名。値を指定すると、 このフィールドは、 デフォルト値: |
XForwardedForClientCertClientVerifyAlias | string | カスタムフィールド名。値を指定すると、 このフィールドは、 デフォルト値: |
XForwardedForClientCertIssuerDNAlias | string | カスタムフィールド名。値を指定すると、 このフィールドは、 デフォルト値: |
XForwardedForClientCertFingerprintAlias | string | カスタムフィールド名。値を指定すると、 このフィールドは、 デフォルト値: |
XForwardedForClientSourceIpsEnabled | bool | ALB が
デフォルト値: |
XForwardedForClientSourceIpsTrusted | string | 信頼できるプロキシ IP アドレスを指定します。 有効な IP アドレスまたは CIDR ブロックを入力します。複数の値はセミコロン (
例: |
AclConfig
フィールド | タイプ | 説明 |
aclName | string | AclEntry モードで関連付けられたアクセス制御リスト (ACL) ポリシーの名前。ACL の設定方法の詳細については、「アクセス制御のための ACL の設定」をご参照ください。 デフォルト値: |
aclType | enum | アクセス制御モード。
|
aclEntries | string | ACL エントリ。 デフォルト値: 重要
|
aclIds | string | 関連付ける既存のポリシー ID のリスト。 デフォルト値: |
LogConfig
フィールド | タイプ | 説明 |
accessLogRecordCustomizedHeadersEnabled | bool | ALB インスタンスのアクセスログでカスタムヘッダーを使用するかどうかを指定します。
デフォルト値: |
accessLogTracingConfig | トレース分析のパラメーター。トレース分析の使用方法の詳細については、「AlbConfig を使用してトレース分析のために Xtrace を有効にする」をご参照ください。 |
AccessLogTracingConfig
フィールド | タイプ | 説明 |
tracingEnabled | bool | トレース分析を有効にするかどうかを指定します。
デフォルト値: |
tracingSample | int | トレース分析のサンプルレート。単位は 有効値: 1~10000。 |
tracingType | enum | トレース分析のサンプリングアルゴリズム。
|
AlbConfigStatus
次のフィールド、AlbConfigStatus、LoadBalancerStatus、ListenerStatus、および AppliedCertificate は予約済みフィールドです。これらは ALB Ingress によってステータス情報を自動的に記録するために使用されます。変更しないでください。
フィールド | 出力 | 説明 |
loadBalancer | これは予約済みフィールドです。変更しないでください。 ALB インスタンスのステータス。 |
LoadBalancerStatus
フィールド | 出力 | 説明 |
dnsname | string | これは予約済みフィールドです。変更しないでください。 ALB インスタンスの DNS 名。 |
id | string | これは予約済みフィールドです。変更しないでください。 ALB インスタンスの ID。 |
listeners | これは予約済みフィールドです。変更しないでください。 ALB インスタンスのリスナープロパティ。 |
ListenerStatus
フィールド | 出力 | 説明 |
portAndProtocol | string | これは予約済みフィールドです。変更しないでください。 リスナーが使用するポートとプロトコル。 |
certificates | これは予約済みフィールドです。変更しないでください。 リスナーに関連付けられている証明書。 |
AppliedCertificate
フィールド | 出力 | 説明 |
certificateId | string | これは予約済みフィールドです。変更しないでください。 証明書の CertIdentifier。 |
isDefault | bool | これは予約済みフィールドです。変更しないでください。 証明書がデフォルトの証明書であるかどうかを指定します。 |
リファレンス
AlbConfig の特定の設定については、「AlbConfig を使用して ALB インスタンスを設定する」をご参照ください。
ALB Ingress アノテーションの使用方法については、「ALB Ingress の高度な使用法」をご参照ください。