Chuyển đến nội dung chính

第 8 課:命名空間

在 Kubernetes 中使用命名空間組織和分離資源。每個命名空間的資源配額、限制範圍、網路策略。多租戶和團隊隔離的最佳實踐。

🔒 DevSecOps — 第 8 課 第 8 課:命名空間

KUBERNETES:從基礎到進階

模組 2:基本 Kubernetes 物件

xdev.asia

🎯 課程目標___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:節點心跳租約 — 提高節點故障偵測的效能
___程式碼區塊_0___

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
___程式碼區塊_8___

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