一、容器化技術
1. 容器到底是什麼?
- 容器就像是「獨立的行李箱」,裡面裝著應用程式和它需要的所有環境(像是程式碼、函式庫、設定)。
- 和虛擬機(VM)不同的是,容器不需要完整模擬一台電腦,而是共用底層作業系統,這樣就更輕巧、啟動更快。
2. 為什麼要用容器?
- 一致性高:開發環境和正式環境一樣,就不會發生「我這邊可以跑,線上就壞掉」的情況。
- 啟動快:比起虛擬機,容器幾秒就能啟動。
- 移植性高:你可以在 Windows、Mac、Linux 上都執行一樣的容器。
- 更容易部署與自動化:因為是一包一包的東西,很適合跟 CI/CD 搭配。
二、Kubernetes 是做什麼的?
1. 容器很多怎麼辦?
- 如果你只有幾個容器,手動開、關、搬位置也許還行。但一旦你有成百上千個容器在運作,就不可能靠人力管理了。
- Kubernetes 就是為了解決這個問題而生的。
2. Kubernetes 的角色
Kubernetes 是一個容器編排平台,負責幫你做這些事:

3. 它長什麼樣?
你可以想像 Kubernetes 就像一個工地總監,下面有很多工人(container),你只要說出你要蓋幾間房、長什麼樣,它就幫你自動安排資源、進度、修復失敗的部分。
三、容器化 + Kubernetes 的現實應用

既然容器這麼好用,為什麽不每個服務都使用容器?
1. 容器對系統管理員來說是額外的學習成本
- 比起直接在 VM 上裝個東西跑起來,容器要理解 Docker、映像檔、網路、Volume 等等,有一定的學習曲線。
- 用 Kubernetes 管理容器又是另一個大世界,要懂 YAML、Deployment、Pod、Service 等等。
- 安全性與隔離需求高的場景,例如金融業,仍偏好 VM 因為每個 VM 就像一台獨立的機器,彼此完全隔離。
- 若部署量小(例如內部系統或 PoC),用 VM 就很夠用,不需要容器那套自動化管理。
3.容器還是共用主機資源,有資安風險
- 容器不是完全獨立的,它們共用作業系統核心,理論上容器之間有機會互相影響或被突破(雖然現在技術進步已降低風險)。
- VM 因為有完整模擬硬體與 OS,隔離性更強。
4.監控與除錯更複雜
- 容器啟動快、關得也快,問題可能一閃即逝,不像傳統主機那樣容易找 log。
- Kubernetes 這種動態調度系統,排查問題時也需要額外工具與經驗。
容器與 VM 的混合使用場景
1. 怕被其他應用影響:
想像你住在公寓(容器),大家共用一個大門(作業系統核心)。如果有人亂開門,大家都可能受影響。VM 就像是整棟房子,有自己大門,安全一點。
👉 所以:容器裝在 VM 裡面,比較安心。
2. 很多不同客戶共用同一系統:
有點像一間公司租給不同部門使用,怕大家互相干擾。可以用 VM 把不同客戶隔開,在每個 VM 裡再用容器放應用程式。
👉 這樣就安全又彈性。
3. 有些應用需要特殊環境:
有些舊系統或特別的軟體只能在某種系統版本跑,容器不一定支援,就會先用 VM 搭好環境,再在裡面放容器。
4. 一步步導入新技術:
公司以前都用 VM,現在想慢慢學容器,會先把容器部署在 VM 裡,慢慢轉型,不會一次改太大。
👉 就像老房子裡裝新家電,先用用看。
VM 提供穩定安全的基礎,容器提供彈性快速的部署能力,兩個搭配起來用更實際。