AlbConfig カスタムリソースを使用して、ご利用の ALB インスタンスの設定をカスタマイズできます。このトピックでは、サポートされているすべての Ingress アノテーションと AlbConfig フィールドについて、その説明と使用方法を解説します。
インデックス
アノテーションフィールド
機能カテゴリ | Ingress アノテーション設定 |
アノテーション YAML | |
ALB Ingress 設定 | |
リスナーまたはプロトコルの設定 | |
トラフィック転送ルールの設定 | |
高度な設定 | |
その他 |
AlbConfig フィールド
フィールドカテゴリ | フィールドリンク |
AlbConfig YAML | |
AlbConfig | |
ALB インスタンス | |
リスナーの設定 | |
vSwitch | |
Simple Log Service | |
QUIC リスナー | |
証明書の設定 | |
アクセス制御 | |
Tracing Analysis | |
X-Forwarded- の設定 | |
ログ内のカスタムヘッダー | |
予約済みフィールド |
アノテーション YAML の例
この例では、アノテーションを使用して 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 | ヘルスチェックのタイムアウト期間 (秒単位)。 有効値: [1, 300]。 デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-interval-seconds | ヘルスチェックの間隔 (秒単位)。 有効値: [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 を使用して、HTTP リクエストを HTTPS (ポート 443) にリダイレクトします。設定例については、「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 は Service バックエンドに新しく追加された Pod にトラフィックを徐々に移行します。これにより、Pod の起動中の CPU とメモリの急増を回避できます。設定例については、「バックエンドのスロースタート」をご参照ください。
デフォルトでは無効です。 |
alb.ingress.kubernetes.io/slow-start-duration | スロースタート完了後にトラフィックがランプアップする時間 (秒単位)。期間が長いほど、ランプアップが遅くなります。 有効値: [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 | セッション維持のタイムアウト期間 (秒単位)。 有効値: [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 | 接続ドレインのタイムアウト期間 (秒単位)。 有効値: [0, 900]。 デフォルト値: |
負荷分散
アノテーション | 説明 |
alb.ingress.kubernetes.io/backend-scheduler | バックエンドサーバーグループの負荷分散アルゴリズムです。設定例については、「バックエンドサーバーグループの負荷分散アルゴリズムの指定」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/backend-scheduler-uch-value | 負荷分散アルゴリズムが uch の場合に使用される URL ハッシュパラメーターです。 |
クロスドメイン
アノテーション | 説明 |
alb.ingress.kubernetes.io/enable-cors | オリジン間リソース共有 (CORS) の設定を有効にします。設定例については、「CORS の設定」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/cors-allow-origin | クロスドメインリクエストを行うことが許可されているオリジンです。 デフォルト値: |
alb.ingress.kubernetes.io/cors-expose-headers | クライアントに公開されるヘッダーのリストです。 |
alb.ingress.kubernetes.io/cors-allow-methods | クロスドメインリクエストで許可される HTTP メソッドです。 次のオプションを 1 つ以上入力します。
デフォルト値: |
alb.ingress.kubernetes.io/cors-allow-credentials | クロスドメインリクエストで認証情報を許可します。
デフォルト: |
alb.ingress.kubernetes.io/cors-max-age | プリフライトレスポンスがブラウザにキャッシュされる最大時間 (秒単位)。 有効値: [-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 インスタンスとそのリスナーを記述します。このセクションでは、完全な AlbConfig の例を示します。各フィールドの詳細については、以降のセクションをご参照ください。
AlbConfig
フィールド | データ型 | 説明 |
apiVersion | 固定値 | APIVersion は、このオブジェクトのバージョン管理されたスキーマを定義します。 固定値: |
kind | 固定値 | Kind は、このオブジェクトが表す REST リソースを示します。 固定値: |
metadata | オブジェクトの標準メタデータです。詳細については、「metadata」をご参照ください。 | |
spec | ALB インスタンスとリスナーのプロパティを記述するパラメーターのリストです。 | |
status | 調整後、インスタンスのステータスは |
AlbConfigSpec
フィールド | データ型 | 説明 |
config | ALB インスタンスのプロパティです。 | |
listeners | インスタンス配下のリスナーのプロパティです。 |
LoadBalancerSpec
フィールド | データ型 | 説明 |
id | string | ALB インスタンス ID。再利用モードを有効にするには入力します。コントローラーに新しい 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 プロジェクトの名前です。 デフォルト値: |
logStore | string | Simple Log Service Logstore の名前です。 デフォルト値: |
BillingConfig
フィールド | データ型 | 説明 |
internetBandwidth | int | 予約済みフィールドです。変更しないでください。 |
internetChargeType | string | 予約済みフィールドです。変更しないでください。 |
payType | enum | 予約済みフィールドです。変更しないでください。 |
bandWidthPackageId | string | アタッチするインターネット共有帯域幅パッケージの ID。アタッチ後はデタッチできません。設定例については、「インターネット共有帯域幅パッケージの設定」をご参照ください。 デフォルト値: |
ModificationProtectionConfig
フィールド | データ型 | 説明 |
reason | string | 予約済みフィールドです。 |
status | string | 予約済みフィールドです。 |
Tag
フィールド | データ型 | 説明 |
key | string | タグのキーです。 デフォルト値: |
value | string | タグの値です。 デフォルト値: |
ListenerSpec
フィールド | データ型 | 説明 |
gzipEnabled | bool | データ圧縮を有効にします。設定例については、「データ圧縮の使用」をご参照ください。
デフォルト値: |
http2Enabled | bool | HTTP/2 プロトコルを有効にします。
デフォルト値: |
port | int | (必須) リスナーが使用するポート。 デフォルト値: |
protocol | enum | (必須) リスナーが使用するプロトコル。
|
securityPolicyId | string | TLS セキュリティポリシーの ID。 デフォルト値: |
idleTimeout | int | アイドル接続のタイムアウト期間 (秒単位)。 有効値: [1, 600]。 デフォルト値: 説明 値 0 はデフォルト値を使用します。 |
loadBalancerId | string | 予約済みフィールドです。変更しないでください。 |
description | string | リスナーの名前です。 デフォルト値: |
caEnabled | bool | 相互認証を有効にします。
デフォルト値: |
requestTimeout | int | リクエストのタイムアウト期間 (秒単位)。 有効値: [1, 600]。 デフォルト値: |
quicConfig | QUIC リスナーの設定です。 | |
defaultActions | Action[] | 予約済みフィールドです。変更しないでください。 |
caCertificates | リスナーのルート CA 証明書です。 | |
certificates | リスナーのサーバー証明書です。 | |
xForwardedForConfig | X-Forwarded- の設定です。 | |
logConfig | リスナーのロギング設定です。 | |
aclConfig | アクセス制御。 |
QuicConfig
フィールド | データ型 | 説明 |
quicUpgradeEnabled | bool | QUIC アップグレードを有効にします。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 メッセージのリクエストヘッダーに この機能を無効にするか、拡張機能を使用するには、ALB Ingress Controller をバージョン 2.15.0 以降にアップグレードし、 |
XForwardedForProcessingMode | string |
|
XForwardedForHostEnabled | 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 の設定」をご参照ください。 デフォルト値: |
aclType | enum | アクセス制御モードです。
|
aclEntries | string | アクセスポリシーのエントリです。 デフォルト値: 重要
|
aclIds | string | 関連付ける既存のポリシー ID のリストです。 デフォルト値: |
LogConfig
フィールド | データ型 | 説明 |
accessLogRecordCustomizedHeadersEnabled | bool | ALB インスタンスのアクセスログでカスタムヘッダーを使用します。
デフォルト値: |
accessLogTracingConfig | Tracing Analysis の設定パラメーターです。詳細な手順については、「AlbConfig で Tracing Analysis の Xtrace を有効にする」をご参照ください。 |
AccessLogTracingConfig
フィールド | データ型 | 説明 |
tracingEnabled | bool | Tracing Analysis 機能を有効にするかどうかを指定します。
デフォルト値: |
tracingSample | int | Tracing Analysis のサンプルレート ( 有効値: [1, 10000]。 |
tracingType | enum | Tracing Analysis のサンプリングアルゴリズムです。
|
AlbConfigStatus
以下のフィールドは、ALB Ingress がステータスを記録するために予約されています。これらのフィールドは変更しないでください: AlbConfigStatus、LoadBalancerStatus、ListenerStatus、AppliedCertificate。
フィールド | 出力 | 説明 |
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 の高度な使用法」をご参照ください。