- Pod,Service和Deployment的關系
-
Pod:Kubernetes 中最小的部署單元,用于運行容器化應用。
-
Service:提供服務發現和負載均衡,為 Pod 提供穩定的網絡端點,ClusterIP,NodePort,LoadBalance以及ExternalName。
-
Deployment:管理Pod的副本,確保應用的高可用性,并支持滾動更新和回滾。
- K8S的核心組件
-
控制平面(Control Plane)
控制平面負責管理集群的狀態,包括調度、配置和維護。主要組件包括:
-
API Server:
-
作用:提供 RESTful API 接口,用于與集群交互。
-
功能:接收和處理來自用戶的請求,驗證請求并更新 etcd 中的集群狀態。
-
-
etcd:
-
作用:分布式鍵值存儲,用于存儲集群的配置數據和狀態信息。
-
功能:存儲所有集群配置和狀態信息,確保數據的一致性和高可用性。
-
-
Controller Manager:
-
作用:運行各種控制器進程,負責維護集群的狀態。
-
功能:確保集群的實際狀態與期望狀態一致,例如管理 Pod 的創建、刪除和健康檢查。
-
-
Scheduler:
-
作用:負責將 Pod 調度到合適的節點上運行。
-
功能:根據節點的資源使用情況、Pod 的資源需求和策略規則,選擇最佳節點來運行 Pod。
-
-
-
工作節點
-
Kubelet:
-
作用:運行在每個節點上的代理,負責管理節點上的容器。
-
功能:與 API Server 通信,確保容器按照期望狀態運行,管理容器的生命周期。
-
-
Kube-proxy:
-
作用:運行在每個節點上的網絡代理,負責維護網絡規則。
-
功能:實現服務發現和負載均衡,管理 Pod 之間的網絡通信。
-
-
Container Runtime:
-
作用:負責運行容器的底層軟件。
-
功能:支持多種容器運行時,如 Docker、containerd 等。
-
-
- K8S如何進行服務發現
????????服務發現是Kubernetes中用于動態識別和訪問集群內服務的機制。它允許服務在集群中動態地發現和通信,而無需硬編碼IP地址或端口。
核心機制
- Pod的動態性:Pod是短暫的,可以隨時創建或銷毀,其IP地址會動態變化。
- Service的穩定性:Service提供了一個穩定的網絡端點,即使后端的Pod發生變化,Service的端點仍然保持不變。
自動更新
????????Service通過標簽選擇器動態地發現和管理后端的Pod,確保流量始終路由到健康的Pod。
Kubernetes通過Service提供穩定的服務發現機制,使得服務之間的通信變得簡單可靠。Service通過標簽選擇器動態地發現和管理后端的Pod,并提供穩定的網絡端點。通過DNS和環境變量,Pod可以輕松地發現和訪問其他Service,確保系統的高可用性和靈活性。
- 介紹一下Resource Quato
Resource Quota 是 Kubernetes 中用于限制命名空間內資源使用的一種機制。它通過設置資源使用上限,幫助管理員進行資源管理,確保資源的公平分配和使用,避免資源耗盡和浪費。通過合理配置 Resource Quota,可以優化資源分配,降低成本,并確保系統的穩定運行。
-
HPA和VPA的區別
HPA:調整POD副本數量
VPA:調整CPU和內存
- K8S的網絡策略
????????Network Policies 是 Kubernetes 中用于定義 Pod 之間網絡訪問規則的機制。通過限制入站和出站流量,可以實現網絡隔離和流量控制,提高集群的安全性和穩定性。通過合理配置 Network Policies,可以保護服務免受未經授權的訪問和惡意流量的影響。
- K8S如何處理狀態化應用?
-
穩定的網絡標識符:每個 Pod 都有一個唯一的、穩定的網絡標識符,POD重啟不變(如
web-0
、web-1
) -
持久化存儲:每個 Pod 都有自己的持久化存儲卷(PersistentVolume),確保數據不會丟失,POD重啟不受影響;
-
有序的部署和擴展:Pod 按順序創建和刪除,確保數據一致性;
- 簡述K8S如何將一個POD調度到一個節點上的。
????????調度器的決策基于資源可用性、節點選擇器、親和性規則、污點與容忍等因素。通過合理配置調度策略,可以優化集群的資源利用率和應用性能。
- K8S的親和性和反親和性
-
Pod 親和性:確保 Pod 與特定的 Pod 或節點一起運行,用于提高性能或滿足特定部署需求。
-
Pod 反親和性:確保 Pod 不與特定的 Pod 或節點一起運行,用于提高高可用性和避免資源爭搶。
????????通過合理配置親和性和反親和性規則,可以優化 Pod 的調度策略,滿足不同的部署需求和性能要求。