참고:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하려면 이 값을 클라우드 환경에 해당하는 값으로 대체하십시오.
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을 사용하여 배치하는 방법을 알아봅니다.
필요 조건
- 이 학습 경로에서 이전 자습서 완료, 파트 4/6 - Golang 마이크로서비스 구축 및 배포를 위한 OCI DevOps 파이프라인 생성
작업 1: Apache Airflow에 대한 DevOps 아티팩트 생성
DevOps 빌드 파이프라인을 생성하기 전에 빌드 결과(Helm 패키지 및 컨테이너 이미지)와 접속할 아티팩트를 생성해야 합니다.
-
이 자습서에 대해 생성한 OCI 레지스트리로 이동합니다.
-
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
-
-
2단계를 반복하고 아래와 같이 프로세스를 채웁니다.
-
컨텍스트: 공기 흐름에 대한 수신을 구현하기 위한 Kubernetes 매니페스트입니다.
-
이름: airflow-namespace
-
유형: Kubernetes 매니페스트
-
아티팩트 소스: 인라인
-
값 필드에 아래 콘텐츠를 붙여 넣습니다.
apiVersion: v1 kind: Namespace metadata: name: airflow
-
-
2단계를 반복하고 아래와 같이 프로세스를 채웁니다.
- 컨텍스트: Helm Chart 레지스트리 위치입니다.
- 이름: helm-airflow
- 유형: Helm Chart
- Helm 차트 URL: oci://gru.ocir.io/yournamespace/airflow-helm/airflow
- 버전: 8.6.1
참고: OCI 레지스트리에서 yournamespace를 대체해야 합니다. 이 레지스트리는 이 자습서의 이전 단계에서 생성되었습니다.
-
2단계를 반복하고 아래와 같이 프로세스를 채웁니다.
-
컨텍스트: 공기 흐름 배치에 대한 Helm 값입니다.
-
이름: values-airflow-helm
-
유형: 일반 아티팩트
-
아티팩트 소스: 인라인
-
값 필드에 아래 콘텐츠를 붙여 넣습니다. 그러면 새 노드 풀에 강제로 배치됩니다.
nodeSelector: name: extra_workload
-
이 시점에서는 다음 아티팩트가 있어야 합니다.
작업 2: 공기 흐름에 대한 DevOps 빌드 파이프라인 생성
저장소에 build_spec.yaml
파일만 있는 코드는 없습니다. Apache Airflow에 공식 Helm 차트를 사용하기 때문입니다.
-
OCI DevOps 프로젝트로 이동하고 코드 저장소를 누른 다음 airflow-helm이라는 저장소를 생성합니다.
-
복제를 누른 다음 저장소
ssh url
를 기록해 둡니다. -
배스천 호스트 셸 터미널로 이동하여 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
작업 3: airflow-helm에 대한 빌드 파이프라인 생성
-
DevOps 프로젝트로 이동하고 파이프라인 작성을 누른 다음 빌드 파이프라인 생성을 누릅니다.
-
새 단계 추가를 누르고 관리형 빌드 유형을 선택합니다.
-
기본 코드 저장소를 선택한 다음 airflow-helm을 선택합니다.
-
이 공기 흐름 파이프라인에 필요한 저장소 암호를 수집합니다.
-
Oracle 클라우드 콘솔에서 ID 및 보안을 누르고 저장소를 누른 다음 저장소를 선택합니다.
-
이 자습서의 이전 단계에서 생성한 OCIRUser 및 OCIRToken 암호의 OCID를 가져옵니다.
-
-
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"입니다.
-
파이프라인 빌드 탭을 누른 다음 수동 실행 시작을 눌러 빌드 파이프라인을 수동으로 실행합니다.
작업 4: airflow-helm에 대한 배치 파이프라인 생성
-
DevOps 프로젝트로 이동하고 배치 파이프라인"을 누른 다음 airflow-helm-deploy라는 새 파이프라인을 생성합니다.
-
OKE에서 새 네임스페이스를 생성하려면 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다.
-
OKE에서 공기 흐름을 설치할 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다.
-
OKE에서 공기 흐름에 대한 수신을 생성하려면 새 단계를 생성하고 Kubernetes 클러스터에 매니페스트 적용을 선택합니다. 외부 OKE에서 마이크로서비스에 액세스하기 위해 수신기 컨트롤러를 설정했으므로 공기 흐름에 대해서도 설정해야 합니다.
-
공기 흐름에 대한 빌드 파이프라인을 업데이트하고 배치에 트리거를 추가합니다. 빌드 파이프라인이 완료된 후 자동으로 배치를 시작하려면 airflow-helm 빌드 파이프라인에 트리거를 추가해야 합니다.
이제 빌드 파이프라인은 다음과 같아야 합니다.
작업 5: go-microservice 매개변수 구성
이제 Airflow에 대해 최근에 생성된 빌드 파이프라인을 트리거할 수 있도록 go-microservice를 구성해야 합니다.
-
DevOps 프로젝트로 이동하여 파이프라인 작성을 누르고 airflow-helm 빌드 파이프라인에 대한 OCID를 기록해 둡니다.
-
Oracle 클라우드 콘솔에서 개발자 서비스를 누르고, 리소스 관리자에서 스택을 누르고, CLI 추가 노드 스택을 선택하고, OCID를 기록해 둡니다.
-
go-microservice 코드 내에서 변수를 설정합니다.
참고: go-microservices는 OCI 리소스와 상호 작용하는 코드입니다. 방금 공기 흐름을 위한 빌드 파이프라인을 생성했으므로 마이크로서비스가 호출해야 하는 빌드 파이프라인을 인식하도록 해야 합니다. 이를 위해 OKE의 컨테이너 내부에 삽입될 configmap 값에 대해 몇 가지 변경 작업을 수행합니다.
-
OCI 코드 저장소에 대한 go-microservice SSH URL을 가져옵니다.
-
배스천 점프박스 셸 콘솔을 열고 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
-
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
-
이제 코드 저장소에 변경 사항을 푸시해야 합니다.
git add . git commit -m "added new variables" git push
-
-
DevOps 프로젝트로 이동하여 파이프라인 작성을 선택하고 go-microservice-pipeline을 누릅니다.
-
go-microservice에 대한 빌드 파이프라인을 다시 실행하고 구성 맵에 대한 변경사항이 적용되고 실행 중인 컨테이너 내에 삽입되도록 하려면 수동 실행 시작을 누릅니다.
-
그런 다음 이 빌드 파이프라인에 의해 트리거된 배치 파이프라인을 확인합니다.
-
이제 go-microservice를 사용할 수 있습니다!
다음 단계
이 학습 경로에서 다음 자습서를 진행하려면 여기를 클릭하십시오.
관련 링크
승인
- 작성자 - Joao Tarla(Oracle LAD A-Team 솔루션 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Create OCI DevOps pipelines for Apache Airflow and deploy it using Helm
F79811-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.