“docker、kubernetes”知識分享
來源:湖北國菱計算機科技有限公司-荊州網站建設-荊州軟件開發-政府網站建設公司
時間:2019-07-22
2019年7月12日湖北國菱公司軟件開發部成員與運維部成員組織學習關于“docker、kubernetes原理及使用” 知識分享會,知識要點如下:
第一點:什么是容器
在同一臺機器上運行的不同的組件需要不同的,可能存在沖突的依賴庫版本,或者其他的不同環境需求。
當一個應用程序僅由較少數量的大組件構成時,完全可以接受每個組件分配專用的虛擬機,以及通過給每個組件提供自己的操作系統實例來隔離他們的環境。但是當這些組件開始變小且數量開始增長時,如果不想浪費硬件資源,又想持續壓低硬件成本,那就不能給每個組件配置一個虛擬機。但是這不僅僅浪費硬件資源,因為每個虛擬機都需要被單獨配置和管理,所以增加虛擬機的數量也就是導致人力資源的浪費,因為這增加系統管理員的工作負擔。
第二點:什么是docker
Docker是一個打包,分發和運行應用程序的平臺。正如我們所說,他允許將你的應用程序和應用程序依賴的整個環境打包在一起。這既可以是一些應用程序需要的庫,也可以是一個被安裝的操作系統所有可用的文件。Docker使的傳輸這個包到一個中央倉庫成為可能,然后這個包就能被分發到任何運行docker的機器上,在哪兒被執行。
Docker三大組件
鏡像:docker鏡像里包含了你打包的應用程序及其所依賴的環境。它包含應用程序可用的文件系統和其他的元數據,如鏡像運行時的可執行文件路徑,
鏡像倉庫:docker鏡像倉庫用于存放docker鏡像,以及促進不同人和不同主機之間共享這些鏡像。當你編譯你的鏡像時,要么可以在編譯它的電腦上運行,要么可以先上傳到一個鏡像倉庫,然后下載到另外一臺電腦上并運行它。某些倉庫是公開的,允許所有人從中拉取鏡像,同時也有一些是私有的,僅部分人和機器可接入。
容器:docker容器通常是一個linux容器,它基于docker鏡像被創建。一個運行中的容器時一個運行在docker主機上進程,但他和主機,以及所有運行在主機上的其他進程都是隔離的。這個進程也是資源受限的,意味著他只能訪問和使用分配給他的資源(cpu,內存等)。
第三點:什么是kubernetes
Kubernetes是一個軟件系統,他允許你在其上很容易地部署和管理容器化的應用。他依賴于Linux容器的特性來運行異構應用,而無須知道這些應用的內部詳情,也不需要手動將這些應用部署到每臺機器。因為這些應用運行在容器里,他們不會影響運行在同一臺服務器上的其他應用,當你是為完全不同的組織機構運行應用時,這是很關鍵的。對于云供應商來說是至關重要的,因為他們在追求高硬件可用率的同搜索時也必須保障所承載應用的完全隔離。
1、Kubernetes集群架構
主節點:它承載著kuberentes控制和管理整個集群系統的控制面板。
工作節點:它們運行用戶實際部署的應用
2、控制面板
控制面板用于控制集群并使它工作。它包含多個組件,組件可以運行在單個主節點或者通過副本分別部署在多個節點以確保高可用性。這些組件是:
Kubernetes API服務器,不和其他控制面板組件都要和它通信
Scheculer,它調度你的應用(為應用的每個可部署組件分配一個工作節點)
Controller Manager,他執行集群級別的功能,如復制組件,持續跟蹤工作節點,處理節點失敗等
Etcd,一個可靠的分布式數據存儲,它能持久化存儲集群配置
3、工作節點
工作節點是運行容器化應用的機器。運行,監控和管理應用服務的任務是由以下組件完成的:
Docker,rtk或其他的容器類型
Kubelet,它與API服務器通信,并管理它所在的節點的容器
Kubernetes service proxy(kube-proxy),它負責組件之間的負載均衡網絡流量
以上就是這次分享會的全部內容了,希望對大家的學習或者工作具有一定的參考學習價值,也希望能給容器小白們一些幫助。