ArgoCD實作

ArgoCD實作

ZONGRU Li
Dec 27, 2021

首先找到安裝解說頁面:

link

先建立namespace:

kubectl create namespace argocd

接著跑第二行指令,執行argo-cd安裝:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

確認一下pod:

大概等一下子才會都running

原始的UI介面的svc元件是:

看看目前該元件的yaml內容:

嘗試簡單點改成nodePort:

先拿到yaml檔:

備份一下:

調整:

回頭繼續看文件有教怎麼登入:

執行指令拿密碼:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
拿到密碼

預設帳號是:admin,所以:

把帳密敲一敲就進到:

以上argocd就準備好了,後面要針對git有些檔案操作

首先建個公開的git repo:

最外層的檔案內容是:

這個只是備份用,實際這個元件要建給Argo,描述對應的git Repo

dev裡面放兩個檔:

實際上提供給Argo的要持續同步的元件是這兩個

準備完成!

另外為了讓argocd先吃到設定用的application.yaml:

所以直接在上面建立該檔案:

跟git那一份一樣內容,寫好儲存

然後直接建立:

此時回到UI畫面一看就發現有東西了!!:

放大一看:

跟git連動中,週期大概3分鐘連動一次

點上面圖進去會看到細節:

看到我在git上面dev裡面定義的devployment跟service元件!!

以上這個application.yaml也可以直接在Argo的UI上建立(參考)

後來發現pod一直建不起來,執行describe看到拉image失敗:

估計是AWS ECR的登入secret已經失效拉~~

參考之前ECR的步驟<...>重建secret:

移除看看會不會重拉

這時候注意,剛剛argocd拉取的deployment

裡面定義的AWS ECR pod是latest版

也就是只有一個restful api:

測試一下:

仔細看hellopig2的打出來結果是404哦!!!

這時候實驗一下把git上面deployment內的image tag換成2:

等待argocd偵測到git異動後,將pod自動重建為新的tagimage:

過幾分鐘看看pod狀態:

理論上這個pod三個redtful api都要有!!!!

確認:

以上即完成argocd 範例!!!

另外我後來想到若是Git Repo有憑證(帳密)等設置

必須要給application.yaml上帶著Credentials這種secret元件資訊才合理

這部分可以看到官網(參考)

但是是否有需要將ArgoCD需要參照的Repo設置需要憑證(帳密)

才能取得desired state的元件

還是透過Git Repo本身設置,將Repo內容公開給Argo

但是修改才需要憑證(帳密)

我覺得很值得討論(˙ω˙)!

參考範例

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet