Cvičení – nasazení clusteru Azure Kubernetes Service pomocí Azure CNI
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.
Spusťte Azure Cloud Shell.
Pokud ještě nejste přihlášení k Azure, přihlaste se ke svému účtu Azure pomocí příkazu
az login
.az login
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
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
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
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í.
Pomocí příkazu
az identity create
vytvořte spravovanou identitu Azure AKSIdentity.az identity create \ --name AKSIdentity \ --resource-group AKSLearn
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
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)
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. 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 je3 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.
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
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
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ší.