Udostępnij za pośrednictwem


Dodawanie wpisu tajnego kubernetes w zadaniu apache Airflow

Uwaga

Zadanie apache Airflow jest obsługiwane przez platformę Apache Airflow.

Wpis tajny kubernetes jest obiektem zaprojektowanym do bezpiecznego przechowywania poufnych informacji, takich jak hasła, tokeny lub klucze. Korzystając z wpisów tajnych, należy unikać osadzania poufnych danych bezpośrednio w kodzie aplikacji.

Ten przewodnik przeprowadzi Cię przez proces dodawania wpisu tajnego kubernetes w środowisku Apache Airflow hostowanym w usłudze Microsoft Fabric w celu ściągania obrazów kontenerów z prywatnych rejestrów. W tym przykładzie użyjemy usługi Azure Container Registry do utworzenia obrazu niestandardowego, który następnie zostanie ściągnięty w grupie DAG przepływu powietrza.

Wymagania wstępne

Dodaj wpis tajny platformy Kubernetes.

  1. Przejdź do Environment configuration strony, klikając pozycję Configure Airflow.
  2. W Kubernetes secrets sekcji kliknij New przycisk. Zrzut ekranu przedstawiający przycisk dodawania nowego wpisu tajnego kubernetes.
  3. Wypełnij pola wyświetlane w oknie dialogowym:
    • Nazwa: nazwa wpisu tajnego kubernetes.
    • Przestrzeń nazw: przestrzeń nazw do uruchomienia w ramach platformy Kubernetes. Domyślnie: wypełnij pole jako adf.
    • Typ wpisu tajnego: wybierz typ wpisu tajnego między wartościami: Private registry credential i Basic auth credential.
    • Adres URL serwera rejestru: adres URL prywatnego rejestru kontenerów, na przykład \registry_name\>.azurecr.io.
    • Nazwa użytkownika: nazwa użytkownika prywatnego rejestru kontenerów.
    • Hasło: hasło umożliwiające dostęp do prywatnego rejestru kontenerów. Zrzut ekranu przedstawiający formularz umożliwiający dodanie nowego wpisu tajnego platformy Kubernetes.
  4. Po wypełnieniu wszystkich pól kliknij Create przycisk , aby sfinalizować tworzenie wpisu tajnego kubernetes.

Przykładowa grupa DAG, która używa przechowywanego wpisu tajnego kubernetes do ściągania obrazu niestandardowego z usługi 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,
)

Szybki start: tworzenie zadania platformy Apache Airflow