使用 Bitnami/Discourse 的心得與注意事項

Discourse 是一個現代化的開源論壇軟體,Bitnami 提供的 Docker 鏡像使其在 Kubernetes 或 Docker 環境中的部署更加方便。然而,過程中有一些細節需要特別留意,以下是我的實際使用經驗與解決方法。


1. Persisting 儲存的路徑

Discourse 的 Bitnami 鏡像需要持久化數據來確保論壇的穩定運行,尤其是 PostgreSQL 資料庫的數據存儲。

  • Persisting 儲存路徑
    Bitnami/Discourse 預設將 PostgreSQL 的數據儲存在 /bitnami/postgresql,這是需要持久化的關鍵目錄。
  • 解決方案
    配合 NFS 或其他外部存儲解決方案,可以確保數據的持續性和高可用性。

2. 搭配 NFS Provider

使用 NFS Subdir External Provisioner 是一種高效的方法,能確保 Discourse 的持久化存儲有穩定的後端支持。

  • 優勢
    1. 多個 Pod 可共享相同的存儲(如 Redis 和 PostgreSQL 的數據存儲)。
    2. 容易擴展和管理,支持動態存儲分配。

配置示例
確保 StorageClass 配置與 Discourse 部署的 PVC 配置一致,例如:

persistence:
  enabled: true
  existingClaim: discourse-nfs-claim

3. 解決 SSL 與 Mail Server 問題

在安裝 Discourse 時,如果忽略一些 SSL 或 Mail Server 的配置,可能會出現錯誤,例如:

  • SSL self-cert 錯誤
  • Mail Server 無法正常連線

步驟:配置 CA 憑證

  1. 確保您已擁有 Mail Server(例如 mailcow)的憑證。
  2. 測試 Mail Server 的連線是否正常。

在容器內部使用憑證並更新 CA: 修改 Discourse 容器的 command 來自動更新 CA 憑證:

command:
  - sh
  - -c
  - |
    update-ca-certificates;
    /opt/bitnami/scripts/discourse/entrypoint.sh /opt/bitnami/scripts/discourse/run.sh &
    /opt/bitnami/scripts/discourse/entrypoint.sh /opt/bitnami/scripts/discourse-sidekiq/run.sh

創建 Kubernetes ConfigMap:

kubectl create configmap mail-cert --from-file=/path/to/mailcow-cert.pem

4. SMTP 密碼配置的注意事項

在設置 Discourse 的環境變數時,DISCOURSE_SMTP_PASSWORD 是一個重要參數,用於配置 SMTP 郵件服務器。

  • 常見問題
    如果 SMTP 密碼為純數字,Bitnami/Discourse 可能會將其識別為整數類型,而不是字符串類型,這將導致 Redis 或其他服務出錯。

解決方法
確保 DISCOURSE_SMTP_PASSWORD 包含英文字母。例如:

DISCOURSE_SMTP_PASSWORD: "Password123"

5. 總結

Bitnami/Discourse 是部署 Discourse 的高效解決方案,但在部署過程中需要特別注意以下幾點:

  1. 確保存儲路徑 /bitnami/postgresql 的持久化,可搭配 NFS Provider。
  2. 解決 SSL 和 Mail Server 問題:導入 Mail Server 憑證並更新容器內的 CA 憑證。
  3. 正確配置 SMTP 密碼,避免 Redis 等服務因類型錯誤而出現問題。

使用GPT整理資料

Read more

如何安裝 KubeSphere 以及管理 Workspace 和新增 Label

前言 在 Kubernetes 的世界中,KubeSphere 是一個功能強大的開源容器平台,它不僅讓 Kubernetes 的管理更簡單,還集成了多集群管理、DevOps、微服務治理等功能。本篇文章將教您如何使用 Helm 快速安裝 KubeSphere,並如何通過管理 Workspace 和新增 Label 來實現資源的高效管理。 一、使用 Helm 安裝 KubeSphere 1. 為什麼選擇 Helm 安裝? Helm 是 Kubernetes 中廣泛使用的包管理工具,使用 Helm 安裝 KubeSphere 有以下優點: * 自動化:簡化安裝過程,減少手動配置。 * 靈活性:可以根據需求自定義安裝的模組。 * 版本控制:支持管理和回滾安裝的不同版本。 2. 安裝前準備 在開始安裝之前,請確保以下條件:

By Tim Chiagn

我的經驗

1. 網絡與安全 (Networking & Security) * Fortigate: 防火牆來管理網路環境 * Traefik: 用於 K8s 的 2. 虛擬化與存儲 (Virtualization & Storage) * Esxi: 買了一台server 使用 Esxi 管理 vm * TrueNAS: 還沒有買 NAS 使用這個加減用一下 3. DevOps 與持續交付 (DevOps & CI/CD) * ArgoCD: GitOps 工具,用於 Kubernetes 的應用交付和管理,支持自動化部署和同步。 * KubeSphere:提供完整的 CI/CD 工作流管理、應用部署和 DevOps 整合功能,是 Kubernetes

By Tim Chiagn