Skip to main content
NetApp Solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Implantação do Apache Airflow

Colaboradores

Esta seção descreve as tarefas que você precisa concluir para implantar o Airflow no cluster do Kubernetes.

Observação É possível implantar o Airflow em outras plataformas que não o Kubernetes. A implantação do Airflow em plataformas que não o Kubernetes está fora do escopo desta solução.

Pré-requisitos

Antes de executar o exercício de implantação descrito nesta seção, assumimos que você já executou as seguintes tarefas:

  1. Você já tem um cluster do Kubernetes em funcionamento.

  2. Você já instalou e configurou o NetApp Trident no cluster do Kubernetes. Para obter mais detalhes sobre o Trident, consulte o "Documentação do Trident".

Instale o Helm

O Airflow é implantado usando o Helm, um popular gerenciador de pacotes do Kubernetes. Antes de implantar o Airflow, você deve instalar o Helm no host de salto de implantação. Para instalar o Helm no host de salto de implantação, siga o "instruções de instalação" na documentação oficial do Helm.

Defina o Kubernetes StorageClass padrão

Antes de implantar o Airflow, você precisa designar um StorageClass padrão no cluster do Kubernetes. O processo de implantação do Airflow tenta provisionar novos volumes persistentes usando o StorageClass padrão. Se nenhum StorageClass for designado como o StorageClass padrão, a implantação falhará. Para designar um StorageClass padrão no cluster, siga as instruções descritas na "Implantação do Kubeflow"seção. Se você já tiver designado um StorageClass padrão no cluster, então você pode pular esta etapa.

Utilize Helm para ativar o fluxo de ar

Para implantar o Airflow no cluster do Kubernetes usando o Helm, execute as seguintes tarefas a partir do host de salto de implantação:

  1. Implante o fluxo de ar usando o Helm seguindo o "instruções de implantação" gráfico de fluxo de ar oficial no Artifact Hub. Os comandos de exemplo a seguir mostram a implantação do fluxo de ar usando Helm. Modifique, adicione e/ou remova valores no custom- values.yaml arquivo conforme necessário, dependendo do ambiente e da configuração desejada.

    $ cat << EOF > custom-values.yaml
    ###################################
    # Airflow - Common Configs
    ###################################
    airflow:
      ## the airflow executor type to use
      ##
      executor: "CeleryExecutor"
      ## environment variables for the web/scheduler/worker Pods (for airflow configs)
      ##
      #
    ###################################
    # Airflow - WebUI Configs
    ###################################
    web:
      ## configs for the Service of the web Pods
      ##
      service:
        type: NodePort
    ###################################
    # Airflow - Logs Configs
    ###################################
    logs:
      persistence:
        enabled: true
    ###################################
    # Airflow - DAGs Configs
    ###################################
    dags:
      ## configs for the DAG git repository & sync container
      ##
      gitSync:
        enabled: true
        ## url of the git repository
        ##
        repo: "git@github.com:mboglesby/airflow-dev.git"
        ## the branch/tag/sha1 which we clone
        ##
        branch: master
        revision: HEAD
        ## the name of a pre-created secret containing files for ~/.ssh/
        ##
        ## NOTE:
        ## - this is ONLY RELEVANT for SSH git repos
        ## - the secret commonly includes files: id_rsa, id_rsa.pub, known_hosts
        ## - known_hosts is NOT NEEDED if `git.sshKeyscan` is true
        ##
        sshSecret: "airflow-ssh-git-secret"
        ## the name of the private key file in your `git.secret`
        ##
        ## NOTE:
        ## - this is ONLY RELEVANT for PRIVATE SSH git repos
        ##
        sshSecretKey: id_rsa
        ## the git sync interval in seconds
        ##
        syncWait: 60
    EOF
    $ helm install airflow airflow-stable/airflow -n airflow --version 8.0.8 --values ./custom-values.yaml
    ...
    Congratulations. You have just deployed Apache Airflow!
    1. Get the Airflow Service URL by running these commands:
       export NODE_PORT=$(kubectl get --namespace airflow -o jsonpath="{.spec.ports[0].nodePort}" services airflow-web)
       export NODE_IP=$(kubectl get nodes --namespace airflow -o jsonpath="{.items[0].status.addresses[0].address}")
       echo http://$NODE_IP:$NODE_PORT/
    2. Open Airflow in your web browser
  2. Confirme se todos os pods de fluxo de ar estão ativos e funcionando. Pode levar alguns minutos para que todos os pods comecem.

    $ kubectl -n airflow get pod
    NAME                                READY   STATUS    RESTARTS   AGE
    airflow-flower-b5656d44f-h8qjk      1/1     Running   0          2h
    airflow-postgresql-0                1/1     Running   0          2h
    airflow-redis-master-0              1/1     Running   0          2h
    airflow-scheduler-9d95fcdf9-clf4b   2/2     Running   2          2h
    airflow-web-59c94db9c5-z7rg4        1/1     Running   0          2h
    airflow-worker-0                    2/2     Running   2          2h
  3. Obtenha o URL do serviço Web Airflow seguindo as instruções que foram impressas no console quando você implantou o Airflow usando o Helm na etapa 1.

    $ export NODE_PORT=$(kubectl get --namespace airflow -o jsonpath="{.spec.ports[0].nodePort}" services airflow-web)
    $ export NODE_IP=$(kubectl get nodes --namespace airflow -o jsonpath="{.items[0].status.addresses[0].address}")
    $ echo http://$NODE_IP:$NODE_PORT/
  4. Confirme se você pode acessar o serviço da Web Airflow.

Figura que mostra a caixa de diálogo de entrada/saída ou que representa o conteúdo escrito