Oktatóanyag: Virtuálisgép-méretezési csoportok automatikus méretezése az Azure-ban az Ansible használatával
Fontos
Az Ansible 2.7 -et (vagy újabb verziót) a jelen cikkben szereplő minta forgatókönyvek futtatásához kell futtatni.
Az Azure-beli virtuálisgép-méretezési csoportok egy Olyan Azure-szolgáltatás, amellyel azonos, elosztott terhelésű virtuális gépek csoportját konfigurálhatja. A skálázási csoportoknak nincs további költsége, és virtuális gépekből vannak felépítve. Csak a mögöttes számítási erőforrásokért kell fizetnie, például a virtuálisgép-példányokért, a terheléselosztókért vagy a felügyelt lemeztárolókért. A méretezési csoportok biztosítják az alkalmazások futtatásához és méretezéséhez szükséges felügyeleti és automatizálási rétegeket. Ehelyett manuálisan is létrehozhat és kezelhet egyéni virtuális gépeket. A méretezési csoportok használatának azonban két fő előnye van. Az Azure-ba vannak beépítve, és automatikusan skálázzák a virtuális gépeket az alkalmazás igényeinek megfelelően.
A virtuálisgép-példányok számának automatikus módosításának funkcióját automatikus skálázásnak nevezzük. Az automatikus skálázás előnye, hogy csökkenti a felügyeleti többletterhelést az alkalmazás teljesítményének monitorozásához és optimalizálásához. Az automatikus skálázás igény szerint vagy meghatározott ütemezés szerint konfigurálható. Az Ansible használatával megadhatja azokat az automatikus skálázási szabályokat, amelyek meghatározzák a pozitív ügyfélélmény elfogadható teljesítményét.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Automatikus skálázási profil meghatározása
- Automatikus skálázás ismétlődő ütemezés alapján
- Automatikus skálázás az alkalmazás teljesítménye alapján
- Automatikus méretezési beállítások adatainak lekérése
- Automatikus méretezési beállítás letiltása
Előfeltételek
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
Az Ansible telepítése: Válasszon az alábbi lehetőségek közül:
- Az Ansible telepítése és konfigurálása Linux rendszerű virtuális gépen
- Konfigurálja az Azure Cloud Shellt , és – ha nincs hozzáférése Linux rendszerű virtuális géphez – hozzon létre egy virtuális gépet az Ansible használatával.
- Virtuálisgép-méretezési csoport: Ha még nem rendelkezik méretezési csoporttal, konfigurálhat egy méretezési csoportot az Ansible használatával.
Automatikus skálázás ütemezés alapján
Az automatikus skálázás méretezési csoportban történő engedélyezéséhez először határozza meg az automatikus skálázási profilt. Ez a profil határozza meg a méretezési csoport alapértelmezett, minimális és maximális kapacitását. Ezek a korlátok lehetővé teszik a költségek szabályozását azáltal, hogy nem hoz létre folyamatosan virtuálisgép-példányokat, és kiegyensúlyozza az elfogadható teljesítményt a méretarányos eseményben maradó példányok minimális számával.
Az Ansible lehetővé teszi a méretezési csoportok skálázását egy adott dátum vagy ismétlődő ütemezés szerint.
Az ebben a szakaszban található forgatókönyvkód minden hétfőn 10:00-kor háromra növeli a virtuálisgép-példányok számát.
Mentse a következő forgatókönyvet vmss-auto-scale.yml
néven:
---
- hosts: localhost
vars:
resource_group: myResourceGroup
vmss_name: myScaleSet
name: autoscalesetting
tasks:
- name: Create autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
target:
namespace: "Microsoft.Compute"
types: "virtualMachineScaleSets"
name: "{{ vmss_name }}"
enabled: true
profiles:
- count: '3'
min_count: '3'
max_count: '3'
name: Auto created scale condition
recurrence_timezone: Pacific Standard Time
recurrence_frequency: Week
recurrence_days:
- Monday
recurrence_mins:
- '0'
recurrence_hours:
- '10'
A forgatókönyv futtatása ansible-playbook használatával
ansible-playbook vmss-auto-scale.yml
Automatikus skálázás teljesítményadatok alapján
Ha az alkalmazásigény nő, a méretezési csoportok virtuálisgép-példányainak terhelése nő. Ha a megnövekedett terhelés állandó, nem csak pillanatnyi igény, akkor megadhatja, hogy az automatikus skálázási szabály növelje meg a virtuálisgép-példányok számát a méretezési csoportban. Ezen virtuálisgép-példányok létrehozását és az alkalmazások telepítését követően a méretezési csoport megkezdi a forgalom elosztását közöttük a terheléselosztón keresztül. Az Ansible segítségével szabályozhatja a monitorozni kívánt metrikákat, például a processzorhasználatot, a lemezhasználatot és az alkalmazásbetöltési időt. Vertikális felskálázást és vertikális felskálázást végezhet méretezési csoportokban a teljesítménymetrika küszöbértékei, az ismétlődő ütemezés vagy egy adott dátum alapján.
Az ebben a szakaszban található forgatókönyv-kód minden hétfőn 18:00-kor ellenőrzi az előző 10 perc processzorterhelését.
A cpu százalékos metrikái alapján a forgatókönyv az alábbi műveletek egyikét hajtja végre:
- A virtuálisgép-példányok számát négyre skálázza
- A virtuálisgép-példányok számának skálázása egyre
Mentse a következő forgatókönyvet vmss-auto-scale-metrics.yml
néven:
---
- hosts: localhost
vars:
resource_group: myResourceGroup
vmss_name: myScaleSet
name: autoscalesetting
tasks:
- name: Get facts of the resource group
azure_rm_resourcegroup_facts:
name: "{{ resource_group }}"
register: rg
- name: Get scale set resource uri
set_fact:
vmss_id: "{{ rg.ansible_facts.azure_resourcegroups[0].id }}/providers/Microsoft.Compute/virtualMachineScaleSets/{{ vmss_name }}"
- name: Create autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
target: "{{ vmss_id }}"
enabled: true
profiles:
- count: '1'
max_count: '1'
min_count: '1'
name: 'This scale condition is executed when none of the other scale condition(s) match'
recurrence_days:
- Monday
recurrence_frequency: Week
recurrence_hours:
- 18
recurrence_mins:
- 0
recurrence_timezone: Pacific Standard Time
- count: '1'
min_count: '1'
max_count: '4'
name: Auto created scale condition
recurrence_days:
- Monday
recurrence_frequency: Week
recurrence_hours:
- 18
recurrence_mins:
- 0
recurrence_timezone: Pacific Standard Time
rules:
- cooldown: 5
direction: Increase
metric_name: Percentage CPU
metric_resource_uri: "{{ vmss_id }}"
operator: GreaterThan
statistic: Average
threshold: 70
time_aggregation: Average
time_grain: 1
time_window: 10
type: ChangeCount
value: '1'
- cooldown: 5
direction: Decrease
metric_name: Percentage CPU
metric_resource_uri: "{{ vmss_id }}"
operator: LessThan
statistic: Average
threshold: 30
time_aggregation: Average
time_grain: 1
time_window: 10
type: ChangeCount
value: '1'
A forgatókönyv futtatása ansible-playbook használatával
ansible-playbook vmss-auto-scale-metrics.yml
Automatikus méretezési beállítások adatainak lekérése
Az ebben a szakaszban található forgatókönyv-kód a azure_rm_autoscale_facts
modul használatával kéri le az automatikus méretezési beállítás részleteit.
Mentse a következő forgatókönyvet vmss-auto-scale-get-settings.yml
néven:
- hosts: localhost
vars:
resource_group: myResourceGroup
name: autoscalesetting
tasks:
- name: Retrieve autoscale settings information
azure_rm_autoscale_facts:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
register: autoscale_query
- debug:
var: autoscale_query.autoscales[0]
A forgatókönyv futtatása ansible-playbook használatával
ansible-playbook vmss-auto-scale-get-settings.yml
Automatikus méretezési beállítások letiltása
Az automatikus skálázási beállítások kétféleképpen tilthatóak le. Az egyik módszer, ha a kulcsot a enabled
következőre true
módosítja false
: . A második módszer a beállítás törlése.
Az ebben a szakaszban található forgatókönyvkód törli az automatikus skálázási beállítást.
Mentse a következő forgatókönyvet vmss-auto-scale-delete-setting.yml
néven:
- hosts: localhost
vars:
resource_group: myResourceGroup
name: autoscalesetting
tasks:
- name: Delete autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
state: absent
A forgatókönyv futtatása ansible-playbook használatával
vmss-auto-scale-delete-setting.yml