AlbConfig を使用して、Application Load Balancer (ALB) インスタンスの構成を定義できます。このトピックでは、ALB Ingress でサポートされているアノテーションについて説明します。また、AlbConfig フィールドとこれらのフィールドの使用方法についても紹介します。
目次
アノテーション
カテゴリ | Ingress 構成 |
アノテーション YAML | |
ALB Ingress 構成 | |
リスナー/プロトコル構成 | |
転送ルール構成 | |
詳細構成 | |
その他の構成 |
AlbConfig フィールド
カテゴリ | フィールド構成 |
AlbConfig YAML | ALB Ingress 構成 |
AlbConfig | |
ALB インスタンス | |
リスナー構成 | |
vSwitch | |
簡易 Log Service | |
QUIC リスナー | |
証明書構成 | |
アクセス制御 | |
トレース分析 | |
X-Forwarded-For 構成 | |
ロギングで使用されるカスタムヘッダー | |
予約済みフィールド |
アノテーション YAML の例
以下は、アノテーションを使用して ALB Ingress を構成する方法の例です。アノテーションの説明については、以下のセクションを参照してください。
ALB Ingress でサポートされているアノテーション
ビジネス要件に基づいて、ALB Ingress にアノテーションを追加できます。
ヘルスチェック
アノテーション | 説明 |
alb.ingress.kubernetes.io/healthcheck-enabled | バックエンドサーバーグループのヘルスチェック機能を有効にするかどうかを指定します。詳細については、「ヘルスチェックの構成」をご参照ください。
デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-path | ヘルスチェックに使用される URL です。 デフォルト値: |
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 です。 デフォルト値: |
詳細については、「クイックスタート: PHP を使用して BLOB をアップロード、ダウンロード、一覧表示する」をご参照ください。 | サーバーが異常と見なされるまでに、ヘルスチェックが連続して失敗する必要がある回数です。 有効な値: 2 ~ 10 です。 デフォルト値: |
alb.ingress.kubernetes.io/healthcheck-connect-port | ヘルスチェックに使用されるポート。 既定値: 説明 値 |
リダイレクト
アノテーション | 説明 |
alb.ingress.kubernetes.io/ssl-redirect | ポート 443 の HTTPS リスナーに HTTP リクエストをリダイレクトし、状態コード 308 を返すかどうかを指定します。リダイレクトの設定方法の詳細については、「HTTP リクエストを HTTPS にリダイレクトする」をご参照ください。
デフォルト値: |
バックエンドサーバープロトコル
アノテーション | 説明 |
alb.ingress.kubernetes.io/backend-protocol | バックエンド サーバー グループで使用されるプロトコル。詳細については、「HTTPS または gRPC プロトコルを設定する」をご参照ください。
デフォルト値: 説明 リスナーでサポートされているバックエンド サーバー プロトコルは、リスナーの種類によって異なります。
|
書き換え
アノテーション | 説明 |
alb.ingress.kubernetes.io/rewrite-target | リクエストのパスを上書きするパス。詳細については、「書き換えルールの構成」をご参照ください。 |
リスナー
アノテーション | 説明 |
alb.ingress.kubernetes.io/listen-ports | ALB Ingress に関連付けられたリスナーのリスニング ポートとプロトコル。詳細については、「カスタム リスニング ポートを設定する」をご参照ください。 例:
|
スロースタート
注釈 | 説明 |
alb.ingress.kubernetes.io/slow-start-enabled | スロースタートモードを有効にするかどうかを指定します。スロースタートモードを有効にすると、ALB Ingress は サービスバックエンドに追加された新しい ポッドへのトラフィックを徐々に分散させ、ポッドの起動によって引き起こされる CPU と メモリの急激なスパイクを回避します。スロースタート構成の詳細については、「バックエンドのスロースタート」をご参照ください。
デフォルトでは、このモードは無効になっています。 |
alb.ingress.kubernetes.io/slow-start-duration | トラフィックを徐々に増加させるスロースタートの完了にかかる時間が長いほど、トラフィックの増加率は遅くなります。単位:秒。 有効な値:30 ~ 900。 デフォルト値: |
優先順位
アノテーション | 説明 |
alb.ingress.kubernetes.io/order | 転送ルールの優先順位。値が小さいほど、優先順位が高くなります。詳細については、「転送ルールの優先順位を設定する」をご参照ください。 有効な値:1 ~ 1000 デフォルト値: |
カナリア
アノテーション | 説明 |
alb.ingress.kubernetes.io/canary | カナリアへのリクエストをルーティングするかどうかを指定します。詳細については、「アノテーションを使用してカナリアリリースを実行する」をご参照ください。
デフォルト値: |
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 | Cookie を処理するために使用されるメソッド。
デフォルト値: |
alb.ingress.kubernetes.io/cookie-timeout | セッション維持のタイムアウト期間(秒単位)。 有効な値: 1 ~ 86400。 デフォルト値: |
alb.ingress.kubernetes.io/cookie | カスタム Cookie 値。 種類: 文字列。 デフォルト値: |
接続ドレイニング
アノテーション | 説明 |
alb.ingress.kubernetes.io/connection-drain-enabled | 接続ドレインを有効にするかどうかを指定します。接続ドレインが有効になっている場合、バックエンド ポッドが Terminating 状態になったとき、またはヘルスチェックが失敗したときに、ALB Ingress は一定期間通常のトラフィックを維持します。接続はタイムアウト期間が経過した後にのみ終了します。これは、バックエンドの突然の削除によって引き起こされるサービスへの影響を軽減するのに役立ちます。接続ドレインの仕組みの詳細については、「接続ドレイン」をご参照ください。
デフォルト値: |
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 ハッシュ パラメーターです。 |
クロスオリジン リソース共有 (CORS)
注釈 | 説明 |
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 | 許可されるクロスドメイン リクエストのメソッド。 次のメソッドから 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 を有効にするかどうかを指定します。詳細については、「高度な ALB Ingress 構成」をご参照ください。
デフォルト値: |
その他
注釈 | 説明 |
alb.ingress.kubernetes.io/backend-keepalive | TCP 持続的接続を有効にするかどうかを指定します。詳細については、「TCP 持続的接続を設定する」をご参照ください。 デフォルト値: |
alb.ingress.kubernetes.io/traffic-limit-qps | QPS 速度制限。 有効な値: 1 ~ 1,000,000。 |
alb.ingress.kubernetes.io/use-regex | パスフィールドで正規表現を使用できるかどうかを指定します。この注釈は、パスの種類がプレフィックスの場合にのみ有効です。 デフォルト値: |
AlbConfig フィールド
AlbConfig は、ALB インスタンスとそのリスナーを記述するために使用されるカスタムリソース定義 (CRD) です。次のサンプルコードは、すべてのフィールドを含む AlbConfig の例を示しています。
詳細については、「App Service プランの概要」をご参照ください。
Albconfig
フィールド | タイプ | 説明 |
apiVersion | 固定値 | オブジェクトの API バージョン。 値を |
kind | 固定値 | Kind は、オブジェクトに対応する REST リソースを示します。 値を |
metadata | オブジェクトのメタデータ。 詳細については、「メタデータ」をご参照ください。 | |
spec | ALB インスタンスとそのリスナーの属性を記述するために使用されるパラメーターのリスト。 | |
status | ALB インスタンスの状態は、調整後に |
AlbConfigSpec
フィールド | タイプ | 説明 |
config | ALB インスタンスの属性。 | |
listeners | ALB インスタンスのリスナーの属性。 |
LoadBalancerSpec
フィールド | タイプ | 説明 |
id | string | ALB インスタンスの ID です。インスタンス ID を指定すると、ALB インスタンスを再利用できます。このフィールドを空のままにすると、ALB Ingress コントローラーが ALB インスタンスを作成します。 ALB インスタンスを作成または再利用する方法の詳細については、「AlbConfig を作成する」をご参照ください。 デフォルト値: |
name | string | ALB インスタンスの名前です。 デフォルト値: |
addressAllocatedMode | enum | ALB インスタンスの IP モードです。
デフォルト値: |
addressType | enum | ALB インスタンスの IPv4 CIDR ブロックのネットワークタイプです。
デフォルト値: |
ipv6AddressType | enum | ALB インスタンスの IPv6 CIDR ブロックのネットワークタイプです。ネットワークタイプは、ALB インスタンスの IPv4 CIDR ブロックのネットワークタイプとは異なる場合があります。
デフォルト値: |
addressIpVersion | enum | ALB インスタンスがデュアルスタックをサポートするかどうかを指定します。
デフォルト値: |
resourceGroupId | string | ALB インスタンスが属するリソースグループの ID です。 デフォルト値: |
edition | enum | ALB インスタンスのエディションです。再利用モードでは、このパラメーターを変更できません。
デフォルト値: |
deletionProtectionEnabled | bool | 予約フィールドです。このフィールドは変更しないでください。 |
forceOverride | bool | 再利用モードで ALB インスタンスの属性を強制的に上書きするかどうかを指定します。
デフォルト値: |
listenerForceOverride | bool | 再利用モードでリスナーの属性を強制的に上書きするかどうかを指定します。
デフォルト値: |
zoneMappings | ゾーンと Elastic IP アドレス (EIP) の構成です。 | |
accessLogConfig | ログ収集の構成です。 | |
billingConfig | 課金方法です。 | |
modificationProtectionConfig | 構成保護設定です。 | |
tags | ALB インスタンスのラベルです。 | |
securityGroupIds | string[] | ALB インスタンスのセキュリティグループ IDです。 |
ZoneMapping
フィールド | タイプ | 説明 |
vSwitchId | string | vSwitch ID。このフィールドは必須です。 デフォルト値: |
zoneId | string | vSwitch のゾーン。デフォルト値を使用します。 デフォルト値: |
allocationId | string | EIP の ID。構成の詳細については、「AlbConfigs を使用して ALB インスタンスを構成する」をご参照ください。 デフォルト値: |
eipType | string | 予約フィールドです。このフィールドは変更しないでください。 |
AccessLogConfig
フィールド | タイプ | 説明 |
logProject | 文字列 | Simple Log Service プロジェクトの名前です。 デフォルト値: |
logStore | 文字列 | Simple Log Service Logstore の名前です。 デフォルト値: |
BillingConfig
フィールド | タイプ | 説明 |
internetBandwidth | int | 予約フィールドです。このフィールドは変更しないでください。 |
internetChargeType | string | 予約フィールドです。このフィールドは変更しないでください。 |
payType | enum | 予約フィールドです。このフィールドは変更しないでください。 |
bandWidthPackageId | string | 関連付けられているインターネット共有帯域幅インスタンスの ID です。インターネット共有帯域幅インスタンスの関連付けを解除することはできません。構成の詳細については、「EIP 帯域幅プランの構成」をご参照ください。 デフォルト値: |
変更保護設定
フィールド | タイプ | 説明 |
reason | 文字列 | 予約フィールド。 |
status | 文字列 | 予約フィールド。 |
タグ
フィールド | タイプ | 説明 |
key | string | ラベルのキー。 デフォルト値: |
value | string | ラベルの値。 デフォルト値: |
リスナー仕様
フィールド | タイプ | 説明 |
gzipEnabled | bool | データ圧縮を有効にするかどうかを指定します。詳細については、「データ圧縮の構成」をご参照ください。
デフォルト値: |
http2Enabled | bool | HTTP/2 を有効にするかどうかを指定します。
デフォルト値: |
port | int | リスニング ポート。このフィールドは必須です。 デフォルト値: |
protocol | enum | リスニング プロトコル。このフィールドは必須です。
|
securityPolicyId | string | TLS セキュリティ ポリシーの ID。 デフォルト値: |
idleTimeout | int | アイドル状態の接続のタイムアウト期間 (秒単位)。 デフォルト値: 説明 値 0 は、デフォルト値が使用されることを示します。 |
loadBalancerId | string | 予約フィールド。このフィールドは変更しないでください。 |
description | string | リスナーの名前。 デフォルトでは、 |
caEnabled | bool | 相互認証を有効にするかどうかを指定します。
デフォルト値: |
requestTimeout | int | リクエストのタイムアウト期間 (秒単位)。 デフォルト値: |
quicConfig | QUICK リスナー構成。 | |
defaultActions | Action[] | 予約フィールド。このフィールドは変更しないでください。 |
caCertificates | リスナーのルート CA 証明書。 | |
certificates | リスナーのサーバー証明書。 | |
xForwardedForConfig | XForward ヘッダーの構成。 | |
logConfig | リスナー ログ構成。 | |
aclConfig | アクセス制御の構成。 |
QuicConfig
フィールド | タイプ | 説明 |
quicUpgradeEnabled | bool | QUIC アップグレードを有効にするかどうかを指定します。 QUIC リスナーと HTTPS リスナーの両方を使用するシナリオでは、quicUpgradeEnabled フィールドを設定して、QUIC リスナーを HTTPS リスナーに関連付けるか、QUIC リスナーを HTTPS リスナーから関連付け解除します。 詳細については、「QUIC リスナーを使用して HTTP/3 プロトコルをサポートする」をご参照ください。
デフォルト値: |
quicListenerId | string | QUIC リスナーに関連付けられた HTTPS リスナー。 デフォルト値: |
証明書
フィールド | タイプ | 説明 |
IsDefault | bool | 証明書がデフォルト証明書かどうかを指定します。詳細については、「暗号化通信用の HTTPS 証明書を設定する」をご参照ください。
デフォルト値: 重要 指定できるデフォルト証明書は 1 つだけです。 |
CertificateId | string | 証明書の ID です。 デフォルト値: |
XForwardedForConfig
フィールド | タイプ | 説明 |
XForwardedForClientCertSubjectDNEnabled | bool | クライアント証明書の所有者に関する情報を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForProtoEnabled | bool | ALB インスタンスのリスニングプロトコルに関する情報を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertIssuerDNEnabled | bool | クライアント証明書の発行者に関する情報を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForSLBIdEnabled | bool | ALB インスタンス ID を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForClientSrcPortEnabled | bool | クライアントが使用しているポートに関する情報を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForClientCertFingerprintEnabled | bool | クライアント証明書のフィンガープリントに関する情報を伝えるために、ALB インスタンスによって配信される HTTP リクエストに
デフォルト値: |
XForwardedForEnabled | bool | クライアント IP アドレスを伝えるために、ALB インスタンスによって配信される HTTP リクエストに |
XForwardedForSLBPortEnabled | bool | ALB インスタンスのリスニングポートに関する情報を伝えるために、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 | ネットワーク ACL ルール。 デフォルト値: 重要
|
aclIds | string | 既存のネットワーク ACL の ID のリスト。 デフォルト値: |
LogConfig
フィールド | タイプ | 説明 |
accessLogRecordCustomizedHeadersEnabled | bool | ALB インスタンスのアクセスログにカスタムヘッダーを記録するかどうかを指定します。
デフォルト値: |
accessLogTracingConfig | トレース分析の設定です。詳細については、「AlbConfigs を使用して Xtrace ベースのトレース分析を有効にする」をご参照ください。 |
AccessLogTracingConfig
フィールド | タイプ | 説明 |
tracingEnabled | bool | トレース分析を有効にするかどうかを指定します。
デフォルト値: |
tracingSample | int | トレース分析のサンプリングレート。単位: 有効な値: 1 ~ 10000。 |
tracingType | enum | トレース分析のサンプリングアルゴリズム。
|
AlbConfigStatus
AlbConfigStatus
、LoadBalancerStatus
、ListenerStatus
、および AppliedCertificate
フィールドは、ALB Ingress によって状態を記録するために使用される予約フィールドです。これらのフィールドは変更しないでください。
フィールド | 出力 | 説明 |
loadBalancer | 予約フィールドです。このフィールドは変更しないでください。 ALB インスタンスのステータスです。 |
LoadBalancerStatus
フィールド | 出力 | 説明 |
dnsname | 文字列 | 予約フィールドです。このフィールドは変更しないでください。 ALB インスタンスの DNS アドレス。 |
id | 文字列 | 予約フィールドです。このフィールドは変更しないでください。 ALB インスタンスの ID。 |
listeners | 予約フィールドです。このフィールドは変更しないでください。 ALB インスタンスのリスナー属性。 |
リスナーの状態
フィールド | 出力 | 説明 |
portAndProtocol | string | 予約フィールドです。このフィールドは変更しないでください。 リスナーで使用されるポートとプロトコル。 |
certificates | 予約フィールドです。このフィールドは変更しないでください。 リスナーに関連付けられている証明書。 |
AppliedCertificate
フィールド | 出力 | 説明 |
certificateId | string | 予約フィールドです。このフィールドは変更しないでください。 証明書の ID です。 |
isDefault | bool | 予約フィールドです。このフィールドは変更しないでください。 証明書がデフォルト証明書かどうかを指定します。 |
参照資料
AlbConfig のパラメーターの詳細については、「AlbConfig を使用して ALB インスタンスを構成する」をご参照ください。
ALB Ingress アノテーションの使用方法の詳細については、「ALB Ingress の高度な構成」をご参照ください。