Del via


Tilføj en Kubernetes-hemmelighed i Apache Airflow-job

Bemærk

Apache Airflow-jobbet drives af Apache Airflow.

En Kubernetes-hemmelighed er et objekt, der er designet til sikkert at gemme følsomme oplysninger, f.eks. adgangskoder, tokens eller nøgler. Når du bruger hemmeligheder, undgår du at integrere fortrolige data direkte i programkoden.

Denne vejledning fører dig gennem tilføjelse af en Kubernetes-hemmelighed i et Apache Airflow-miljø, der hostes på Microsoft Fabric, for at hente objektbeholderbilleder fra private registre. I dette eksempel bruger vi Azure Container Registry til at oprette et brugerdefineret billede, som derefter hentes i en Airflow DAG.

Forudsætninger

Tilføj en Kubernetes-hemmelighed.

  1. Gå til Environment configuration siden ved at klikke på Configure Airflow.
  2. Klik på New knappen Under Kubernetes secrets sektion. Skærmbillede, der viser knappen for at tilføje en ny Kubernetes-hemmelighed.
  3. Udfyld de felter, der vises i dialogboksen:
    • Navn: Navnet på Kubernetes-hemmeligheden.
    • Navneområde: Det navneområde, der skal køres i Kubernetes. Som standard: Udfyld feltet som adf.
    • Secret type: Vælg typen af hemmeligheden mellem værdierne: Private registry credential og Basic auth credential.
    • URL-adresse til registreringsdatabaseserveren: URL-adressen til registreringsdatabasen for din private objektbeholder, \registry_name\>.azurecr.iof.eks. .
    • Brugernavn: Brugernavn i registreringsdatabasen for din private objektbeholder.
    • Adgangskode: Adgangskode for at få adgang til registreringsdatabasen for den private objektbeholder. Skærmbillede, der viser formularen for at tilføje en ny Kubernetes-hemmelighed.
  4. Når alle felterne er udfyldt, skal du klikke på knappen Create for at færdiggøre oprettelsen af Kubernetes-hemmeligheden.

En eksempel-DAG, der bruger gemt Kubernetes-hemmelighed til at hente et brugerdefineret billede fra ACR.

from datetime import datetime, timedelta
from airflow import DAG
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
from kubernetes.client import models as kubernetes

default_args = {
    "retries": 1,
    "retry_delay": timedelta(minutes=3),
}

dag = DAG(
    dag_id="pull_custom_image_from_acr",
    start_date=datetime(2022, 5, 14),
    schedule_interval="@daily",
    catchup=False,
    default_args=default_args,
)

acr_kubernetes = KubernetesPodOperator(
    task_id="task-one",
    namespace="adf",
    image="<docker_image_you_wish_to_launch>",
    image_pull_secrets=[kubernetes.V1LocalObjectReference("<stored_kubernetes_password")],
    cmds=["echo", "10"],
    labels={"foo": "bar"},
    name="private-image-pod",
    in_cluster=True,
    dag=dag,
)

Hurtig start: Opret et Apache Airflow-job