Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Aanbeveling
Deze inhoud is een fragment uit het eBook, Cloud Native .NET Applications for Azure ontwerpen, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
De eShopOnContainers-toepassing kan worden geïmplementeerd op verschillende Azure-platforms. De aanbevolen methode is om de toepassing te implementeren in Azure Kubernetes Services (AKS). Helm, een Kubernetes-implementatieprogramma, is beschikbaar om de complexiteit van de implementatie te verminderen. Ontwikkelaars kunnen eventueel Azure Dev Spaces voor Kubernetes implementeren om hun ontwikkelingsproces te stroomlijnen.
Azure Kubernetes Service
Als u eShop in AKS wilt hosten, moet u eerst een AKS-cluster maken. Hiervoor kunt u Azure Portal gebruiken, waarmee u de vereiste stappen doorloopt. U kunt ook een cluster maken vanuit de Azure CLI, waarbij u Role-Based RBAC (Access Control) en toepassingsroutering inschakelt. De documentatie van eShopOnContainers bevat informatie over de stappen voor het maken van uw eigen AKS-cluster. Zodra het is gemaakt, kunt u het cluster openen en beheren vanuit het Kubernetes-dashboard.
U kunt nu de eShop-toepassing implementeren in het cluster met behulp van Helm.
Implementeren in Azure Kubernetes Service met behulp van Helm
Helm is een hulpprogramma voor toepassingspakketbeheer dat rechtstreeks met Kubernetes werkt. Hiermee kunt u Kubernetes-toepassingen definiëren, installeren en upgraden. Hoewel eenvoudige apps kunnen worden geïmplementeerd in AKS met aangepaste CLI-scripts of eenvoudige implementatiebestanden, kunnen complexe apps veel Kubernetes-objecten bevatten en profiteren van Helm.
Met Helm bevatten toepassingen op basis van tekst gebaseerde configuratiebestanden, Helm-grafieken genoemd, die de toepassing en configuratie declaratief beschrijven in Helm-pakketten. Grafieken maken gebruik van standaard-YAML-bestanden om een gerelateerde set Kubernetes-resources te beschrijven. Ze worden samen met de toepassingscode die ze beschrijven gevversioneerd. Helm-grafieken variëren van eenvoudig tot complex, afhankelijk van de vereisten van de installatie die ze beschrijven.
Helm bestaat uit een commandoregelclient die helm charts gebruikt en opdrachten verstuurt naar een servercomponent genaamd Tiller. Tiller communiceert met de Kubernetes-API om ervoor te zorgen dat uw workloads in containers correct worden ingericht. Helm wordt onderhouden door de Cloud-native Computing Foundation.
In het volgende YAML-bestand wordt een Helm-sjabloon weergegeven:
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 }}
U ziet hoe de sjabloon een dynamische set sleutel-waardeparen beschrijft. Wanneer de sjabloon wordt aangeroepen, worden waarden die tussen accolades zijn geplaatst, opgehaald uit andere yaml-configuratiebestanden.
U vindt de helmgrafieken eShopOnContainers in de map /k8s/helm. Afbeelding 2-6 laat zien hoe de verschillende onderdelen van de toepassing zijn ingedeeld in een mapstructuur die door Helm wordt gebruikt om implementaties te definiëren en te beheren.
afbeelding 2-6. De helm-map eShopOnContainers.
Elk afzonderlijk onderdeel wordt geïnstalleerd met behulp van een helm install opdracht. eShop bevat een 'deploy all'-script dat de onderdelen doorloopt en installeert met behulp van hun respectieve Helm-charts. Het resultaat is een herhaalbaar proces, dat is geversied met de toepassing in broncodebeheer, die iedereen in het team kan implementeren in een AKS-cluster met een scriptopdracht met één regel.
Opmerking
Versie 3 van Helm verwijdert officieel de noodzaak voor het Tiller-serveronderdeel. Zie Waarom ontbreekt Tiller in Helm 3 voor meer informatie over deze uitbreiding.
Azure Functions en Logic Apps (serverloos)
Het voorbeeld van eShopOnContainers bevat ondersteuning voor het bijhouden van online marketingcampagnes. Een Azure-functie wordt gebruikt voor het bijhouden van marketingcampagnedetails voor een bepaalde campagne-id. In plaats van een volledige microservice te maken, is één Azure-functie eenvoudiger en voldoende. Azure Functions heeft een eenvoudig build- en implementatiemodel, met name wanneer deze is geconfigureerd voor uitvoering in Kubernetes. Het implementeren van de functie wordt uitgevoerd met behulp van ARM-sjablonen (Azure Resource Manager) en de Azure CLI. Deze campagneservice is niet klantgericht en roept één bewerking aan, waardoor het een uitstekende kandidaat is voor Azure Functions. Voor de functie is minimale configuratie vereist, waaronder database-connectiestringgegevens en instellingen voor de basis-URI van afbeeldingen. U configureert Azure Functions in de Azure-portal.