Nasazení eShopOnContainers do Azure

Návod

Tento obsah je výňatek z elektronické knihy Architektura cloud-native .NET aplikací pro Azure, která je k dispozici na .NET Docs nebo jako bezplatné PDF ke stažení, které si můžete přečíst offline.

miniatura obálky e-knihy Cloud-nativní aplikace .NET pro Azure.

Aplikaci eShopOnContainers je možné nasadit na různé platformy Azure. Doporučeným přístupem je nasazení aplikace do služby Azure Kubernetes Services (AKS). Helm, nástroj pro nasazení Kubernetes, je k dispozici ke snížení složitosti nasazení. Volitelně můžou vývojáři implementovat Azure Dev Spaces pro Kubernetes, aby zjednodušili proces vývoje.

Azure Kubernetes Service

Prvním krokem k hostování eShopu v AKS je vytvoření clusteru AKS. K tomu můžete použít Azure Portal, který vás provede požadovanými kroky. Můžete také vytvořit cluster z Azure CLI a pečlivě povolit Role-Based řízení přístupu (RBAC) a směrování aplikací. Dokumentace k eShopOnContainers podrobně popisuje postup vytvoření vlastního clusteru AKS. Po vytvoření můžete ke clusteru přistupovat a spravovat ho z řídicího panelu Kubernetes.

Nyní můžete aplikaci eShop nasadit do clusteru pomocí Helm.

Nasazení do služby Azure Kubernetes Service pomocí Helmu

Helm je nástroj správce balíčků aplikací, který funguje přímo s Kubernetes. Pomáhá definovat, instalovat a upgradovat aplikace Kubernetes. I když je možné jednoduché aplikace nasadit do AKS pomocí vlastních skriptů rozhraní příkazového řádku nebo jednoduchých souborů nasazení, složité aplikace můžou obsahovat mnoho objektů Kubernetes a využívat výhod Helmu.

Aplikace Helm používají textové konfigurační soubory označované jako Helm charty, které deklarativně popisují aplikaci a konfiguraci v balíčcích Helm. Grafy používají standardní soubory ve formátu YAML k popisu související sady prostředků Kubernetes. Jsou verzovány spolu s kódem aplikace, který popisují. Charty Helm se liší od jednoduchých po složité v závislosti na požadavcích instalace, které popisují.

Helm se skládá z klientského nástroje příkazového řádku, který využívá Helm charts a předává příkazy serverové komponentě nazvané Tiller. Tiller komunikuje s rozhraním API Kubernetes, aby se zajistilo správné zřizování kontejnerizovaných úloh. Helm spravuje Nadace pro cloudově nativní výpočetní techniku.

Následující soubor yaml představuje šablonu Helmu:

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.app.svc.marketing }}
  labels:
    app: {{ template "marketing-api.name" . }}
    chart: {{ template "marketing-api.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: http
      protocol: TCP
      name: http
  selector:
    app: {{ template "marketing-api.name" . }}
    release: {{ .Release.Name }}

Všimněte si, jak šablona popisuje dynamickou sadu dvojic klíč/hodnota. Při vyvolání šablony se hodnoty uzavřené ve složených závorkách načítají z jiných konfiguračních souborů založených na yaml.

Grafy helmu eShopOnContainers najdete ve složce /k8s/helm. Obrázek 2–6 ukazuje, jak jsou různé komponenty aplikace uspořádané do struktury složek, kterou helm používá k definování a správě nasazení.

Složka helm eShopOnContainers Obrázek 2-6 Složka helm eShopOnContainers.

Každá komponenta se instaluje pomocí příkazu helm install. eShop obsahuje skript "deploy all", který prochází a instaluje komponenty pomocí jejich příslušných helm chartů. Výsledkem je opakovatelný proces s verzí aplikace ve správě zdrojového kódu, který může každý člen týmu nasadit do clusteru AKS pomocí příkazu skriptu s jedním řádkem.

Poznámka:

Verze 3 Helm oficiálně odstraňuje potřebu součásti serveru Tiller. Další informace o tomto vylepšení najdete v tématu Proč tiller chybí v Helmu 3?.

Azure Functions a Logic Apps (bez serveru)

Ukázka eShopOnContainers zahrnuje podporu sledování online marketingových kampaní. Funkce Azure slouží ke sledování podrobností marketingové kampaně pro dané ID kampaně. Místo vytvoření úplné mikroslužby je jedna funkce Azure Functions jednodušší a dostatečná. Azure Functions má jednoduchý model sestavení a nasazení, zejména pokud je nakonfigurovaný tak, aby běžel v Kubernetes. Nasazení funkce se skriptuje pomocí šablon Azure Resource Manageru (ARM) a Azure CLI. Tato služba kampaně není určená pro zákazníky a vyvolá jednu operaci, což z ní dělá skvělého kandidáta pro Azure Functions. Funkce vyžaduje minimální konfiguraci, včetně dat připojovacího řetězce databáze a nastavení základního identifikátoru URI image. Azure Functions nakonfigurujete na webu Azure Portal.