Delen via


Overzicht van Het implementeren van Apache Airflow in Azure Kubernetes Service (AKS)

In deze handleiding implementeert u Apache Airflow in Azure Kubernetes Service (AKS) met behulp van Helm. U leert hoe u een AKS-cluster instelt, Helm installeert, Airflow implementeert met behulp van de Helm-grafiek en de gebruikersinterface van Airflow verkent.

Belangrijk

Opensource-software wordt vermeld in AKS-documentatie en -voorbeelden. Software die u implementeert, is uitgesloten van AKS-serviceovereenkomsten, beperkte garantie en ondersteuning voor Azure. Wanneer u opensource-technologie naast AKS gebruikt, raadpleegt u de beschikbare ondersteuningsopties van de respectieve community's en projectonderhouders om een plan te ontwikkelen.

De Ray GitHub-opslagplaats beschrijft bijvoorbeeld verschillende platforms die variëren in reactietijd, doel en ondersteuningsniveau.

Microsoft neemt de verantwoordelijkheid voor het bouwen van de opensource-pakketten die we implementeren op AKS. Deze verantwoordelijkheid omvat het volledige eigendom van het build-, scan-, teken-, validatie- en hotfixproces, samen met controle over de binaire bestanden in containerinstallatiekopieën. Zie Beveiligingsbeheer voor AKS- en AKS-ondersteuningsdekking voor meer informatie.

Wat is Apache Airflow?

Apache Airflow is een opensource-platform dat is gebouwd voor het ontwikkelen, plannen en bewaken van batchgeoriënteerde werkstromen. Met het flexibele Python-framework kunt u met Airflow werkstromen ontwerpen die naadloos kunnen worden geïntegreerd met vrijwel elke technologie. In Airflow moet u Python-werkstromen definiëren, vertegenwoordigd door Directed Acyclic Graph (DAG). U kunt Airflow overal implementeren en na de implementatie hebt u toegang tot de gebruikersinterface van Airflow en kunt u werkstromen instellen.

Airflow-architectuur

Op hoog niveau omvat Airflow:

  • Een metagegevensdatabase die de status van DAG's, taakexemplaren, XComs en meer bijhoudt.
  • Een webserver die de Airflow-gebruikersinterface biedt voor bewaking en beheer.
  • Een planner die verantwoordelijk is voor het activeren van DAG's en taakexemplaren.
  • Uitvoerders die de uitvoering van taakexemplaren verwerken.
  • Werkrollen die de taken uitvoeren.
  • Andere onderdelen, zoals de opdrachtregelinterface (CLI).

Schermopname van de Apache Airflow-architectuur in AKS.

Gedistribueerde architectuur voor luchtstroom voor productie

De modulaire, gedistribueerde architectuur van Airflow biedt verschillende belangrijke voordelen voor productieworkloads:

  • Scheiding van problemen: elk onderdeel heeft een afzonderlijke rol, waardoor het systeem eenvoudig en onderhoudbaar blijft. De scheduler beheert DAG's en taakplanning, terwijl werkrollen taken uitvoeren, zodat elk onderdeel gericht blijft op de specifieke functie.
  • Schaalbaarheid: naarmate workloads toenemen, is het mogelijk om eenvoudig te schalen. U kunt meerdere planners of werkrollen gelijktijdig uitvoeren en gebruikmaken van een gehoste database voor automatisch schalen om te voldoen aan de toegenomen vraag.
  • Betrouwbaarheid: omdat onderdelen zijn losgekoppeld, leidt de storing van één planner of werkrol niet tot een systeembrede storing. De gecentraliseerde metagegevensdatabase zorgt voor consistentie en continuïteit in het hele systeem.
  • Uitbreidbaarheid: De architectuur is flexibel, waardoor onderdelen zoals de uitvoerder of wachtrijservice naar behoefte kunnen worden verwisseld en aangepast.

Dit ontwerp biedt een robuuste basis voor schalen, betrouwbaarheid en flexibiliteit bij het beheren van complexe gegevenspijplijnen.

Airflow-uitvoerders

Een zeer belangrijke ontwerpbeslissing bij het maken van airflow productieklaar is het kiezen van de juiste uitvoerder. Wanneer een taak klaar is om te worden uitgevoerd, is de uitvoerder verantwoordelijk voor het beheren van de uitvoering ervan. Uitvoerders communiceren met een groep werkrollen die de taken uitvoeren. De meest gebruikte uitvoerders zijn:

  • LocalExecutor: voert taakexemplaren parallel uit op het hostsysteem. Deze uitvoerder is ideaal voor testen, maar biedt beperkte schaalbaarheid voor grotere workloads.
  • CeleryExecutor: distribueert taken over meerdere computers met behulp van een Celery-pool, waardoor horizontale schaalbaarheid wordt geboden door werkrollen op verschillende knooppunten uit te voeren.
  • KubernetesExecutor: Op maat voor Airflow-implementaties in Kubernetes start deze uitvoerder dynamisch werkpods binnen het Kubernetes-cluster. Het biedt uitstekende schaalbaarheid en zorgt voor een sterke resource-isolatie.

Naarmate we Airflow overstappen naar productie, wordt het schalen van werkrollen essentieel, waardoor KubernetesExecutor het beste past bij onze behoeften. Voor lokale tests is LocalExecutor echter de eenvoudigste optie.

Volgende stap

Medewerkers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben het oorspronkelijk geschreven:

  • Hoog | Principal Customer Engineer
  • Satya Chandragiri | Senior Digital Cloud Solution Architect
  • Erin Schaffer | Inhoudsontwikkelaar 2