注意:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代為您雲端環境特定的值。
建立適用於 Apache Airflow 的 OCI DevOps 管線,然後使用 Helm 進行部署
簡介
這是六個部分教學課程系列的五部分,其中顯示如何使用 Golang 微服務 (表示使用 OCI SDK、OCI-CLI、資源管理程式、OCI DevOps 和 Helm) 在 OKE 叢集上部署一組暫時資源,以部署和毀棄 Apache Airflow。
目標
在本教學課程中,您將瞭解如何為 Apache Airflow 建立 OCI DevOps 管線,然後使用 Helm 進行部署。
必要條件
- 第 4/6 部分 - 建立 OCI DevOps 管線以建立並部署 Golang 微服務,完成此學習路徑中的上一個教學課程
作業 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 圖表登錄位置。
- 名稱: helm-airflow
- 類型:Helm Chart
- Helm 圖表 URL:oci://gru.ocir.io/yournamespace/airflow-helm/airflow
- 版本: 8.6.1
注意:請記得從您的 OCI 登錄取代日誌空間。此登錄是建立在此教學課程的較早階段。
-
重複步驟 2 並填寫下列資訊。
-
內容:這是氣流部署的 Helm 值。
-
名稱: values-airflow-helm
-
類型:一般使用者自建物件
-
使用者自建物件來源:內嵌
-
在值欄位中貼上下方的內容。這會強制部署至新的 node-pool。
nodeSelector: name: extra_workload
-
此時,您應該要有下列使用者自建物件。

作業 2:建立氣流的 DevOps 組建管線
儲存庫中沒有任何程式碼,只有 build_spec.yaml 檔案。這是因為我們將使用 Apache Airflow 的官方 Helm 圖表。
-
前往您的 OCI DevOps 專案,按一下程式碼儲存區域,然後建立名為 airflow-helm 的儲存區域。

-
按一下複製,然後記下您的儲存區域
ssh url。
-
請前往堡壘主機 Shell 終端機,下載 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 雲端主控台上,按一下身分識別與安全,然後按一下保存庫,然後選取您的保存庫。
-
取得 OCIRUser 和 OCIRToken 加密密碼的 OCID,這是您在本教學課程前幾個步驟中建立的加密密碼。

-
-
前往您的 DevOps 專案,按一下組建管線,為 airflow-helm 選取您的組建管線,然後按一下參數頁籤,然後新增下列參數:
參數名稱 值 VAULT_HELM_REPO_USER 取得您登錄使用者的保存庫加密密碼 OCID OCIRUser 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 參數
現在我們需要設定 go-microservice ,才能觸發氣流最近建立的組建管線。
-
前往您的 DevOps 專案,按一下組建管線,並記下 airflow-helm 組建管線的 OCID。

-
在 Oracle 雲端主控台上,按一下「資源管理程式」下的開發人員服務,按一下堆疊,選取 CLI 額外節點堆疊,並記下 OCID 。


-
在 go-microservice 代碼內設定變數。
注意:Go-microservices 是一組程式碼,可與 OCI 資源互動。由於我們剛為氣流建立了建構管道,因此需要讓 go-microservices 知道它需要呼叫的建置管道。因此,我們會對 OKE 中容器內插入的組態對應值進行一些變更。
-
取得 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" -
檢查檔案的最後 3 行,並確定您新增了最後兩個變數。
tail -3 chart-go-microservice/configmap/values.yaml
-
現在,我們需要將變更植入程式碼儲存區域:
git add . git commit -m "added new variables" git push
-
-
前往您的 DevOps 專案,選取建立管線,然後按一下 go-microservice-pipeline 。
-
按一下開始手動執行,即可重新執行 go-microservice 的組建管線,並確定組態對應的變更會生效,並且會插入至執行中的容器中。

-
然後檢查此組建管線觸發的部署管線。

-
您的行動微服務現在已準備好上手了!
下一步
若要繼續前往此學習進程的下一個教學課程,請按一下此處。
相關連結
確認
- 作者 - Joao Tarla (Oracle LAD A-Team 解決方案工程師)
其他學習資源
探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。
如需產品文件,請造訪 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.