目錄
物件管理
參考資料
物件命名與id
命名規範:
命名空間(namespace)
labels(標籤)
annotations(注釋)
label與annotation的最佳實踐
k8s物件管理方式分3類,
型別操作物件
適用環境
優點缺點
命令式物件管理
活動物件
開發、測試
簡單易學
只能操作活動物件。無法審計、跟蹤
命令式物件配置
單個檔案
生產配置檔案可以使用版本控制,可以審計、跟蹤
專案大時,配置檔案多,操作麻煩。只能通過配置檔案更新活動物件
宣告式物件配置
目錄生產
支援目錄操作
意外情況下難以除錯。可以直接更改活動物件並保留資訊
【參考文件】:
【參考部落格】:
同乙個集群,同型別的資源,資源名不能相同;
同乙個集群,不同型別的資源,資源名可以相同;
同乙個集群,不同資源其資源的uid一定是唯一的。
遵循rfc 1123
k8s能將物理機集群化成多個虛擬集群,不同專案、不同團隊可使用不同的虛擬集群。這個虛擬集群就是命名空間(namespace)。同乙個命名空間內的資源名必須要保持唯一。命名空間是集群資源劃分的一種方式(通過resource quota劃分)。
k8s預設建立4類命名空間:
不是所有資源物件都有歸屬的namespace,想namespace資源本身就不屬於任何namespace。
檢視哪些資源屬於namespace,哪些不屬於namespace:
# in a namespace
kubectl api-resources --namespaced=true
# not in a namespace
kubectl api-resources --namespaced=false
集群資源劃分:用namespace
namespace內的資源劃分:用label(如用label區分不同版本的 軟體)
label 允許在 kubernetes 資源上附加對於系統或者使用者有意義的標示性屬性,方便對 kubernetes 資源進行分組管理。 這些屬性對不會直接對 kubernetes 核心元件產生語義,不過可能間接地被 kubernetes 核心元件處理產生效果。例如:使用者在 pod 或者 node 上加一些 label,然後配置一些排程策略,kubernetes 的 scheduler 會基於這些 label 資訊進行排程。
labels以「鍵/值」對的形式存在,可以將labels附加在物件上(可以在建立物件時直接編寫label,也可以後期再通過api的方式附加上)。如下:
"metadata":
}
不像name和uuid,label不需要保證唯一性。即不同資源語法上可以有相同的label(實際label的命名,要根據實際意義)。通過label selector(標籤選擇器)可以選擇指定的物件。當前api支援兩種型別的選擇器:
如:
environment = production
tier != frontend
如:
environment in (production, qa)
tier notin (frontend, backend)
partition
!partition
annotations 允許在 kubernetes 資源上附加任意的非標識性元資料,用來記錄資源的一些屬性。這些元資料主要是給工具或者庫來提取資訊,一般不會直接開放給使用者。絕大多數基於 kubernetes 的開源專案都不依賴於 db,完全可以利用 kubernetes 的能力,滿足對 db 的需求。對於需要持久化的資料,除了定義 crd,另一種通用的做法就是將資料儲存在 annotation 中。
由於 annotation 的定位是 kubernetes 資源上附加任意的非標識性元資料,除了在 key 上有跟 label key 完全一樣的限制外,在 value 上沒有任何限制:可長可短,可結構化可非結構化,可包含任意字元。
K8s部署prometheus監控K8s細節
prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...
k8s 多租戶 k8s 基礎介紹
備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...
K8S(二) 核心物件概念
pod pod是最小部署單元,乙個pod有乙個或者多個容器組成,pod中容器共享儲存和網路,在同一臺docker主機上執行。service service乙個應用服務抽象,定義了pod邏輯集合和訪問這個pod集合的策略。service pod集合對外表現是為乙個訪問入口,分配乙個集群ip位址,來自這...