Cvičení – Připojení komponent nativních pro cloud
Kubernetes poskytuje podům vlastní IP adresy a poskytuje jeden název DNS pro sadu podů. Soubory manifestu služby obsahují pokyny ke spolehlivému zveřejnění podů pomocí zásad, které definují, jak se k nim připojit. Pokud je image kontejneru znovu nasazená, nemusíte kvůli pokynům v manifestu služby překonfigurovat připojení.
Kontrolery příchozího přenosu dat definují, jak se vaše aplikace může připojit k vnějšímu světu. V ukázkovém scénáři musí inteligentní chladničky odesílat zprávy do kontejneru Node.js a kontrolery příchozího přenosu dat určují konfiguraci tohoto připojení.
V této lekci se naučíte:
- Nakonfigurujte manifest příchozího přenosu dat, aby k imagi kontejneru měly přístup externí aplikace.
- Nasaďte kontroler příchozího přenosu dat.
- Vytvořte webovou aplikaci pomocí image Dockeru.
Konfigurace manifestu příchozího přenosu dat
Pomocí příkazu identifikujte plně kvalifikovaný název domény (FQDN) hostitele, který má povolený přístup ke clusteru
az aks show
, a zadejte dotaz naaddonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName
hodnotu.az aks show --resource-group $RESOURCEGROUP --name $CLUSTERNAME -o tsv --query addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName
Zkopírování výstupu a otevření integrovaného editoru v Cloud Shellu pomocí
code .
ingress.yaml
Otevřete soubor a nahraďteapiVersion
hodnotunetworking.k8s.io/v1
ahost
hodnotu plně kvalifikovaným názvem domény, který jste zkopírovali v předchozím kroku.Soubor by měl vypadat jako v následujícím příkladu:
# ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cna-express annotations: kubernetes.io/ingress.class: addon-http-application-routing spec: rules: - host: cna-express.<exampleURL.eastus.aksapp.io> http: paths: - path: / # Which path is this rule referring to pathType: Prefix backend: # How the ingress will handle the requests service: name: cna-express # Which service the request will be forwarded to port: name: http # Which port in that service
Uložte soubor manifestu pomocí ctrl + S a zavřete editor pomocí kombinace kláves CTRL + Q.
Nasazení příchozího přenosu dat
Pomocí příkazu odešlete manifest příchozího přenosu dat do clusteru
kubectl apply
.kubectl apply -f ./ingress.yaml
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
ingress.networking.k8s.io/cna-express created
Vraťte Cloud Shell do zdrojové složky pomocí
cd ..
.cd ..
Mezi vytvořením příchozího přenosu dat a vytvořením záznamu zóny může docházet k malému zpoždění. I když k tomu dojde, můžeme webovou aplikaci vytvořit.
Vytvoření webové aplikace pomocí image Dockeru
Přejděte na web Azure Portal a vyberte registr kontejneru.
V části Nastavení vyberte Přístupové klíče.
Vyberte možnost Správa uživatele, která aktivuje uživatelský účet správce registru.
Kontrola příchozího přenosu dat
Pomocí příkazu přejděte do Azure Cloud Shellu a zkontrolujte, jestli nasazení proběhlo úspěšně
kubectl get ingress
.kubectl get ingress cna-express
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
NAME HOSTS ADDRESS PORTS AGE cna-express cna.5cd29ec927f24764b052.eastus.aksapp.io 52.226.96.30 80 4m44s
Ujistěte se, že je sloupec
ADDRESS
výstupu vyplněný IP adresou.Zobrazte seznam zón DNS, abyste zjistili, jestli je náš DNS vytvořený pomocí
az network dns zone list
příkazu.az network dns zone list --output table
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
Name ResourceGroup RecordSets MaxRecordSets ------------------------------------- -------------------------------------------- ------------ --------------- 5cd29ec927f24764b052.eastus.aksapp.io mc_rg-contoso-video_aks-contoso-video_eastus 4 10000
Zkopírujte hodnoty a
Name
ResourceGroup
použijte je v dalším kroku.Pomocí příkazu vypíšete záznamy DNS pro zónu
az network dns record-set list
. Nahraďte<name>
hodnoty<resource-group>
, které jste zkopírovali v předchozím kroku.az network dns record-set list -g <resource-group> -z <name> --output table
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
Fqdn Name ProvisioningState ResourceGroup Ttl ---------------------------------------------- ------- ------------------- -------------------------------------------- ------ 5cd29ec927f24764b052.eastus.aksapp.io. @ Succeeded mc_learn-cna-rg_cna-demo-aks_eastus 172800 5cd29ec927f24764b052.eastus.aksapp.io. @ Succeeded mc_learn-cna-rg_cna-demo-aks_eastus 3600 cna.5cd29ec927f24764b052.eastus.aksapp.io. cna Succeeded mc_learn-cna-rg_cna-demo-aks_eastus 300 cna.5cd29ec927f24764b052.eastus.aksapp.io. cna Succeeded mc_learn-cna-rg_cna-demo-aks_eastus 300
Ujistěte se, že jsou na konci seznamu dva nové záznamy s námi vytvořeným hostitelem v klíči
host
. HodnotaProvisioningState
jeSucceeded
. Rozšíření záznamů zóny může trvat několik minut.Otevřete prohlížeč a přejděte na úplnou adresu URL plně kvalifikovaného názvu domény aksapp.io popsané ve výstupu. Měla by se zobrazit zpráva "hello world". Nezapomeňte nezahrnovat od
.
konce adresy URL.
Vytvoření webové aplikace
Vraťte se na web Azure Portal a vyberte Vytvořit prostředek.
Vyberte Web>Webová aplikace.
Na kartě Základy zadejte pro každé nastavení následující hodnoty:
Nastavení Hodnota Podrobnosti projektu Předplatné Vyberte výchozí předplatné Azure, ve kterém můžete vytvářet a spravovat prostředky. Skupina prostředků V rozevíracím seznamu vyberte existující skupinu prostředků. Podrobnosti o instanci Název Zadejte jedinečný název a poznamenejte si ho k pozdějšímu použití. Publikování Kontejner Dockeru Operační systém Linux Oblast Ponechte výchozí nastavení nebo vyberte umístění blízko vás. Cenové plány Plán pro Linux Ponechte jako výchozí. Cenový plán Vyberte zdarma F1 0,00 USD/měsíc. Vyberte kartu Dockeru v horní části obrazovky.
Na kartě Docker zadejte pro každé nastavení následující hodnoty:
Nastavení Hodnota Možnosti Jeden kontejner Zdroj image Azure Container Registry Registr Vyberte registr. Image webimage
Značka (tag) latest
Spouštěcí příkaz Toto nastavení nechte prázdné. Vyberte Zkontrolovat a vytvořit vytvořit>.
Konfigurace webové aplikace
Po dokončení nasazení vyberte Přejít k prostředku.
V části Nastavení vyberte Konfigurace.
V části Nastavení aplikace vyberte Nové nastavení aplikace.
Zkopírujte následující hodnotu a vložte ji do pole Název .
SOCKET_SERVER_URL
Pro hodnotu použijte stejnou aksapp.io adresu URL plně kvalifikovaného názvu domény, kterou jste použili s kontrolerem příchozího přenosu dat, a pro přístup k webové stránce hello world.
Vyberte OK>Uložit>pokračovat.
Vraťte se do Cloud Shellu a pomocí následujícího příkazu vytvořte proměnnou prostředí pro název webové aplikace. Nezapomeňte nahradit
<webapp-name>
názvem vaší webové aplikace.WEBAPPNAME=<webapp-name>
Testování řešení
Spusťte následující příkaz a vyberte adresu URL vaší webové aplikace.
echo select the link below echo http://$WEBAPPNAME.azurewebsites.net
A je to! Vytvořili jste škálovatelné řešení nativní pro cloud. S prostředky a kódem, které jste vytvořili, si můžete pohrát. Až budete hotovi, spusťte v Azure Cloud Shellu další krok, kterým odstraníte skupinu prostředků a vyhnete se zbytečným poplatkům za váš účet.
az group delete --name $RESOURCEGROUP