這個系列是寫給誰的

你會 k8s,被交辦要評估或導入一套 AI 平台。

你大概是這個狀況:主管說「我們也要有 AI 平台」,或是資料科學家說 「我需要 GPU」,然後這件事落到你身上。你打開 Red Hat 的文件, 看到 KServe、Kubeflow、ModelMesh、TrustyAI、Kueue、Ray、Feast—— 每一個都有自己的一頁文件,但沒有一頁告訴你這些東西彼此是什麼關係。

這個系列補的就是那一頁。

這不是 ML 教學。 我不會講 Transformer 怎麼運作、loss 怎麼算。 講的是:這些工具各做什麼、什麼時候用哪一個、怎麼確認它真的在做事、 以及上線前該問哪些問題。


為什麼是 OpenShift AI

不是因為它最好,是因為很多企業已經有 OpenShift 了

在銀行、保險、醫療這類環境,「再導入一套新平台」的成本不只是授權費, 是資安評估、網路開通、營運交接、教育訓練。而如果 AI 平台是既有 OpenShift 上的一個 operator,這些成本大部分已經付過了。

所以問題常常不是「哪個 MLOps 平台最好」,而是 「我們手上這套能不能撐住」

中文世界寫這個題目的人非常少。我搜過,OpenShift 本身有人寫, MLOps 有人寫,OpenShift AI 幾乎沒有,有的也停在 2.x。 而 3.x 跟 2.x 的差別大到照舊教學做會直接卡住——這件事我 Day 23 會專門講。


我用什麼環境寫

一台筆電。 沒有資料中心,沒有 GPU 叢集。

  • OpenShift Local(CRC)2.63.0,OpenShift 4.22.7,單節點
  • Open Data Hub 3.5.0(RHOAI 3.x 的上游開源版)
  • 13 vCPU / 40 GiB RAM / 120 GB disk

為什麼用 ODH 不用 RHOAI:ODH 是上游,任何人都能裝、不用訂閱。 兩者的 CRD、元件、行為絕大部分相同——差別在 namespace 名稱、 支援範圍、和部分商業元件。

選 ODH 對我還有一個好處:它整台都打得開。operator 怎麼裝、CRD 長什麼樣、 元件之間怎麼接、壞掉時 log 寫什麼,我都能自己翻到底——這 30 天寫得出細節,是因為這個。

說白一點,這 30 天做的就是一件事:在一套 OpenShift 上用 ODH,把落地評估走完一遍。 要評估什麼、裝起來長什麼樣、模型怎麼上線、上線前該有哪些門、驗收清單怎麼寫—— 全部在這套環境上跑完。要不要買商業支援是另一個決定, 但那個決定得先知道這套東西做得到哪裡

差異我只標我確定的,例如 namespace(opendatahub vs redhat-ods-applications)—— 那種會讓你照抄指令直接失敗的。商業版獨有的那幾樣我還沒摸到,摸到了再回來補

這也表示:這個系列裡的每一條指令你都可以自己跑一次。 不需要跟公司借環境,不需要等採購。

用到的 YAML、Containerfile 與腳本都在這裡,可以直接拿去改: github.com/ryanGTR/openshift-ai-30days (README 有 Day 對照表;主機名是佔位符,跑一次 set-lab-host.sh 換成你自己的)

⚠️ 反過來的限制也要說清楚:單節點筆電驗不出多節點的東西—— 排程、高可用、跨節點網路、真實負載下的表現,我都碰不到。 這個系列能給你的是「這東西怎麼用、會怎麼壞」, 不是「這套架構在你們的規模下撐不撐得住」


三十天怎麼走

Day 在做什麼
1–5 認識平台:全景圖、要不要用、裝機、總開關
6–13 八個核心工具:一天一個,各講怎麼用
14–18 一條完整的路:從資料到上線再到換版
19–24 企業環境的現實:離線、registry、權限、資源規劃
25–30 驗收與治理:怎麼證明它真的在運作

第四部和第五部是我覺得最缺的兩塊。

官方文件教你怎麼做,但不太處理「你們的環境連不到外網」、 「registry 是內部的」、「這個要送資安審」這些事。 而第五部——怎麼驗收——幾乎沒有人寫, 偏偏被交辦的人最後要交的就是那份東西。


我會怎麼寫

每一篇都是同樣六段:

  1. 這是什麼、解決什麼問題
  2. 什麼時候你會用到(也會講什麼時候不需要)
  3. 前置條件
  4. 動手做——每一步附「怎麼驗證這一步成功了」
  5. 怎麼確認做對了
  6. 常見問題

第 4 和第 5 段是重點。我不會只給你「照著打」的指令, 每一步都會附上「打完之後你該看到什麼」, 因為在這套系統上,指令成功執行和事情真的發生,經常是兩回事

這件事我踩過很多次,多到我另外寫了一整個系列在講。 那個系列偏戰報,這個系列偏教學——這裡遇到坑我會兩三行帶過, 想深入的連過去看。


一個先講清楚的界線

我在金融業做 IT,但這個系列裡沒有一個字是我公司的做法

所有內容都來自我自己筆電上的 lab。工具版本、指令輸出、 遇到的問題,全部是在那台機器上發生的,也全部可以重跑。

我也不會假裝什麼都懂。 三十篇裡一定有我說不清楚的地方, 那些我會明講「這個我沒驗過」,而不是含糊帶過。 如果你發現我寫錯了,留言告訴我,我會改。


明天

Day 2 是全景圖:OpenShift AI 上到底有哪些東西、 它們對應到 MLOps 流程的哪一步、每一步的關鍵指標是什麼。

如果你只讀一篇,讀那篇。


你現在卡在哪一步?評估、裝機、還是已經裝好了但不知道下一步?

🧪 這篇的實驗環境與 lab 檔案(最後更新 2026-08-30)

叢集

  • CRC 2.63.0 · OpenShift 4.22.7 · Kubernetes v1.35.6
  • 單節點:13 vCPU / 40 GiB RAM / 120 GB disk
  • 宿主:Framework Laptop 16(Ryzen AI 7 350 · 8C/16T · 64 GB RAM · 1 TB NVMe · RTX 5070 顯卡模組)
  • ⚠️ 叢集內看不到 GPU(CRC 是 VM,RTX 5070 未 passthrough)

Operator

  • opendatahub-operator.v3.5.0 ← 即 RHOAI 3.x 的上游開源版
  • cert-manager-operator.v1.20.0(3.x 的必要相依;2.x 不需要)
  • openshift-pipelines-operator-rh.v1.23.2openshift-gitops-operator.v1.21.3

DataScienceCluster 開啟的元件

  • kserveaipipelinesdashboardworkbenchesmodelregistrykueue(Unmanaged)
  • 其餘(raytrustyaifeastaigateway…)為 Removed

叢集外的依賴(跑在宿主的 podman 上,crc start 不會帶起來)

  • Harbor v2.15.2(私有 registry)· MinIO(S3)

模型端

  • Python 3.12.13 · PyTorch 2.11.0+cu128 · FastAPI + uvicorn · prometheus-client

lab 檔案

⚠️ ODH ≠ RHOAI:元件同源,但 namespace 與部分名稱不同 (我這裡是 opendatahub,商用版是 redhat-ods-* 那一套)。 指令的邏輯可以照用,字串要自己對一次。