🎯 課程目標___HTMLTAG_66__HTMLTAG_67___了解命名空間作為 Kubernetes 叢集中的資源分區機制。如何設定資源配額和限制範圍來控制每個命名空間的資源。多租戶最佳實務。
1。什麼是命名空間?
Namespace 提供 Kubernetes 資源 name 範圍(scope)。名為 nginx 的兩個部署可以存在於兩個不同的命名空間中而不會發生衝突。
允許的命名空間:
-
___HTMLTAG_80__HTMLTAG_81___隔離:單獨的環境(開發、登台、生產)或團隊(團隊 a、團隊 b)
___HTMLTAG_84__HTMLTAG_85___資源配額:每個命名空間的資源限制
___HTMLTAG_88__HTMLTAG_89___RBAC 範圍:每個命名空間的權限
___HTMLTAG_92__HTMLTAG_93___網路策略:控制命名空間之間的流量
2。預設命名空間
-
___HTMLTAG_100__HTMLTAG_101___default:未指定時的預設命名空間
___HTMLTAG_104__HTMLTAG_105___kube-system:Kubernetes 控制平面的元件(CoreDNS、kube-proxy、metrics-server)
___HTMLTAG_108__HTMLTAG_109___kube-public:所有使用者都可讀,即使未經身份驗證。包含群集資訊
___HTMLTAG_112__HTMLTAG_113___kube-node-lease:節點心跳租約 — 提高節點故障偵測的效能
3。建立和管理命名空間
___程式碼區塊_1___4。使用命名空間
___程式碼區塊_2___5。資源配額
ResourceQuota 限制命名空間中允許的資源總量。
___程式碼區塊_3___ ___程式碼區塊_4___6。限制範圍
LimitRange 設定命名空間中每個容器的預設請求/限制和最小/最大。如果容器未宣告資源,LimitRange 會自動套用預設值。
___程式碼區塊_5___7。每個命名空間的 RBAC
___程式碼區塊_6___8。跨命名空間通訊
___程式碼區塊_7___9。命名空間範圍與叢集範圍
並非所有資源都有命名空間:
-
___HTMLTAG_138__HTMLTAG_139___命名空間:Pod、部署、服務、ConfigMap、秘密、PVC、角色、RoleBindings
___HTMLTAG_142__HTMLTAG_143___叢集範圍:節點、持久磁碟區、ClusterRole、ClusterRoleBindings、命名空間、StorageClasses
10。多租戶最佳實務
-
___HTMLTAG_150__HTMLTAG_151___每個團隊與環境的命名空間:
team-a-prod、team-a-s、team-a-s、team-a-s___HTing__HTTAG_1156___ 團隊-b-產品___HTMLTAG_158__HTMLTAG_159___
___HTMLTAG_160__HTMLTAG_161___總是設定ResourceQuota:防止一個團隊佔用所有叢集資源
___HTMLTAG_164__HTMLTAG_165___使用LimitRange:確保容器始終具有資源限制
___HTMLTAG_168__HTMLTAG_169___一致性標籤:團隊、環境、_HTML
___HTMLTAG_178__HTMLTAG_179___分層命名空間控制器 (HNC):在樹中組織命名空間,從父級繼承策略
___程式碼區塊_9___
摘要
- 命名空間 = 資源的名稱範圍與隔離
- 4 個預設命名空間:default、kube-system、kube-public、kube-node-lease
- ResourceQuota:限制每個命名空間的總資源__HTMLTAG_191___
- LimitRange:每個容器的預設值和最小/最大__HTMLTAG_193___
- 最佳實務:每個環境每個團隊的命名空間 + ResourceQuota + LimitRange