部署流程
從匯入 OVA 到推送 Sealed Secrets,確保 Argo CD 正確部署最新設定。
本指南整理現場已取得預配置 OVA 後的完整部署流程,說明虛擬機、Kubernetes Secrets 與 GitHub 儲存庫如何搭配,將設定安全地送交 Argo CD。
前置條件
- 已在支援的 Hypervisor 中匯入官方提供的 OVA 並準備啟動。
- 從虛擬機內可存取 Kubernetes 叢集(
kubeconfig就緒且叢集狀態為Ready)。 - 已安裝
kubectl、kubeseal,且叢集中kube-system/sealed-secrets控制器運作正常。 - 取得 GHCR 認證資訊、必要的環境變數,以及建置 TLS 憑證所需的檔案。
流程總覽
- 匯入並啟動 OVA 虛擬機。
- 調整網路設定,確認虛擬機可連線至 GitHub、GHCR 與叢集 API。
- 在虛擬機內封裝密碼與金鑰,更新
values.yaml。 - 推送變更至 GitHub,交由 Argo CD 套用到叢集。
以下章節依序說明各步驟的細節與注意事項。
Step 01. 匯入並驗證 OVA
- 在客戶端 Hypervisor 依原樣匯入 OVA,不需修改虛擬硬體設定。
- 開機後檢查 CPU、RAM 與磁碟容量是否符合專案建議值。
- 更新系統時間並確認已套用最新安全修補(若有內部流程)。
Step 02. 建立穩定的網路連線
- 為虛擬機選擇具有外部連線能力的 VLAN,依需求設定靜態 IP、Gateway 與 DNS。
- 使用
ping github.com、curl -I https://ghcr.io或nc -vz等指令確認必須服務可達。 - 若環境具備 Proxy 或防火牆,記錄開放的連線埠與例外規則,以利後續排障。
Step 03. 封裝敏感資訊並更新 values.yaml
彙整原始值:包含應用程式環境變數、GHCR 認證、TLS 憑證等。
建立暫存 Secret:在目標命名空間以
kubectl create secret ... --dry-run=client -o yaml建立 YAML,例如:kubectl create secret docker-registry ghcr-secret \ --docker-server=ghcr.io \ --docker-username="${GHCR_USERNAME}" \ --docker-password="${GHCR_TOKEN}" \ --docker-email="${GHCR_EMAIL}" \ --namespace <target-namespace> \ --dry-run=client -o yaml > ghcr-secret.yaml透過
kubeseal產生密封結果:kubeseal \ --controller-namespace kube-system \ --controller-name sealed-secrets \ --namespace <target-namespace> \ --format yaml \ -f ghcr-secret.yaml > ghcr-secret-sealed.yaml重複處理所有需要保密的項目,僅將密封後的檔案留存於儲存庫。
更新組態:將密封內容複製至 chart 的
values.yaml對應欄位,例如:secrets: dockerconfigjson: AgB4ncK... tlscrt: AgALJbB... tlskey: AgA21UF...清除暫存檔案:完成後移除未加密的 YAML 或明文憑證,避免外洩。
Step 04. 推送至 GitHub 並確認部署
- 使用
yq或helm template檢查values.yaml語法是否正確。 - 將變更提交至 Argo CD 監控的分支,再推送到遠端儲存庫。
- 在 Argo CD 介面確認 Application 狀態為 Synced 並保持 Healthy。
- 透過
kubectl get pods或應用程式健康檢查,確保新設定成功套用。
若已啟用 argocd-image-updater,記得同步檢視映像版本是否符合預期。
驗證清單
- 虛擬機可正常連線至 GitHub、GHCR 與叢集 API。
-
kube-system/sealed-secrets控制器狀態為Ready。 - 所有密封 Secrets 已更新到
values.yaml並移除暫存明文檔。 - Argo CD Application 顯示 Synced / Healthy。
- 新版 Pod 正常啟動且載入預期的環境變數與憑證。
依循以上步驟,可在確保敏感資訊安全的前提下,快速完成一次部署或更新。