참고:

Apache Airflow에 대한 OCI DevOps 파이프라인을 생성하고 Helm을 사용하여 배치

소개

6개 파트의 자습서 시리즈 중 5개로, OCI SDK, OCI-CLI, Resource Manager, OCI DevOps 및 Helm을 사용하여 Apache Airflow를 배포하고 삭제하는 Golang 마이크로서비스를 사용하여 OKE 클러스터에 임시 리소스 집합을 배치하는 방법을 보여줍니다.

목표

이 자습서에서는 Apache Airflow용 OCI DevOps 파이프라인을 생성하고 Helm을 사용하여 배치하는 방법을 알아봅니다.

필요 조건

작업 1: Apache Airflow에 대한 DevOps 아티팩트 생성

DevOps 빌드 파이프라인을 생성하기 전에 빌드 결과(Helm 패키지 및 컨테이너 이미지)와 접속할 아티팩트를 생성해야 합니다.

  1. 이 자습서에 대해 생성한 OCI 레지스트리로 이동합니다.

    T1_1

  2. DevOps 프로젝트 페이지로 이동하여 아티팩트를 누른 다음 아티팩트 추가를 누릅니다. 아래와 같이 정보를 채우십시오.

    • 컨텍스트: 공기 흐름에 대한 수신을 구현하기 위한 Kubernetes 매니페스트입니다.

    • 이름: airflow-ingress

    • 유형: Kubernetes 매니페스트

    • 아티팩트 소스: 인라인

    • 필드에 아래 콘텐츠를 붙여 넣습니다.

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
       generation: 1
       name: airflow-ingress
       namespace: airflow
      spec:
       ingressClassName: nginx
       rules:
       - host: ${APP_HOST}
         http:
           paths:
           - backend:
               service:
                 name: airflow-web
                 port:
                   number: 8080
             path: /
             pathType: ImplementationSpecific
      
      
  3. 2단계를 반복하고 아래와 같이 프로세스를 채웁니다.

    • 컨텍스트: 공기 흐름에 대한 수신을 구현하기 위한 Kubernetes 매니페스트입니다.

    • 이름: airflow-namespace

    • 유형: Kubernetes 매니페스트

    • 아티팩트 소스: 인라인

    • 필드에 아래 콘텐츠를 붙여 넣습니다.

      apiVersion: v1
      kind: Namespace
      metadata:
        name: airflow
      
      
  4. 2단계를 반복하고 아래와 같이 프로세스를 채웁니다.

    • 컨텍스트: Helm Chart 레지스트리 위치입니다.
    • 이름: helm-airflow
    • 유형: Helm Chart
    • Helm 차트 URL: oci://gru.ocir.io/yournamespace/airflow-helm/airflow
    • 버전: 8.6.1

    참고: OCI 레지스트리에서 yournamespace를 대체해야 합니다. 이 레지스트리는 이 자습서의 이전 단계에서 생성되었습니다.

  5. 2단계를 반복하고 아래와 같이 프로세스를 채웁니다.

    • 컨텍스트: 공기 흐름 배치에 대한 Helm 값입니다.

    • 이름: values-airflow-helm

    • 유형: 일반 아티팩트

    • 아티팩트 소스: 인라인

    • 필드에 아래 콘텐츠를 붙여 넣습니다. 그러면 새 노드 풀에 강제로 배치됩니다.

      nodeSelector:
      name: extra_workload
      

이 시점에서는 다음 아티팩트가 있어야 합니다.

T1_1

작업 2: 공기 흐름에 대한 DevOps 빌드 파이프라인 생성

저장소에 build_spec.yaml 파일만 있는 코드는 없습니다. Apache Airflow에 공식 Helm 차트를 사용하기 때문입니다.

  1. OCI DevOps 프로젝트로 이동하고 코드 저장소를 누른 다음 airflow-helm이라는 저장소를 생성합니다.

    T2_1

  2. 복제를 누른 다음 저장소 ssh url를 기록해 둡니다.

    T2_1

  3. 배스천 호스트 셸 터미널로 이동하여 build_spec.yaml 파일을 다운로드하고 OCI의 고유 코드 저장소로 푸시합니다.

    cd $HOME
    git clone <your ssh code repository>
    wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part5/files/build_spec.yaml
    git add .
    git commit -m "new build spec added"
    git push
    

    T2_3

    T2_3

    T2_3

작업 3: airflow-helm에 대한 빌드 파이프라인 생성

  1. DevOps 프로젝트로 이동하고 파이프라인 작성을 누른 다음 빌드 파이프라인 생성을 누릅니다.

    T3_1

  2. 새 단계 추가를 누르고 관리형 빌드 유형을 선택합니다.

    T3_2

  3. 기본 코드 저장소를 선택한 다음 airflow-helm을 선택합니다.

    T3_3

  4. 이 공기 흐름 파이프라인에 필요한 저장소 암호를 수집합니다.

    1. Oracle 클라우드 콘솔에서 ID 및 보안을 누르고 저장소를 누른 다음 저장소를 선택합니다.

    2. 이 자습서의 이전 단계에서 생성한 OCIRUserOCIRToken 암호의 OCID를 가져옵니다.

      T3_4

  5. DevOps 프로젝트로 이동하여 파이프라인 작성을 누르고 airflow-helm에 대한 빌드 파이프라인을 선택한 다음 매개변수 탭을 누르고 다음 매개변수를 추가합니다.

    매개변수 이름
    VAULT_HELM_REPO_USER 레지스트리 사용자 OCIRUser에 대한 저장소 암호 OCID를 가져옵니다.
    VAULT_USER_AUTH_TOKEN 레지스트리 토큰 OCIRToken에 대한 저장소 암호 OCID를 가져옵니다.
    COMPARTMENT_ID 구획 OCID 가져오기
    HELM_REPO gru.ocir.io
    HELM_REPO_URL oci://gru.ocir.io/your_namespace/airflow-helm
    APP_HOST airflow.superocilab.com

    참고: REPO URL에서 지역을 올바르게 설정했는지 확인하십시오. 이 자습서에서는 "gru.ocir.io"입니다.

    T3_5

  6. 파이프라인 빌드 탭을 누른 다음 수동 실행 시작을 눌러 빌드 파이프라인을 수동으로 실행합니다.

    T3_6 T3_6

작업 4: airflow-helm에 대한 배치 파이프라인 생성

  1. DevOps 프로젝트로 이동하고 배치 파이프라인"을 누른 다음 airflow-helm-deploy라는 새 파이프라인을 생성합니다.

    T4_1

  2. OKE에서 새 네임스페이스를 생성하려면 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다.

    T4_2

  3. OKE에서 공기 흐름을 설치할 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다.

    T4_3

    T4_3

  4. OKE에서 공기 흐름에 대한 수신을 생성하려면 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다. 외부 OKE에서 마이크로서비스에 액세스하기 위해 수신기 컨트롤러를 설정했으므로 공기 흐름에 대해서도 설정해야 합니다.

    T4_4

    T4_4

  5. 공기 흐름에 대한 빌드 파이프라인을 업데이트하고 배치에 트리거를 추가합니다. 빌드 파이프라인이 완료된 후 자동으로 배치를 시작하려면 airflow-helm 빌드 파이프라인에 트리거를 추가해야 합니다.

    T4_5

    T4_5

    T4_5

이제 빌드 파이프라인은 다음과 같아야 합니다.

T4_5

작업 5: go-microservice 매개변수 구성

이제 Airflow에 대해 최근에 생성된 빌드 파이프라인을 트리거할 수 있도록 go-microservice를 구성해야 합니다.

  1. DevOps 프로젝트로 이동하여 파이프라인 작성을 누르고 airflow-helm 빌드 파이프라인에 대한 OCID를 기록해 둡니다.

    T5_1

  2. Oracle 클라우드 콘솔에서 개발자 서비스를 누르고, 리소스 관리자에서 스택을 누르고, CLI 추가 노드 스택을 선택하고, OCID를 기록해 둡니다.

    T5_2

    T5_2

  3. go-microservice 코드 내에서 변수를 설정합니다.

    참고: go-microservices는 OCI 리소스와 상호 작용하는 코드입니다. 방금 공기 흐름을 위한 빌드 파이프라인을 생성했으므로 마이크로서비스가 호출해야 하는 빌드 파이프라인을 인식하도록 해야 합니다. 이를 위해 OKE의 컨테이너 내부에 삽입될 configmap 값에 대해 몇 가지 변경 작업을 수행합니다.

    • OCI 코드 저장소에 대한 go-microservice SSH URL을 가져옵니다.

      T5_3_1

    • 배스천 점프박스 셸 콘솔을 열고 go-microservice 코드 저장소에서 configmap/values.yaml 파일을 편집합니다.

      cd $HOME
      rm -rf go-microservice
      git clone your_repo_ssh_url
      cd go-microservice
      vi chart-go-microservice/configmap/values.yaml   
      

      T5_3_1

    • configmap/values.yaml 파일 끝에 다음 새 변수를 추가합니다.

      ENV_RM_STACK_ID: "<paste your stack ocid>"
      ENV_DEVOPS_BUILD_ID: "<paste your build pipeline ocid"
      
    • 파일의 마지막 세 행을 확인하고 마지막 두 개의 변수가 추가되었는지 확인합니다.

      tail -3 chart-go-microservice/configmap/values.yaml
      

      T5_3_1

    • 이제 코드 저장소에 변경 사항을 푸시해야 합니다.

       git add .
       git commit -m "added new variables"
       git push
      
      

      T5_3_1

  4. DevOps 프로젝트로 이동하여 파이프라인 작성을 선택하고 go-microservice-pipeline을 누릅니다.

    1. go-microservice에 대한 빌드 파이프라인을 다시 실행하고 구성 맵에 대한 변경사항이 적용되고 실행 중인 컨테이너 내에 삽입되도록 하려면 수동 실행 시작을 누릅니다.

      T5_3_1

    2. 그런 다음 이 빌드 파이프라인에 의해 트리거된 배치 파이프라인을 확인합니다.

      T5_3_1

이제 go-microservice를 사용할 수 있습니다!

다음 단계

이 학습 경로에서 다음 자습서를 진행하려면 여기를 클릭하십시오.

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.