Pod
- Pod是K8s中最小的單元
- 一組容器的集合
- 共享網絡【一個Pod中的所有容器共享同一網絡】
- 生命周期是短暫的(伺服器重新開機後,就找不到了)
Volume
- 聲明在Pod容器中可通路的檔案目錄
- 可以被挂載到Pod中一個或多個容器指定路徑下
- 支援多種後端存儲抽象【本地存儲、分布式存儲、雲存儲】
Controller
- 確定預期的pod副本數量【ReplicaSet】
- 無狀态應用部署【Depoltment】
-
- 無狀态就是指,不需要依賴于網絡或者ip
- 有狀态應用部署【StatefulSet】
-
- 有狀态需要特定的條件
- 確定所有的node運作同一個pod 【DaemonSet】
- 一次性任務和定時任務【Job和CronJob】
Deployment
- 定義一組Pod副本數目,版本等
- 通過控制器【Controller】維持Pod數目【自動回複失敗的Pod】
- 通過控制器以指定的政策控制版本【滾動更新、復原等】
Service
- 定義一組pod的通路規則
- Pod的負載均衡,提供一個或多個Pod的穩定通路位址
- 支援多種方式【ClusterIP、NodePort、LoadBalancer】
可以用來組合pod,同時對外提供服務
Label
label:标簽,用于對象資源查詢,篩選
Namespace
命名空間,邏輯隔離
- 一個叢集内部的邏輯隔離機制【鑒權、資源】
- 每個資源都屬于一個namespace
- 同一個namespace所有資源不能重複
- 不同namespace可以資源名重複
API
我們通過Kubernetes的API來操作整個叢集
同時我們可以通過 kubectl 、ui、curl 最終發送 http + json/yaml 方式的請求給API Server,然後控制整個K8S叢集,K8S中所有的資源對象都可以采用 yaml 或 json 格式的檔案定義或描述
如下:使用yaml部署一個nginx的pod