Cvičení – nasazení clusteru Azure Kubernetes Service pomocí Azure CNI

Dokončeno

Poznámka

Toto cvičení je volitelné. Pokud chcete absolvovat toto cvičení, budete muset před zahájením vytvořit předplatné Azure. Pokud nemáte účet Azure nebo ho v tuto chvíli nechcete vytvořit, můžete si přečíst pokyny, abyste porozuměli zobrazeným informacím.

V tomto cvičení nasadíte virtuální sítě, podsítě a identity a pak nasadíte cluster Azure Kubernetes Service (AKS) pomocí modulu plug-in Azure Container Networking Interface (CNI).

Seznámili jste se s IT oddělením vaší společnosti a zadali jste informace, které jste shromáždili o požadavcích aplikace, velikosti virtuálního počítače a velikosti sítě. Oddělení IT poskytlo některé rozsahy síťových adres, které můžete použít pro cluster.

Následující tabulka uvádí požadavky a IP adresy poskytované IT oddělením:

Položka Popis IP adresy
Podsíť AKS IP adresy pro uzly a pody v clusteru. Vyžaduje se 248 použitelných IP adres. 10.150.20.0/24
Podsíť služby Kubernetes IP adresy používané v clusteru pro služby Kubernetes. Nesmí být v konfliktu s jinými virtuálními sítěmi nebo místními sítěmi. 10.240.0.0/24
IP adresa služby DNS (Domain Name System) Musí být v podsíti služby Kubernetes, ale nemůže to být první dostupná IP adresa. 10.240.0.10
  • U podsítěAKS jste zjistili, že potřebujete 248 použitelných IP adres. Vaše IT oddělení přidělilo síti 10.150.20.0/24, která poskytuje 251 použitelných IP adres po zohlednění pěti adres, které si Azure v každé podsíti vyhrazuje.
  • podsíť služby Kubernetes je skupina IP adres, které se nepoužívají v jiných virtuálních sítích Azure a nejsou v konfliktu s rozsahy místních sítí. Tento rozsah adres se používá pouze v clusteru. Vaše IT oddělení uvedlo, že byste měli použít verzi 10.240.0.0/24.
  • IP adresa služby DNS je jedna IP adresa v rozsahu podsítě Kubernetes, ale nemůže být první IP adresou v tomto rozsahu. Rozhodli jste se použít jako IP adresu DNS 10.240.0.10.

Vytvoření virtuální sítě a podsítě

V tomto cvičení vytvoříte virtuální síť a podsíť. V reálném prostředí můžete mít ve svém IT oddělení tým zodpovědný za správu sítí a tyto prostředky za vás můžou vytvořit.

  1. Spusťte Azure Cloud Shell.

  2. Pokud ještě nejste přihlášení k Azure, přihlaste se ke svému účtu Azure pomocí příkazu az login.

    az login
    
  3. Zvolte oblast Azure, která je blízko vás, například eastus. Uložte hodnotu do proměnné prostředí, abyste ji mohli použít ve zbytku cvičení.

    AKSLocation=eastus
    
  4. Pomocí příkazu az group create vytvořte skupinu prostředků AKSLearnpro uložení prostředků v tomto cvičení.

    az group create --location $AKSLocation --name AKSLearn
    
  5. Pomocí příkazu az network vnet create vytvořte virtuální síť AKSVirtualNetwork.

    az network vnet create \
        --name AKSVirtualNetwork \
        --resource-group AKSLearn \
        --address-prefixes 10.150.0.0/16  \
        --location $AKSLocation
    
  6. Vytvořte podsíť, AKSSubnet , pomocí příkazu az network vnet subnet create a zadejte rozsah adres, který poskytuje ODDĚLENÍ IT.

    az network vnet subnet create \
        --resource-group AKSLearn \
        --vnet-name AKSVirtualNetwork \
        --name AKSSubnet \
        --address-prefixes 10.150.20.0/24
    

Vytvoření spravované identity Azure

Abyste mohli přistupovat k prostředkům v rámci předplatného Azure, musíte vytvořit spravovanou identitu Azure pro AKS. Následující dva příkazy vytvoří spravovanou identitu Azure a pak uloží její jedinečnou hodnotu ID do proměnné prostředí pro pozdější použití.

  1. Pomocí příkazu az identity create vytvořte spravovanou identitu Azure AKSIdentity.

    az identity create \
        --name AKSIdentity \
        --resource-group AKSLearn
    
  2. Získejte ID spravované identity pomocí příkazu az identity show a uložte ho do proměnné prostředí identityId, abyste ho mohli použít v pozdějších příkazech.

    identityId=$(az identity show \
        --name AKSIdentity \
        --resource-group AKSLearn \
        --query id \
        --output tsv)
    

Vytvoření clusteru AKS

  1. Získejte hodnotu ID prostředku podsítě pomocí příkazu az network vnet subnet list a uložte ji do proměnné prostředí, subnetId, abyste ji mohli použít v pozdějších příkazech.

    subnetId=$(az network vnet subnet list \
        --vnet-name AKSVirtualNetwork \
        --resource-group AKSLearn \
        --query "[?name=='AKSSubnet'].id" \
        --output tsv)
    
  2. Pomocí příkazu az aks create vytvořte cluster AKS AKSCluster.

    az aks create \
        --name AKSCluster \
        --resource-group AKSLearn \
        --location $AKSLocation \
        --network-plugin azure \
        --vnet-subnet-id $subnetId \
        --service-cidr 10.240.0.0/24 \
        --dns-service-ip 10.240.0.10 \
        --generate-ssh-keys \
        --enable-managed-identity \
        --assign-identity $identityId \
        --node-vm-size  Standard_F8s_v2 \
        --node-count 3
    

    Následující tabulka popisuje parametry použité v příkazu az aks create:

    Parametr Popis
    --name Název clusteru, který se vytváří.
    --resource-group Skupina prostředků, ve které se má cluster vytvořit.
    --location Oblast Azure, ve které se má cluster vytvořit.
    --network-plugin Určuje, který síťový modul plug-in se má použít.
    --vnet-subnet-id Určuje identifikátor prostředku podsítě, která se má použít.
    --service-cidr Určuje rozsah adres služby Kubernetes, který se má použít.
    --dns-service-ip Určuje IP adresu DNS, která se má použít.
    --generate-ssh-keys Vytvoří sadu klíčů SSH, které slouží k zabezpečení uzlů.
    --enable-managed-identity Umožňuje používat spravovanou identitu Azure pro přístup k prostředkům v předplatném Azure.
    --assign-identity Určuje hodnotu ID spravované identity Azure, která se má použít.
    --node-vm-size Určuje velikost virtuálního počítače, která se má použít.
    --node-count Určuje počet uzlů, které se mají vytvořit.
  3. Po úspěšném nasazení clusteru pomocí příkazu az aks nodepool list zkontrolujte podrobnosti fondu uzlů.

    az aks nodepool list \
        --cluster-name AKSCluster \
        --resource-group AKSLearn \
        --output table
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    Name       OsType    VmSize           Count    MaxPods    ProvisioningState    Mode
    ---------  --------  ---------------  -------  ---------  -------------------  ------
    nodepool1  Linux     Standard_F8s_v2  3        30         Succeeded            System
    

    Z výstupu vidíte, že existují tři uzly typu Standard_F8s_v2, hodnota MaxPods 30 a režim fondu uzlů System.

Potvrzení využití IP adres pro cluster

  • Pomocí příkazu az network vnet subnet list zkontrolujte, kolik IP adres cluster používá.

    az network vnet subnet list \
        --vnet-name AKSVirtualNetwork \
        --resource-group AKSLearn \
        --query "[].ipConfigurations.length(@)" \
        --output table
    

    Tento příkaz používá dotazovací řetězec JMESPath k určení, kolik ipConfigurations je definováno v podsíti. maximální výstup by měl být 93. Nasadili jste tři uzly na začátek, takže každý uzel má jednu IP adresu. Pro maximální počet podů jste použili výchozí hodnotu 30, takže každý uzel má předem přidělených 30 IP adres pro pody, které se mají použít. Celkový počet IP adres přidělených dosud je 3 x nodes + (30 pods * 3 nodes) = 93. Některé adresy jsou ale rezervované, takže výstup může být menší.

Přidání dalšího uzlu do clusteru

Pojďme se podívat, jak je využití IP adres ovlivněno krádeží clusteru a přidáním jednoho dalšího uzlu.

  1. Vertikálně navyšte kapacitu clusteru a přidejte jeden další uzel pomocí příkazu az aks scale.

    az aks scale \
        --name AKSCluster \
        --resource-group AKSLearn \
        --node-count=4
    
  2. Po úspěšném dokončení příkazu pomocí příkazu az aks nodepool list potvrďte nové podrobnosti fondu uzlů.

    az aks nodepool list \
        --cluster-name AKSCluster \
        --resource-group AKSLearn \
        --output table
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu, který ukazuje, že teď máte čtyři uzly.

    Name       OsType    VmSize           Count    MaxPods    ProvisioningState    Mode
    ---------  --------  ---------------  -------  ---------  -------------------  ------
    nodepool1  Linux     Standard_F8s_v2  4        30         Succeeded            System
    
  3. Pomocí příkazu az network vnet subnet list zkontrolujte, kolik IP adres teď cluster používá.

    az network vnet subnet list \
        --vnet-name AKSVirtualNetwork \
        --resource-group AKSLearn \
        --query "[].ipConfigurations.length(@)" \
        --output table
    

    Tentokrát by maximální výstup měl být 124, což je 31 více než naposledy. To je jedna další IP adresa pro nový uzel a další 30 IP adres předem přidělených pro pody, které běží na daném uzlu. Některé adresy jsou ale rezervované, takže výstup může být menší.