考量的替代方案
此段落描述一些可能的替代方案,以及它們與目前方法的差異
- Docker Compose
-
-
此設定會更精簡,因為它不需要虛擬機器進行設定。
-
在執行真實 Docker 時,Docker Compose 會支援 CPU 限制,但 Podman 不支援。
-
Docker Compose 不支援範本,因此使用不同的 CPU 限制來自訂不同的設定很困難,而 Helm for minikube 提供了此類範本。對於 Grafana 堆疊,有一個良好的可自訂 Helm 範本,而 Docker Compose 沒有這種方式。
決策: 採用 minikube,同時仍保留 Docker Compose 作為臨時測試的最小設定,並為社群提供一個小型解決方案。(由 Alexander Schwartz 於 2022 年 5 月提出)
範圍: Docker Compose 將僅包含 Keycloak 和資料庫,並且不包含監控堆疊,也不會施加任何 CPU 限制。
-
- OpenShift Local (先前稱為 CodeReady Containers)
-
-
它將具有與 Minishift 相同的功能,並且已安裝了 Operator 支援。它可以自動設定(如果開發人員註冊了 Red Hat 帳戶並取得提取密碼)。
-
可以透過標準監控功能/運算子,以及可能透過額外擴充功能來安裝 OpenShift 樣式的監控。另一方面,helm 圖表似乎比 OpenShift 運算子更可設定。
-
Keycloak Java 運算子團隊正在使用 minikube 來測試它,並且可以使用 Shell Script 在幾分鐘內安裝 Operator Hub 功能。這也允許在此設定中於 Minishift 上執行 Keycloak 運算子。
-
OpenShift Local 將始終使用 VM,並且在 CPU 和 RAM 使用量方面會更為重量級。對於社群貢獻者來說,安裝 OpenShift 是一個更大的步驟。從長遠來看,維護 OpenShift 和 minikube 的設定可能會產生更高的維護成本。從頭開始安裝 OpenShift Local 比安裝 Minishift 花費更長的時間,因為 OpenShift 附帶了更多需要下載並啟動其容器的運算子,並且會等待相依性。
-
minikube 有一種機制可以在本機以輕量方式建置容器,並將其提供給正在執行的 minikube 實例。OpenShift 的替代方案是 二進位建置。
決策: 目前先採用 minikube。稍後在需要時,向 Helm 指令碼新增額外的參數化,以部署到 OpenShift(本機或常規)。一旦完成第一個 OpenShift 部署,再重新考慮此決策。(由 Alexander Schwartz 於 2022 年 5 月提出)
-