Sdílet prostřednictvím


Použití služby Azure Container Storage Ve verzi Preview s dočasným SSD

Azure Container Storage je cloudová služba pro správu svazků, nasazení a orchestraci sestavená nativně pro kontejnery. V tomto článku se dozvíte, jak nakonfigurovat Službu Azure Container Storage tak, aby používala dočasný disk s dočasným SSD jako back-endovým úložištěm pro vaše úlohy Kubernetes. Na konci budete mít pod, který jako úložiště používá dočasné SSD.

Co je dočasný disk?

Pokud vaše aplikace potřebuje latenci úložiště v milisekundách a nevyžaduje stálost dat, můžete pomocí dočasného disku se službou Azure Container Storage splnit vaše požadavky na výkon. Dočasné znamená, že disky se nasadí na místní virtuální počítač, který je hostitelem clusteru AKS, a neuloží se do služby Úložiště Azure. Pokud virtuální počítač zastavíte nebo uvolníte, dojde ke ztrátě dat na těchto discích.

K dispozici jsou dva typy dočasného disku: NVMe a dočasné SSD. NVMe je navržený pro vysokorychlostní přenos dat mezi úložištěm a procesorem. Zvolte NVMe, pokud vaše aplikace vyžaduje vyšší IOPS a propustnost než dočasné SSD, nebo pokud vaše úloha vyžaduje replikaci. Replikace se v současné době nepodporuje pro dočasné SSD.

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • Tento článek vyžaduje nejnovější verzi Azure CLI (2.35.0 nebo novější). Přečtěte si , jak nainstalovat Azure CLI. Pokud používáte prostředí Bash v Azure Cloud Shellu, je už nainstalovaná nejnovější verze. Pokud chcete příkazy spouštět místně místo v Azure Cloud Shellu, nezapomeňte je spustit s oprávněními správce. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.

  • Budete potřebovat klienta kubectlpříkazového řádku Kubernetes. Je už nainstalovaný, pokud používáte Azure Cloud Shell, nebo ho můžete nainstalovat místně spuštěním az aks install-cli příkazu.

  • Pokud jste ještě službu Azure Container Storage nenainstalovali, postupujte podle pokynů v tématu Použití služby Azure Container Storage se službou Azure Kubernetes Service.

  • Zkontrolujte, jestli je vaše cílová oblast podporovaná v oblastech Azure Container Storage.

Zvolte typ virtuálního počítače, který podporuje dočasné SSD.

Dočasný disk je k dispozici pouze v určitých typech virtuálních počítačů. Pokud máte v úmyslu používat dočasný disk s dočasným SSD, vyžaduje se virtuální počítač Ev3 a Esv3-series.

Spuštěním následujícího příkazu získáte typ virtuálního počítače, který se používá s fondem uzlů.

az aks nodepool list --resource-group <resource group> --cluster-name <cluster name> --query "[].{PoolName:name, VmSize:vmSize}" -o table

Následuje příklad výstupu.

PoolName    VmSize
----------  ---------------
nodepool1   standard_l8s_v3

Doporučujeme, aby každý virtuální počítač měl minimálně čtyři virtuální procesory (vCPU) a každý fond uzlů má aspoň tři uzly.

Vytvoření a připojení obecných dočasných svazků

Pomocí těchto kroků vytvořte a připojte obecný dočasný svazek.

1. Vytvoření fondu úložiště

Nejprve vytvořte fond úložiště, což je logické seskupení úložiště pro cluster Kubernetes tím, že ho definujete v souboru manifestu YAML.

Pokud jste povolili službu Azure Container Storage pomocí az aks create příkazů nebo az aks update příkazů, možná už máte fond úložiště. Slouží kubectl get sp -n acstor k získání seznamu fondů úložiště. Pokud už máte fond úložiště, který chcete použít, můžete tuto část přeskočit a přejít k zobrazení dostupných tříd úložiště.

Pomocí následujícího postupu vytvořte fond úložiště pomocí dočasného ssd.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-storagepool.yaml.

  2. Vložte následující kód a soubor uložte. Hodnota názvu fondu úložiště může být libovolná.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: ephemeraldisk-temp
      namespace: acstor
    spec:
      poolType:
        ephemeralDisk:
          diskType: temp
    
  3. Pomocí souboru manifestu YAML vytvořte fond úložiště.

    kubectl apply -f acstor-storagepool.yaml 
    

    Po dokončení vytváření fondu úložiště se zobrazí zpráva typu:

    storagepool.containerstorage.azure.com/ephemeraldisk-temp created
    

    Můžete také spustit tento příkaz a zkontrolovat stav fondu úložiště. Nahraďte <storage-pool-name> hodnotou názvu fondu úložiště. V tomto příkladu by hodnota byla dočasného disku-temp.

    kubectl describe sp <storage-pool-name> -n acstor
    

Po vytvoření fondu úložiště vytvoří Služba Azure Container Storage za vás třídu úložiště pomocí konvence acstor-<storage-pool-name>vytváření názvů .

2. Zobrazení dostupných tříd úložiště

Jakmile je fond úložiště připravený k použití, musíte vybrat třídu úložiště, která definuje, jak se úložiště dynamicky vytváří při vytváření trvalých deklarací identity svazků a nasazování trvalých svazků.

Spuštěním zobrazte kubectl get sc dostupné třídy úložiště. Měla by se zobrazit třída úložiště s názvem acstor-<storage-pool-name>.

$ kubectl get sc | grep "^acstor-"
acstor-azuredisk-internal   disk.csi.azure.com               Retain          WaitForFirstConsumer   true                   65m
acstor-ephemeraldisk-temp        containerstorage.csi.azure.com   Delete          WaitForFirstConsumer   true                   2m27s

Důležité

Nepoužívejte třídu úložiště, která je označená jako interní. Je to interní třída úložiště, která je potřebná pro fungování služby Azure Container Storage.

3. Nasazení podu s obecným dočasným svazkem

Vytvořte pod pomocí Fio (flexibilní V/V Tester) pro srovnávací testy a simulaci úloh, který používá obecný dočasný svazek.

  1. Pomocí oblíbeného textového editoru vytvořte soubor manifestu YAML, například code acstor-pod.yaml.

  2. Vložte následující kód a soubor uložte.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              metadata:
                labels:
                  type: my-ephemeral-volume
              spec:
                accessModes: [ "ReadWriteOnce" ]
                storageClassName: acstor-ephemeraldisk-temp # replace with the name of your storage class if different
                resources:
                  requests:
                    storage: 1Gi
    

    Když změníte velikost úložiště svazků, ujistěte se, že je velikost menší než dostupná kapacita dočasného disku s jedním uzlem. Viz Kontrola dočasné kapacity disku uzlu.

  3. Nasaďte pod pomocí souboru manifestu YAML.

    kubectl apply -f acstor-pod.yaml
    

    Zobrazený výstup by měl vypadat přibližně takto:

    pod/fiopod created
    
  4. Zkontrolujte, jestli je pod spuštěný a že se k podu úspěšně vázala dočasné deklarace svazku:

    kubectl describe pod fiopod
    kubectl describe pvc fiopod-ephemeralvolume
    
  5. Zkontrolujte testování fio a podívejte se na aktuální stav:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Teď jste nasadili pod, který jako úložiště používá dočasné SSD, a můžete ho použít pro úlohy Kubernetes.

Správa svazků a fondů úložiště

V této části se dozvíte, jak zkontrolovat dostupnou kapacitu dočasného disku pro jeden uzel a jak rozbalit nebo odstranit fond úložiště.

Kontrola dočasné kapacity disku uzlu

Dočasný svazek je přidělen na jednom uzlu. Při konfiguraci velikosti dočasných svazků by velikost měla být menší než dostupná kapacita dočasného disku s jedním uzlem.

Spuštěním následujícího příkazu zkontrolujte dostupnou kapacitu dočasného disku pro jeden uzel.

$ kubectl get diskpool -n acstor
NAME                                CAPACITY      AVAILABLE     USED        RESERVED    READY   AGE
ephemeraldisk-temp-diskpool-jaxwb   75660001280   75031990272   628011008   560902144   True    21h
ephemeraldisk-temp-diskpool-wzixx   75660001280   75031990272   628011008   560902144   True    21h
ephemeraldisk-temp-diskpool-xbtlj   75660001280   75031990272   628011008   560902144   True    21h

V tomto příkladu je dostupná kapacita dočasného disku pro jeden uzel 75031990272 bajty nebo 69 GiB.

Rozšíření fondu úložiště

Fondy úložiště zálohované dočasným SSD můžete rozšířit, abyste mohli rychle a bez výpadků vertikálně navýšit kapacitu. Zmenšení fondů úložiště se v současné době nepodporuje.

Vzhledem k tomu, že fond úložiště zálohovaný dočasným diskem používá prostředky místního úložiště na uzlech clusteru AKS, rozšíření fondu úložiště vyžaduje přidání dalšího uzlu do clusteru. Podle těchto pokynů rozbalte fond úložiště.

  1. Spuštěním následujícího příkazu přidejte uzel do clusteru AKS. Nahraďte <cluster-name>, <nodepool name> a <resource-group-name> svými vlastními hodnotami. Pokud chcete získat název fondu uzlů, spusťte kubectl get nodespříkaz .

    az aks nodepool add --cluster-name <cluster name> --name <nodepool name> --resource-group <resource group> --node-vm-size Standard_L8s_v3 --node-count 1 --labels acstor.azure.com/io-engine=acstor
    
  2. Spusťte kubectl get nodes a uvidíte, že se uzel přidal do clusteru.

  3. Spusťte kubectl get sp -A a měli byste vidět, že se kapacita fondu úložiště zvýšila.

Odstranění fondu úložiště

Pokud chcete odstranit fond úložiště, spusťte následující příkaz. Nahraďte <storage-pool-name> názvem fondu úložiště.

kubectl delete sp -n acstor <storage-pool-name>

Viz také