TrueNAS Scale 24.10 新版本心得

由24.04至24.10版本算是TrueNAS Scale一次大型更新(具體內容可以參考官方資料),最主要的更新為將App後台由Kubernetes更改為Docker。
若想有要升級注意從24.04升級至24.10後無法降級,更新後若降回24.04等舊版本會導致存儲池報錯等問題(無升級zfs版本也會有相同問題)。
官方在於App的部分有自動移植功能(舊版系統的App會自動安裝到新版系統上),若原本使用TrueNas Scale官方App則將自動移植,但若使用TrueChart則無法自動移植(系統更新為24.10後會消失),還請留意做好備份,以下為一些更新後一些心得。

筆者撰寫此文章時使用:ElectricEel-24.10.0.2 為相對較初期的版本。

儀表板(Dashboard)

儀表板相較先前版本可以自訂的面板較多,得以將單一面板分開顯示最多4種不同資訊。

單一面板
客製化顯示4種不同資訊
自訂小格內資訊

由於可以顯示的資訊並無新增,因此本功能目前仍然沒有很大的用處,且小型面板目前無法提供關鍵資訊給使用者。

資料集(Dataset)

資料集部分目前只有圖案帶來了改變,主要為資料結構上的改變。
由於App系統更改後台,資料由之前ix-applications和Appdata(openEBS)等等的資料集,已經廢棄,全部的App資料和映像全部遷移至/mnt/.ix-apps/路徑。

注意:若原先有使用TrueNAS官方App,請務必於App中選擇存儲池後讓系統完成App自動移植再刪除廢棄資料集(ix-applications和Appdata)。
(筆者建議可以將資料集暫存一週後再刪除,確保沒有誤刪寶貴資料)

圖標更新

App(本次最大更新處)

本次更新中最大的亮點,App後台由Kubernetes更改為Docker compose,以下為筆者整理的一些重點:

自動移植來自舊版本App

此功能十分貼心,第一次啟動新版本系統時,系統會自動將TrueNAS官方安裝的App自動移植到新版本的App中,無需要用戶手動設定,詳細自動移植準備工作可以參考官方文章。因筆者只有一個TrueNAS官方App需要移植,其他都是無法被移植的App,因此在自動移植過程中沒有遇到任何問題,十分方便。

第三方App(如:TrueChart)則無法自動移植,升級後所有第三方App都會消失,若先前使用TrueChart的用戶一定要注意。

後端由Kubernetes更改為Docker

本次更新的最大重點,若您為TrueChart使用者,您目前有兩條路可以供選擇:

  • 繼續追隨TrueChart腳步:使用虛擬機執行安裝Talos Linux,搭配clustertool自行搭建Kubernetes環境。
  • 放棄TrueChart,開始學習Docker(或只使用官方App)。
Kubernetes和Docker有什麼差別呢?

(以下提供筆者的粗淺理解)
主要為Kubernetes可以自動管理多台機器中的容器並做到高可用性(high availability)。其主要使用Helm Chart來管理,TrueChart團隊則為極力於開發Kubernetes使用的Chart支開發團隊(類似於管理compose.yaml檔案,使用者僅需更新Chart即可完成對App的維護),使得使用者得以方便的將App部署於TrueNAS中。容器部分使用的依然為大家較為熟悉的Docker Image,因此兩系統(Kubernetes和Docker)中還是保有一定的相容性。

後台改為Docker compose後使用者將有較大的自由度,可以於Docker hub或Linux Server等等網站,尋找想要使用的資源複製貼上docker run指令亦或是compose.yaml檔案即可快速部署各種TrueNAS官方沒有提供的服務,對於會使用Docker的使用者而言此更新無非是一個大改進!

第三方App

TrueNAS對於第三方App的支援方式也有所不同,舊版本可直接新增第三方提供的軟體源安裝第三方App,目前則可以直接使用網路上提供的docker run指令和compose.yaml檔案。以下則為詳細的更新內容:

移除新增自訂軟體源功能

24.10版本後就不能像之前一樣新增TrueChart等第三方軟體源,僅能使用官方提供的App。

關於Catalog的部分完全消失

TrueNAS官方軟體源提供之App數量甚少,且App設定項侷限,使用上窒礙難行(懷念TrueChart)。目前筆者大部分App皆為的第三方App,第三方App目前有三種部署方式:

  • Docker run指令,快速部署容器,用完即可刪除
  • compose.yaml,使用TrueNAS GUI方式填寫
  • compose.yaml,直接使用「install via YAML」,貼上compose.yaml部署

Docker run指令

Docker最為經典的使用方式,可以快速啟動App進行測試,也方便於使用完成後直接移除,若要長期使用和管理建議使用compose.yaml方式。
以下將以部署openspeedtest為範例:

直接開啟TrueNAS Scale的內建Shell(選單路徑System > Shell)

直接貼上官方提供的docker run指令(注意需要使用sudo執行):

sudo docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest

輸入管理員密碼後稍待出現一串Sha256,即表示成功部署openspeedtest!

開啟App方式需要於瀏覽器輸入 http://truenas-ip:3000 打開App。(truenas-ip為TrueNAS控制台的IP位置)
進入App畫面則可確認部署成功!

透過GUI方式安裝自定App

在Discover App中點選Custom App即可開始安裝自訂App:

於Image Repository填寫要使用的Docker image(可以於Docker hub尋找),以下使用openspeedtest示範:

再來到下方network設定App需要使用之埠號(port)

(選填)Portal選項可使自訂App和官方App同樣有WebUI按鈕,可直接連結至該App

接下來需要等待安裝完成,Docker下載鏡像和啟動容器將於景前執行,不同於Kubernetes將於背景下載映像。
Failed ‘up’ action錯誤?)

安裝成功後和之前版本一樣,顯示Running就代表安裝完成,可以打開看看!

若有設定Portal即可直接點選webUI打開App;若無則需要於瀏覽器輸入http://truenas-ip:3000打開App。(truenas-ip為TrueNAS控制台的IP位置)

打開有看到App的畫面就代表安裝成功了!

使用YAML方式安裝

在Discover App中點選Custom App右方三個點,再點選install via YAML。

點開後就只有兩個欄位。

尋找想使用的Docker image(可以於Docker hub尋找),直接將docker-compose程式碼貼上即可,注意不要貼成docker run指令,貼上後點選「Save」即可安裝。

接下來需要等待安裝完成,Docker下載鏡像和啟動容器將於景前執行,不同於Kubernetes將於背景下載映像。
Failed ‘up’ action錯誤?)

安裝成功後和之前版本一樣,顯示Running就代表安裝完成,可以打開看看!

透過YAML安裝無法設定Portal,開啟App方式需要於瀏覽器輸入http://truenas-ip:3000打開App。(truenas-ip為TrueNAS控制台的IP位置)
打開有看到App的畫面就代表安裝成功了!

已知問題

官方App設定過少

TrueNAS本身提供的官方App從先前版本開始就已屈指可數(因此許多人選擇使用TrueChart),且每個App提供的設定選項也十分侷限。

  • 缺少自行選擇Docker network(目前僅能使用Default network或是Host network),若有設定反向代理的需求將窒礙難行。
  • 並非每一款App皆可以設定Docker Label,使設定Container時較為侷限。
  • 基本上App僅能直接安裝,無法執行更深度的客製化。
官方Portainer安裝畫面

App無法有效管理

若要解決上方提到的問題,自行安裝Docker hub上提供的大量資源,目前版本使用compose.yaml的方式安裝才能感受Docker帶來的強大優勢。
但compose.yaml僅能提供文字編輯的方式安裝,對初心者而言並不友好。且若使用UI內建的「install via YAML」安裝App,官方介面會顯示白色方塊icon不便於辨認,也無法手動設定Portal便於啟動APP。

關於管理安裝App之解決方案:

  • 如同筆者,完全使用UI內建「install via YAML」,此方案安裝之App皆可於TrueNAS Scale控制面板App功能中確認,點選Edit也可以方便編輯YAML,但部分管理仍需要使用CLI或是portainer輔助。
  • 使用Portainer或Dockge等等App進行管理。
  • 若十分熟悉CLI,可完全使用CLI管理(自行編寫compose.yaml並使用compose up指令)
24.04版本App
24.10版本App

Failed ‘up’ action錯誤

若遇到安裝App時出現此意義不明之錯誤訊息,可於shell中輸入sudo cat /var/log/app_lifecycle.log以確認docker通知的錯誤訊息。

輸入後即可確認Docker錯誤訊息(此處錯誤為名稱重複)即可處理導致錯誤之問題。

目前可能為剛更新版本,後續應該將Docker log直接安裝時顯示,既可告知使用者真正的進度也可以隨時確認錯誤。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *