アプリケーション、パーシステンス、ネットワーク プロファイルなどの Avi Load Balancer プロファイルを作成できます。たとえば、単一のパーシステンス プロファイルを作成し、組織内の別のチームが後から使用できるように指定することもできます。
ここで示すサンプル テンプレートは、Avi Load Balancer プロファイルを作成するためのいくつかのシナリオに対応しています。最初の例は、アプリケーション プロファイル、パーシステンス プロファイル、およびネットワーク プロファイルを含むテンプレートを作成する方法を示しています。2 番目の例は、クラウド ゾーン割り当てヘルパーとともに Avi Load Balancerで使用可能なさまざまなタイプのパーシステンス プロファイルを含むテンプレートを示しています。残りの例では、単一のパーシステンス プロファイルに焦点を当てています。
テンプレートの例は、Avi Load Balancer プロファイルを作成するための最小要件を満たしています。組織に適したテンプレートを作成する際は、他のプロパティが必要になる場合があります。
プロファイルの詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「ロード バランシング」セクションを参照してください。
アプリケーション、パーシステンス、およびネットワーク プロファイル
このサンプルの Avi Load Balancer テンプレートでは、アプリケーション プロファイル、ネットワーク プロファイル、およびパーシステンス プロファイルを使用します。
アプリケーション プロファイルによって、仮想サービスの動作が決まります。ネットワーク プロファイルによって、ネットワーク プロトコルのタイプと設定が決まります。アプリケーション プロファイルとネットワーク プロファイルの両方が仮想サービスに関連付けられています。パーシステンス プロファイルは、クライアントが指定された期間同じサーバに接続し続けるようにする設定を制御します。このプロファイルは Avi Load Balancer プールに適用されます。
formatVersion: 1
inputs:
count:
type: integer
title: count
default: 2
resources:
Idem_AVILB_PROFILES_HEALTH_MONITOR_1:
type: Idem.AVILB.PROFILES.HEALTH_MONITOR
properties:
name: prof-monitor-${uuid()}
type: HEALTH_MONITOR_PING
account: Avi
tenant_ref: admin
cloud_ref: cloud01_vcenter-cmbu-w01-vc11
is_federated: false
monitor_port: 8000
send_interval: 8
receive_timeout: 4
successful_checks: 4
failed_checks: 4
Idem_AVILB_PROFILES_APPLICATION_PROFILE_1:
type: Idem.AVILB.PROFILES.APPLICATION_PROFILE
properties:
name: prof-application-${uuid()}
type: APPLICATION_PROFILE_TYPE_HTTP
account: Avi
http_profile:
connection_multiplexing_enabled: true
detect_ntlm_app: true
websockets_enabled: true
Idem_AVILB_PROFILES_NETWORK_PROFILE_1:
type: Idem.AVILB.PROFILES.NETWORK_PROFILE
properties:
name: prof-network-${uuid()}
account: Avi
profile:
type: PROTOCOL_TYPE_TCP_PROXY
tcp_proxy_profile:
automatic: true
Idem_AVILB_APPLICATIONS_VS_VIP_1:
type: Idem.AVILB.APPLICATIONS.VS_VIP
properties:
name: prof-vip-${uuid()}
account: Avi
tenant_ref: admin
cloud_ref: cloud01_vcenter-cmbu-w01-vc11
vip:
- auto_allocate_floating_ip: false
auto_allocate_ip: true
auto_allocate_ip_type: V4_ONLY
avi_allocated_fip: false
avi_allocated_vip: false
enabled: true
ipam_network_subnet:
network_ref: ${resource.Cloud_vSphere_Network_1.resourceName}
subnet:
ip_addr:
addr: 10.202.20.0
type: V4
mask: 22
Idem_AVILB_PROFILES_APPLICATION_PERSISTENCE_PROFILE_1:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
properties:
name: prof-persistence-${uuid()}
account: Avi
persistence_type: PERSISTENCE_TYPE_CLIENT_IP_ADDRESS
server_hm_down_recovery: HM_DOWN_PICK_NEW_SERVER
ip_persistence_profile:
ip_persistent_timeout: 5
Idem_AVILB_APPLICATIONS_POOL_1:
type: Idem.AVILB.APPLICATIONS.POOL
properties:
name: prof-pool-${uuid()}
account: Avi
tenant_ref: admin
cloud_ref: cloud01_vcenter-cmbu-w01-vc11
lb_algorithm: LB_ALGORITHM_ROUND_ROBIN
default_server_port: 8000
networks:
- network_ref: ${resource.Cloud_vSphere_Network_1.resourceName}
health_monitor_refs:
- ${resource.Idem_AVILB_PROFILES_HEALTH_MONITOR_1.name}
servers: ${map_to_object(resource.Cloud_vSphere_Machine_1[*].address, "ip", "addr")}
application_persistence_profile_ref: ${resource.Idem_AVILB_PROFILES_APPLICATION_PERSISTENCE_PROFILE_1.name}
Idem_AVILB_APPLICATIONS_VIRTUAL_SERVICE_1:
type: Idem.AVILB.APPLICATIONS.VIRTUAL_SERVICE
properties:
name: prof-vs-${uuid()}
account: Avi
tenant_ref: admin
cloud_ref: cloud01_vcenter-cmbu-w01-vc11
cloud_type: CLOUD_NONE
type: VS_TYPE_NORMAL
traffic_enabled: true
services:
- enable_ssl: false
port: 8000
pool_ref: ${resource.Idem_AVILB_APPLICATIONS_POOL_1.name}
vsvip_ref: ${resource.Idem_AVILB_APPLICATIONS_VS_VIP_1.name}
application_profile_ref: ${resource.Idem_AVILB_PROFILES_APPLICATION_PROFILE_1.name}
network_profile_ref: ${resource.Idem_AVILB_PROFILES_NETWORK_PROFILE_1.name}
Cloud_vSphere_Machine_1:
type: Cloud.vSphere.Machine
properties:
image: webserver
cpuCount: 2
totalMemoryMB: 4096
networks:
- network: ${resource.Cloud_vSphere_Network_1.id}
assignment: static
count: ${input.count}
Cloud_vSphere_Network_1:
type: Cloud.vSphere.Network
properties:
networkType: existing
パーシステンス プロファイルと割り当てヘルパー
このサンプル テンプレートには、すべてのパーシステンス プロファイル タイプが割り当てヘルパーとともに含まれています。
クラウド ゾーン割り当てヘルパーは、クラウド アカウントのタグに基づいて、展開申請を目的の VMware Avi Load Balancer コントローラに送るのを支援します。
formatVersion: 1
name: Create a ALB Persistence Profile
version: 1
inputs:
env:
type: string
title: Environment
description: Select Dev or Prod ALB environment
default: env:dev
oneOf:
- title: Dev ALB
const: env:dev
- title: Prod ALB
const: env:prod
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
persistenceType:
type: string
title: Persistence Type
description: Select a method used to persist clients to the same server for a duration of time or a session.
oneOf:
- title: App Cookie
const: PERSISTENCE_TYPE_APP_COOKIE
- title: Client IP Address
const: PERSISTENCE_TYPE_CLIENT_IP_ADDRESS
- title: Custom HTTP Header
const: PERSISTENCE_TYPE_CUSTOM_HTTP_HEADER
- title: GSLB Site
const: PERSISTENCE_TYPE_GSLB_SITE
- title: HTTP Cookie
const: PERSISTENCE_TYPE_HTTP_COOKIE
- title: TLS
const: PERSISTENCE_TYPE_TLS
server_hm_down_recovery:
type: string
title: Select New Server When Persistent Server Is Down ?
description: Specifies behavior when a persistent server has been marked down by a health monitor. Enum options - HM_DOWN_PICK_NEW_SERVER, HM_DOWN_ABORT_CONNECTION, HM_DOWN_CONTINUE_PERSISTENT_SERVER
default: HM_DOWN_PICK_NEW_SERVER
oneOf:
- title: Immediate
const: HM_DOWN_PICK_NEW_SERVER
- title: Never
const: HM_DOWN_CONTINUE_PERSISTENT_SERVER
timeout:
type: integer
title: Persistence Timeout
description: The length of time after a client's connections have closed before expiring the client's persistence to a server. Allowed values are 1-720. Unit is Min.
minimum: 1
maximum: 720
default: 20
ip_mask:
type: integer
title: IP Mask
description: Mask to be applied on client IP. This may be used to persist clients from a subnet to the same server. When set to 0, all requests are sent to the same server. Allowed values are 0-128.
minimum: 0
maximum: 128
default: 0
prst_hdr_name:
type: string
title: Custom Header / App Cookie Name
description: Header or App Cookie name for application cookie persistence or custom http header.
default: Set Header Name
always_send_cookie:
type: boolean
title: Always Send Cookie ?
description: If no persistence cookie was received from the client, always send it.
cookie_name:
type: string
title: Cookie Name
description: HTTP cookie name for cookie persistence.
default: Set HTTP Cookie Name
http_only:
type: boolean
title: HTTP Only
description: Sets the HttpOnly attribute in the cookie. Setting this helps to prevent the client side scripts from accessing this cookie, if supported by browser.
is_persistent_cookie:
type: boolean
title: Is Persistent Cookie
description: When True, the cookie used is a persistent cookie, i.e. the cookie shouldn't be used at the end of the timeout. By default, it is set to false, making the cookie a session cookie, which allows clients to use it even after the timeout, if the session is still open.
resources:
Allocations_CloudZone_1:
type: Allocations.CloudZone
metadata:
layoutPosition:
- 1
- 2
properties:
accountType: avilb
constraints:
- tag: ${input.env}
hdr_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 0
- 1
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_CUSTOM_HTTP_HEADER" ? 1 :0}
persistence_type: ${input.persistenceType}
server_hm_down_recovery: ${input.server_hm_down_recovery}
hdr_persistence_profile:
prst_hdr_name: ${input.prst_hdr_name}
tls_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 0
- 3
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_TLS" ? 1 :0}
persistence_type: ${input.persistenceType}
app_cookie_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 0
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_APP_COOKIE" ? 1 :0}
persistence_type: ${input.persistenceType}
server_hm_down_recovery: ${input.server_hm_down_recovery}
app_cookie_persistence_profile:
prst_hdr_name: ${input.prst_hdr_name}
timeout: ${input.timeout}
ip_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 1
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_CLIENT_IP_ADDRESS" ? 1 :0}
persistence_type: ${input.persistenceType}
server_hm_down_recovery: ${input.server_hm_down_recovery}
ip_persistence_profile:
ip_mask: ${input.ip_mask}
ip_persistent_timeout: ${input.timeout}
gslb_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 3
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_GSLB_SITE" ? 1 :0}
persistence_type: ${input.persistenceType}
server_hm_down_recovery: ${input.server_hm_down_recovery}
is_federated: true
http_cookie_persistence_profile:
cookie_name: ${input.cookie_name}
is_persistent_cookie: ${input.is_persistent_cookie}
timeout: ${input.timeout}
http_cookie_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 4
properties:
name: ${input.name}
account: ${resource.Allocations_CloudZone_1.selectedCloudAccount.name}
description: Managed by Aria Automation
count: ${input.persistenceType == "PERSISTENCE_TYPE_HTTP_COOKIE" ? 1 :0}
persistence_type: ${input.persistenceType}
server_hm_down_recovery: ${input.server_hm_down_recovery}
http_cookie_persistence_profile:
always_send_cookie: ${input.always_send_cookie}
cookie_name: ${input.cookie_name}
http_only: ${input.http_only}
is_persistent_cookie: ${input.is_persistent_cookie}
timeout: ${input.timeout}
個々のパーシステンス プロファイル
パーシステンス プロファイルの詳細については、『VMware NSX Advanced Load Balancer の構成』ガイドの「パーシステンス」を参照してください。
| プロファイル | サンプル テンプレート |
|---|---|
| [HTTP Cookie パーシステンス プロファイル] このサンプル テンプレートは、Avi Load Balancer クラウド アカウントで HTTP Cookie パーシステンス プロファイルを作成する方法を示しています。 |
formatVersion: 1
name: Persistence Profile - HTTP Cookie
version: 1
inputs:
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
server_hm_down_recovery:
type: string
title: Select New Server When Persistent Server Is Down ?
description: Specifies behavior when a persistent server has been marked down by a health monitor. Enum options - HM_DOWN_PICK_NEW_SERVER, HM_DOWN_ABORT_CONNECTION, HM_DOWN_CONTINUE_PERSISTENT_SERVER
default: HM_DOWN_PICK_NEW_SERVER
oneOf:
- title: Immediate
const: HM_DOWN_PICK_NEW_SERVER
- title: Never
const: HM_DOWN_CONTINUE_PERSISTENT_SERVER
timeout:
type: integer
title: Persistence Timeout
description: The length of time after a client's connections have closed before expiring the client's persistence to a server. Allowed values are 1-720. Unit is Min.
minimum: 1
maximum: 720
default: 20
always_send_cookie:
type: boolean
title: Always Send Cookie ?
description: If no persistence cookie was received from the client, always send it.
cookie_name:
type: string
title: Cookie Name
description: HTTP cookie name for cookie persistence.
http_only:
type: boolean
title: HTTP Only
description: Sets the HttpOnly attribute in the cookie. Setting this helps to prevent the client side scripts from accessing this cookie, if supported by browser.
is_persistent_cookie:
type: boolean
title: Is Persistent Cookie
description: When True, the cookie used is a persistent cookie, i.e. the cookie shouldn't be used at the end of the timeout. By default, it is set to false, making the cookie a session cookie, which allows clients to use it even after the timeout, if the session is still open.
resources:
http_cookie_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 1
properties:
name: ${input.name}
account: avi-account
description: Managed by Aria Automation
persistence_type: PERSISTENCE_TYPE_HTTP_COOKIE
server_hm_down_recovery: ${input.server_hm_down_recovery}
http_cookie_persistence_profile:
always_send_cookie: ${input.always_send_cookie}
cookie_name: ${input.cookie_name}
http_only: ${input.http_only}
is_persistent_cookie: ${input.is_persistent_cookie}
timeout: ${input.timeout}
|
| [アプリケーション Cookie パーシステンス プロファイル] このサンプル テンプレートは、Avi Load Balancer クラウド アカウントでアプリケーション Cookie パーシステンス プロファイルを作成する方法を示しています。 |
formatVersion: 1
name: Persistence Profile - App Cookie
version: 1
inputs:
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
server_hm_down_recovery:
type: string
title: Select New Server When Persistent Server Is Down ?
description: Specifies behavior when a persistent server has been marked down by a health monitor. Enum options - HM_DOWN_PICK_NEW_SERVER, HM_DOWN_ABORT_CONNECTION, HM_DOWN_CONTINUE_PERSISTENT_SERVER
default: HM_DOWN_PICK_NEW_SERVER
oneOf:
- title: Immediate
const: HM_DOWN_PICK_NEW_SERVER
- title: Never
const: HM_DOWN_CONTINUE_PERSISTENT_SERVER
timeout:
type: integer
title: Persistence Timeout
description: The length of time after a client's connections have closed before expiring the client's persistence to a server. Allowed values are 1-720. Unit is Min.
minimum: 1
maximum: 720
default: 20
prst_hdr_name:
type: string
title: App Cookie Name
description: App Cookie name for application cookie persistence or custom http header.
resources:
app_cookie_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 0
properties:
name: ${input.name}
account: avi-account
description: Managed by Aria Automation
persistence_type: PERSISTENCE_TYPE_APP_COOKIE
server_hm_down_recovery: ${input.server_hm_down_recovery}
app_cookie_persistence_profile:
prst_hdr_name: ${input.prst_hdr_name}
timeout: ${input.timeout}
|
| [HTTP カスタム ヘッダー パーシステンス プロファイル] このサンプル テンプレートは、Avi Load Balancer クラウド アカウントでカスタム HTTP ヘッダー パーシステンス プロファイルを作成する方法を示しています。 |
formatVersion: 1
name: Persistence Profile - Custom HTTP Header
version: 1
inputs:
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
server_hm_down_recovery:
type: string
title: Select New Server When Persistent Server Is Down ?
description: Specifies behavior when a persistent server has been marked down by a health monitor. Enum options - HM_DOWN_PICK_NEW_SERVER, HM_DOWN_ABORT_CONNECTION, HM_DOWN_CONTINUE_PERSISTENT_SERVER
default: HM_DOWN_PICK_NEW_SERVER
oneOf:
- title: Immediate
const: HM_DOWN_PICK_NEW_SERVER
- title: Never
const: HM_DOWN_CONTINUE_PERSISTENT_SERVER
prst_hdr_name:
type: string
title: Custom Header Name
description: Header name for application cookie persistence or custom http header.
resources:
hdr_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 0
- 1
properties:
name: ${input.name}
account: avi-account
description: Managed by Aria Automation
persistence_type: PERSISTENCE_TYPE_CUSTOM_HTTP_HEADER
server_hm_down_recovery: ${input.server_hm_down_recovery}
hdr_persistence_profile:
prst_hdr_name: ${input.prst_hdr_name}
|
| [クライアント IP パーシステンス プロファイル] このサンプル テンプレートは、Avi Load Balancer クラウド アカウントでクライアント IP パーシステンス プロファイルを作成する方法を示しています。 |
formatVersion: 1
name: Persistence Profile - Client IP
version: 1
inputs:
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
server_hm_down_recovery:
type: string
title: Select New Server When Persistent Server Is Down ?
description: Specifies behavior when a persistent server has been marked down by a health monitor. Enum options - HM_DOWN_PICK_NEW_SERVER, HM_DOWN_ABORT_CONNECTION, HM_DOWN_CONTINUE_PERSISTENT_SERVER
default: HM_DOWN_PICK_NEW_SERVER
oneOf:
- title: Immediate
const: HM_DOWN_PICK_NEW_SERVER
- title: Never
const: HM_DOWN_CONTINUE_PERSISTENT_SERVER
timeout:
type: integer
title: Persistence Timeout
description: The length of time after a client's connections have closed before expiring the client's persistence to a server. Allowed values are 1-720. Unit is Min.
minimum: 1
maximum: 720
default: 20
ip_mask:
type: integer
title: IP Mask
description: Mask to be applied on client IP. This may be used to persist clients from a subnet to the same server. When set to 0, all requests are sent to the same server. Allowed values are 0-128.
minimum: 0
maximum: 128
default: 0
resources:
ip_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 1
- 1
properties:
name: ${input.name}
account: avi-account
description: Managed by Aria Automation
persistence_type: PERSISTENCE_TYPE_CLIENT_IP_ADDRESS
server_hm_down_recovery: ${input.server_hm_down_recovery}
ip_persistence_profile:
ip_mask: ${input.ip_mask}
ip_persistent_timeout: ${input.timeout}
|
| [TLS パーシステンス プロファイル] このサンプル テンプレートは、Avi Load Balancer クラウド アカウントで TLS パーシステンス プロファイルを作成する方法を示しています。 |
formatVersion: 1
name: Persistence Profile - TLS
version: 1
inputs:
name:
type: string
title: Persistence Profile Name
description: A user-friendly name for the persistence profile
resources:
tls_persistence_profile:
type: Idem.AVILB.PROFILES.APPLICATION_PERSISTENCE_PROFILE
metadata:
layoutPosition:
- 0
- 1
properties:
name: ${input.name}
account: avi-account
description: Managed by Aria Automation
persistence_type: PERSISTENCE_TYPE_TLS
|