Kubernetes入門到進階實戰,系統性掌握K8s生產實踐
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
kubernetes,簡稱K8s,是用8代替名字中間的8個字符“ubernete”而成的縮寫。是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。 [1] 傳統的應用部署方式是通過插件或腳本來安裝應用。這樣做的缺點是應用的運行、配置、管理、所有生存周期將與當前操作系統綁定,這樣做并不利于應用的升級更新/回滾等操作,當然也可以通過創建虛擬機的方式來實現某些功能,但是虛擬機非常重,并不利于可移植性。 新的方式是通過部署容器方式實現,每個容器之間互相隔離,每個容器有自己的文件系統 ,容器之間進程不會相互影響,能區分計算資源。相對于虛擬機,容器能快速部署,由于容器與底層設施、機器文件系統解耦的,所以它能在不同云、不同版本操作系統間進行遷移。 容器占用資源少、部署快,每個應用可以被打包成一個容器鏡像,每個應用與容器間成一對一關系也使容器有更大優勢,使用容器可以在build或release 的階段,為應用創建容器鏡像,因為每個應用不需要與其余的應用堆棧組合,也不依賴于生產環境基礎結構,這使得從研發到測試、生產能提供一致環境。類似地,容器比虛擬機輕量、更“透明”,這更便于監控和管理。 外文名:kubernetes 別 名:K8s 目錄 1內容簡介 2產品特點 3產品組件 內容簡介 Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規??缮炜s、應用容器化管理。在生產環境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡。 在Kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理。 產品特點 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud) 可擴展: 模塊化,插件化,可掛載,可組合 自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展 產品組件 1、Master 組件 1.1kube-apiserver 1.2ETCD 1.3kube-controller-manager 1.4cloud-controller-manager 1.5kube-scheduler 1.6插件 addons 1.6.1DNS 1.6.2用戶界面 1.6.3容器資源監測 1.6.4Cluster-level Logging 2、節點(Node)組件 2.1kubelet 2.2kube-proxy 2.3docker 2.4RKT 2.5supervisord 2.6fluentd 本文介紹了Kubernetes集群所需的各種二進制組件。 Master 組件 Master組件提供集群的管理控制中心。 Master組件可以在集群中任何節點上運行。但是為了簡單起見,通常在一臺VM/機器上啟動所有Master組件,并且不會在此VM/機器上運行用戶容器。請參考構建高可用群集以來構建multi-master-VM。 kube-apiserver kube-apiserver用于暴露Kubernetes API。任何的資源請求/調用操作都是通過kube-apiserver提供的接口進行。請參閱構建高可用集群。 ETCD etcd是Kubernetes提供默認的存儲系統,保存所有集群數據,使用時需要為etcd數據提供備份計劃。 kube-controller-manager kube-controller-manager運行管理控制器,它們是集群中處理常規任務的后臺線程。邏輯上,每個控制器是一個單獨的進程,但為了降低復雜性,它們都被編譯成單個二進制文件,并在單個進程中運行。 這些控制器包括: 節點(Node)控制器。 副本(Replication)控制器:負責維護系統中每個副本中的pod。 端點(Endpoints)控制器:填充Endpoints對象(即連接Services&Pods)。 Service Account和Token控制器:為新的Namespace創建默認帳戶訪問API Token。 cloud-controller-manager 云控制器管理器負責與底層云提供商的平臺交互。云控制器管理器是Kubernetes版本1.6中引入的,還是Alpha的功能。 云控制器管理器僅運行云提供商特定的(controller loops)控制器循環??梢酝ㄟ^將--cloud-providerflag設置為external啟動kube-controller-manager ,來禁用控制器循環。 cloud-controller-manager 具體功能: ●節點(Node)控制器 ●路由(Route)控制器 ●Service控制器 ●卷(Volume)控制器 kube-scheduler kube-scheduler監視新創建沒有分配到Node的Pod,為Pod選擇一個Node。 插件 addons 插件(addon)是實現集群pod和Services功能的。Pod由Deployments,ReplicationController等進行管理。Namespace 插件對象是在kube-system Namespace中創建。 DNS 雖然不嚴格要求使用插件,但Kubernetes集群都應該具有集群 DNS。 群集 DNS是一個DNS服務器,能夠為 Kubernetes services提供 DNS記錄。 由Kubernetes啟動的容器自動將這個DNS服務器包含在他們的DNS searches中。 用戶界面 kube-ui提供集群狀態基礎信息查看。 容器資源監測 容器資源監控提供一個UI瀏覽監控數據。 Cluster-level Logging Cluster-level logging,負責保存容器日志,搜索/查看日志。 節點 Node 組件 節點組件運行在Node,提供Kubernetes運行時環境,以及維護Pod。 kubelet kubelet是主要的節點代理,它會監視已分配給節點的pod,具體功能: ●安裝Pod所需的volume。 ●下載Pod的Secrets。 ●Pod中運行的 docker(或experimentally,rkt)容器。 ●定期執行容器健康檢查。 ●Reports the status of the pod back to the rest of the system, by creating amirror podif necessary. ●Reports the status of the node back to the rest of the system. kube-proxy kube-proxy通過在主機上維護網絡規則并執行連接轉發來實現Kubernetes服務抽象。 docker docker用于運行容器。 RKT rkt運行容器,作為docker工具的替代方案。 supervisord supervisord是一個輕量級的監控系統,用于保障kubelet和docker運行。 fluentd fluentd是一個守護進程,可提供cluster-level logging.。[2] 參考資料 1K8s簡介.kubernetes中文社區 [引用日期2018-09-9] 2Kubernetes中文社區 | 中文文檔.Kubernetes中文社區 [引用日期2018-09-5] 該文章在 2024/4/3 14:47:05 編輯過 |
關鍵字查詢
相關文章
正在查詢... |