K8s · 入門基礎 · 第 03 課 · · 10min read

K8s 八大核心概念總覽:Pod、Service、Ingress、ConfigMap、Secret、Volume、Deployment、StatefulSet

一次看懂 K8s 最常出現的 8 個名詞。每個都是因為「上一個解決不了」才出現的,用因果鏈串起來最好記。

#Kubernetes #概念 #Pod #Service #Deployment
章節目錄 · 9

第一次看 K8s 文件,被名詞淹沒?

打開 Kubernetes 官方文件,扣除 install / cluster admin 的部分,光是「核心物件」就有 30+ 個名詞。新手第一個反應通常是:

「這個我不用學一年嗎?」

不用。實務上你 80% 的時間只會用到 8 個概念。這篇把這 8 個一次列清楚,用因果鏈串起來最好記

因果鏈:一個解決不了,下一個就出現

K8s 的概念不是隨機堆疊的,是「上一個解決不了的問題」催生下一個。順著這條鏈看:

問題:怎麼跑容器?
 └─► Pod(容器的包裝)

問題:Pod 會掛、IP 會變,怎麼穩定存取?
└─► Service(穩定的入口)

問題:Service 是 IP:Port 醜爆,要域名怎麼辦?
└─► Ingress(HTTP 路由器)

問題:DB 地址寫死在 image 裡,每次改要重 build?
└─► ConfigMap(外部化設定)

問題:密碼放 ConfigMap 是明文,洩漏怎麼辦?
└─► Secret(敏感資料管理)

問題:Pod 重啟資料就消失,DB 怎麼辦?
└─► Volume(資料持久化)

問題:Pod 自己掛了不會自動補,怎辦?
└─► Deployment(管副本 + 自我修復)

問題:DB 每個副本要有獨立身份和儲存,Deployment 不行
└─► StatefulSet(有狀態應用)

每一行都是「前一個工具不夠用」推出下一個。順著這條鏈學,不會迷路

八大概念一句話定義

#概念一句話對照 Docker
1Pod一個或多個容器的包裝,K8s 最小調度單位docker run 一個容器
2Service一組 Pod 的穩定入口,帶負載均衡-p port mapping + DNS
3IngressHTTP/HTTPS 路由器,依域名/路徑分流nginx 反向代理
4ConfigMap設定檔(明文,不放密碼)-e ENV=value
5Secret敏感資料(Base64 編碼,配合 RBAC).env
6Volume資料持久化,掛在 Pod 外docker volume
7Deployment無狀態應用副本管理 + 滾動更新compose --scale
8StatefulSet有狀態應用(DB),固定身份+獨立儲存Docker 沒對應
不要每個都背細節,先背「白話定義」+「Docker 對照」,等實作的時候再補細節。

它們之間怎麼組合?

實際部署一個系統,這 8 個會這樣組起來:

                        外部使用者
                            ↓
                       【 Ingress 】
                       域名/路徑路由
                            ↓
                      【 Service 】
                      穩定 IP + 負載均衡
                            ↓
              ┌─────────────────────────┐
              │     【 Deployment 】      │
              │     管 3 個 Pod 副本      │
              │   ┌──────────────────┐  │
              │   │ Pod  Pod  Pod    │  │
              │   └──┬──────────┬────┘  │
              └──────┼──────────┼───────┘
                     │          │
                【ConfigMap】 【Secret】
                  設定         密碼
                     │          │
                  【Volume】
                  持久化資料

讀法:使用者打 https://app.example.com → Ingress 接到 → 轉給 Service → Service 隨機派給其中一個 Pod → Pod 用 ConfigMap 拿設定、用 Secret 拿密碼、把資料寫到 Volume。

這 8 個概念的「重要性順序」

如果你只能花 1 週學,這是優先順序:

  • Pod(最基礎,所有東西都建立在這上面)

  • Deployment(90% 的應用都用 Deployment 部署)

  • Service(部署完一定要讓人連得到)

  • ConfigMap + Secret(設定管理,幾乎一定會用)

  • Volume(DB / 檔案上傳一定要)

  • Ingress(對外網址,生產環境必備)

  • StatefulSet(DB 才用得到,不急)
  • 前 3 個是核心,懂了就能跑起一個服務。其他 5 個是「碰到再學」,不用一次學完。

    還有哪些「不在這 8 個裡」的常見東西?

    順便把另外幾個常聽到的列出來,不是核心但會遇到

    • Namespace:環境隔離(dev / staging / prod 切開)
    • Node:機器本身(叢集裡每一台實體機/VM)
    • Job / CronJob:跑一次性任務 / 定時任務
    • DaemonSet:每台 Node 一定要跑一份的(log 收集 agent 之類)
    • HPA(Horizontal Pod Autoscaler):自動擴縮容
    • RBAC:權限管理
    • PV / PVC:Volume 的「實體」與「申請書」
    這些後面的文章會逐一展開。現在記得名字就好

    學的時候千萬不要做的事

  • 不要一口氣把 30 個概念全背完 → 會忘光

  • 不要直接看 Helm chart → Helm 是把上面這些東西打包,沒看過原型直接看打包的會更亂

  • 不要跳過 Pod 直接學 Service → 不懂 Pod 連 Service 都看不懂

  • 不要在心裡幻想架構,要動手寫 YAML → 概念看 10 篇文章不如實作 1 次
  • 重點整理

    • K8s 概念多但有清楚因果鏈:每個都是前一個解決不了才出現
    • 8 個核心概念:Pod / Service / Ingress / ConfigMap / Secret / Volume / Deployment / StatefulSet
    • 學習優先順序:Pod → Deployment → Service 是最重要的三個
    • Docker 對照表幫助記憶——80% 的概念在 Docker 都有對應或類似的東西

    下一步

    知道有哪 8 個了,下一篇先看 K8s 整體架構:Master 和 Worker 在做什麼——把這 8 個概念跑在「叢集裡」是怎麼一回事,API Server / Scheduler / Controller / kubelet 各司其職搞清楚。

    📅 下一篇(2026-05-01 已上線)Kubernetes 架構:Master Node 和 Worker Node 在做什麼?
    用「公司組織」比喻講清楚 API Server / Scheduler / Controller / kubelet 各自的職責。
    📚 完整系列總覽K8s 系列教學首頁(共 40 課,按學習路徑順序排)