K8S的組件梳理


K8S:

master組件:

1. apiserver: 提供了資源操作的唯一入口,並提供認證、授權、訪問控制、API 注冊和發現等機制;發往集群的所有rest操作命令的接入點,並負責接收、校驗並響應所有的rest請求,是整個集群的網關。

 

2.controller manager:負責維護集群的狀態,控制器完成的功能主要包括生命周期功能和api業務邏輯,具體如下:

  生命周期功能:包括namespace創建和生命周期、event垃圾回收、pod終止相關的垃圾回收、級聯垃圾回收及node垃圾回收等

  api業務邏輯:例如,由replicaset執行的pod擴展等。

3.scheduler:負責資源的調度,按照預定的調度策略將 Pod 調度到相應的機器上

4.etcd(cluster state store):提供分布式鍵值數據存儲,保存了整個集群的狀態;可用於服務發現、共享配置以及一致性保障。

node組件:

1.kubelet :kubelet是運行於工作節點之上的守護進程,是node的核心代理程序,它從apiserver接收關於pod對象的配置信息並確保它們處於期望的狀態(desired state,也是目標狀態)。kubelet會在apiserver上注冊當前工作節點,定期向master匯報節點資源使用情況,並通過cadvisor監控容器和節點的資源占用狀況。

2. container runtime(docker,rkt):每個node都要提供一個容器運行時環境,它負責下載鏡像並運行容器。

3.kube-proxy:負責為 Service 提供 cluster 內部的服務發現和負載均衡;它能夠按需為service資源對象生成iptables或ipvs規則,從而捕獲訪問當前service的clusterip的流量並將其轉發至正確的后端pod對象。

 

額外插件add-ons:

1.kubedns:在k8s集群中調度運行提供dns服務的pod,同一集群中的其他pod可使用此dns服務器解決主機名

2.dashboard:kubernetes集群的全部功能都要基於web的UI來管理集群中的應用甚至是集群自身。

3.prometheus: 新版本的k8s中,其功能會逐漸由prometheus結合其他組件所取代。

4.ingress controller(nginx,envoy,haproxy):  service是一種工作於傳統層的負載均衡器,而ingress是在應用層實現的http(s)負載均衡機制。

 

一些額外的知識:

1.資源清單yaml的定義:

   kind:Endpoints,deployment,service, deployment  ,StatefullSet, Job 等  https://blog.csdn.net/zhou164200/article/details/84590720

2.容器倉庫,容器的打包與下載

3.網絡模式:4種網絡模式(bridge,host,none,container)  ,集群內部的路由SVC( service)

4.存儲:PV(分布式儲存nfs),PVC,本地儲存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM