U kunt Avi Load Balancer-profielen maken, zoals applicatie-, persistentie- en netwerkprofielen. U kunt ook een enkel persistentieprofiel maken en dit opgeven zodat een ander team in uw organisatie dit later kan gebruiken.
Deze voorbeeldsjablonen omvatten verschillende scenario's voor het maken van Avi Load Balancer-profielen. In het eerste voorbeeld ziet u hoe u een sjabloon maakt die een applicatieprofiel, een persistentieprofiel en een netwerkprofiel bevat. Het tweede voorbeeld toont een sjabloon die verschillende typen persistentieprofielen bevat die beschikbaar zijn met Avi Load Balancer samen met een toewijzingshelper voor cloudzones. De overige voorbeelden leggen de nadruk op enkele persistentieprofielen.
In de sjabloonvoorbeelden worden de minimale vereisten voor het maken van Avi Load Balancer-profielen behandeld. Wanneer u sjablonen maakt die relevant zijn voor uw organisatie, moet u er rekening mee houden dat andere eigenschappen vereist kunnen zijn.
Zie de sectie Load Balancing in de handleiding Configuratie van VMware NSX Advanced Load Balancer voor meer informatie over profielen.
Applicatie-, persistentie- en netwerkprofielen
Deze Avi Load Balancer-voorbeeldsjabloon gebruikt een applicatieprofiel, een netwerkprofiel en een persistentieprofiel.
Het applicatieprofiel bepaalt het gedrag van de virtuele service. Het netwerkprofiel bepaalt het type en de instelling van het netwerkprotocol. Zowel het applicatieprofiel als het netwerkprofiel zijn gekoppeld aan virtuele services. Het persistentieprofiel beheert de instellingen waardoor een client gedurende een bepaalde tijd verbonden blijft met dezelfde server. Het is gekoppeld aan een Avi Load Balancer-pool.
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
Persistentieprofielen en toewijzingshelper
Dit voorbeeldsjabloon bevat alle persistentieprofieltypen samen met een toewijzingshelper.
De toewijzingshelper voor cloudzone helpt bij het leiden van de implementatieaanvraag naar de gewenste VMware Avi Load Balancer-controller op basis van tags in het cloudaccount.
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}
Individuele persistentieprofielen
Zie Persistentie in de handleiding Configuratie van VMware NSX Advanced Load Balancer voor meer informatie over persistentieprofielen.
| Profiel | Voorbeeldsjabloon |
|---|---|
| Persistentieprofiel voor HTTP-cookies Deze voorbeeldsjabloon toont hoe u een persistentieprofiel voor HTTP-cookies kunt maken in een Avi Load Balancer-cloudaccount. |
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}
|
| Persistentieprofiel voor appcookies Deze voorbeeldsjabloon toont hoe u een persistentieprofiel voor applicatiecookies kunt maken in een Avi Load Balancer-cloudaccount. |
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}
|
| Persistentieprofiel voor aangepaste HTTP-headers Deze voorbeeldsjabloon toont hoe u een aangepast persistentieprofiel voor HTTP-headers kunt maken in een Avi Load Balancer-cloudaccount. |
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}
|
| Persistentieprofiel voor client-IP's Deze voorbeeldsjabloon toont hoe u een persistentieprofiel voor client-IP's in een Avi Load Balancer-cloudaccount kunt maken. |
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-persistentieprofiel Deze voorbeeldsjabloon toont hoe u een TLS-persistentieprofiel in een Avi Load Balancer-cloudaccount kunt maken. |
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
|