在 Docker desktop 上使用 Kubernetes Helm 部署 Casdoor

image

https://casdoor.org/docs/basic/try-with-helm

簡介

本指南將介紹如何在 Kubernetes 上使用 Helm 部署 Casdoor,以實現輕鬆且可擴展的身份驗證管理。

部屬在 Docker desktop 上

💡 你需要準備的環境

  1. 安裝 Docker Desktop

    • 確保 Docker Desktop 已安裝,並啟用 Kubernetes 。
  2. 啟用 Docker Desktop 內建的 Kubernetes

    • 開啟 Docker Desktop
    • 進入 Settings (設定) → Kubernetes
    • 勾選 Enable Kubernetes,然後點選 Apply & Restart
      image

      打開Kubernetes 開關

image

image

  • 等待 Kubernetes 啟動,確保 kubectl 可以正常運行:
    1
    kubectl get nodes
    如果看到 Ready,表示 Kubernetes 已啟動。

image

  1. 安裝 Helm(如果尚未安裝)
    • 下載 Helm:
      1
      curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
    • 確認安裝成功:
      1
      helm version

🛠️ 使用 Helm 安裝 Casdoor

Docker Desktop Kubernetes 環境中安裝 Casdoor,步驟如下:

1️⃣ 安裝 Casdoor Helm Chart

執行以下指令:

1
helm install casdoor oci://registry-1.docker.io/casbin/casdoor-helm-charts --version v1.702.0

這會在 Kubernetes 叢集內部建立 Casdoor 相關的 Deployment、Service 等資源。

image

2️⃣ 確認 Pod 運行狀態

確保 Casdoor Pod 已成功啟動:

1
kubectl get pods

如果 STATUS 顯示 Running,表示 Casdoor 已經成功部署。

✅ 步驟 1:下載 values.yaml

先下載官方 Helm Chart 的 values.yaml,這樣我們可以直接修改它:

1
helm show values oci://registry-1.docker.io/casbin/casdoor-helm-charts > my-values.yaml

這會產生一個 my-values.yaml 文件,裡面包含所有 Casdoor Helm Chart 的預設設定。


✅ 步驟 2:編輯 my-values.yaml

打開 my-values.yaml,然後根據你的需求修改以下設定:

🔹 1. 設定 PostgreSQL 為資料庫

找到 database 部分,改成:

1
2
3
4
5
6
7
8
database:
driver: postgres
user: casdoor
password: yourpassword # 改成你的真實密碼
host: your-db-host # 改成你的 PostgreSQL 伺服器 IP 或名稱
port: 5432
databaseName: casdoor
sslMode: disable # 如果你的 PostgreSQL 不使用 SSL,可以設為 disable

這樣 Casdoor 會使用 PostgreSQL 作為儲存後端,而不是預設的 sqlite3

image

✅ 步驟 3:使用 values.yaml 來更新 Casdoor

現在,你可以用這個設定檔來部署 Casdoor:

1
helm upgrade casdoor oci://registry-1.docker.io/casbin/casdoor-helm-charts -f my-values.yaml

這樣 Helm 會根據 my-values.yaml 來部署 Casdoor,而不會使用預設值。

image

這邊可以看到有提示

1
2
3
4
5
6
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=casdoor-helm-charts,app.kubernetes.io/instance=casdoor" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT

跟指示執行,這邊可以看到可以訪問 Casdoor

image

image

:::info
這邊使ㄠ用官方預設帳號密碼可以登入
帳號:admin
密碼:123
:::

📌 卸載 Casdoor

如果要移除 Casdoor:

1
helm delete casdoor

如果要刪除 PostgreSQL:

1
helm delete postgres

🎉 結論

你現在已經成功在 Docker Desktop Kubernetes 部署了 Casdoor! 🎉

這篇教學讓你學會:

  • 如何啟用 Docker Desktop Kubernetes
  • 如何用 Helm 安裝 Casdoor
  • 如何連接 PostgreSQL
  • 如何訪問 Casdoor 後台
    希望這篇文章對你有幫助! 🚀