Linux雲端計算虛擬化-Kubernetes 容器叢集管理系統基礎概念講述
Linux雲端計算虛擬化-Kubernetes 容器叢集管理系統基礎概念講述
1. kubernetes簡介
Kubernetes
是Google開源的容器叢集管理系統,基於 Docker 構建一個容器的排程服務,提供資源排程、均衡容災、服務註冊、動態擴縮容等功能套件。
Kubernetes
是基於docker容器的雲平臺,簡寫為:k8s
OpenStack
是基於kvm虛擬機器雲平臺。
k8s官網:https://kubernetes.io/
2. k8s常見元件介紹
①Master:提供k8s叢集的管理控制中心,可以在叢集中任何節點上執行。通常在一臺VM/機器上啟動所有Master元件,並且不會在此VM/機器上執行使用者容器。
②Api Server:提供介面服務,使用者通過apiserver來管理整個容器叢集平臺。API Server負責和etcd互動(其他元件不會直接操作etcd,只有API Server這麼做),整個kubernetes 叢集的所有的互動都是以API Server為核心的。
- 任何的資源請求/呼叫操作都是通過apiserver提供的介面進行。
- 所有模組之間並不會互相呼叫,而是通過和API Server互動完成自己的那部分工作。
- API Server 提供的驗證和授權保證了整個叢集的安全。
③Scheduler:k8s的排程服務,監視新建立沒有分配到Node的Pod,為Pod選擇一個Node。
④Replication Controllers:Kubernetes 系統中最有用的功能,實現複製多個 Pod 副本,往往一個應用需要多個 Pod 來支撐,並且可以保證其複製的副本數,即使副本所排程分配的宿主機出現異常,通過 Replication Controller 可以保證在其它宿主機啟用同等數量的 Pod。Replication Controller 可以通過 repcon 模板來建立多個 Pod 副本,同樣也可以直接複製已存在 Pod,需要通過 Label selector 來關聯。
⑤minion:真正用來執行容器container的物理機,在k8s中需要多個minion機器來提供運算。
⑥container:容器,用來執行服務和程式。【豌豆】
⑦pod:在k8s系統中,排程的最小顆粒不是容器,而是一個pod,pod是一個可以被建立、銷燬、排程、管理的最小的部署單元,pod可以包括一個或一組容器。【一群鯨魚(docker容器)或豌豆莢】
⑧kube_proxy:埠轉發,相當於lvs-nat模式中的負載排程器。proxy解決了同一宿主機,相同服務埠衝突的問題,提供了對外服務的能力,proxy的後端使用了隨機、輪詢負載均衡演算法。實現 Kubernetes 網路相關內容。
⑨etcd:是kubernetes提供的預設儲存系統。儲存 kubernetes 叢集的所有資料, 可以理解為是 k8s 的資料庫,儲存著 k8s 容器雲平臺中所有節點、pods、網路等資訊。使用時需要為etcd資料提供備份計劃。
⑩controller manager:控制器管理器,是叢集中處理常規任務的後臺執行緒。邏輯上,每個控制器是一個單獨的程式,但為了降低複雜性,它們都被編譯成單個二進位制檔案,並在單個程式中執行。
- 節點(Node)控制器
- 副本(Replication)控制器:負責維護系統中每個副本中的pod。
- 端點(Endpoints)控制器:填充Endpoints物件(即連線Services和Pods)。
- Service Account和Token控制器:為新的Namespace建立預設賬戶訪問API Token
其他概念:
①service:Services 是 Kubernetes 最外圍的單元,通過虛擬一個訪問 IP 及服務埠,可以訪問我們定義好的 Pod 資源,目前的版本是通過 iptables 的 nat 轉發來實現,轉發的目標埠為Kube_proxy 生成的隨機埠。
②lables:用於區分 Pod、Service、Replication Controller 的 key/value 鍵值對,僅使用在Pod、Service、 Replication Controller 之間的關係識別,但對這些單元本身進行操作時得使用 name標籤。
③deployment:用於更新 Pod 和 Replica Set(下一代的 Replication Controller)。可以在 Deployment 物件中只描述你所期望的理想狀態(預期的執行狀態),Deployment 控
制器會將現在的實際狀態轉換成期望的狀態。
④kubelet命令:管理 Pod、Pod 中容器及容器的映象和卷等資訊。
Kubelet 和 Kube-proxy 都執行在 minion 節點上。
⑤cloud-controller-manager:雲控制器管理器,負責與底層雲提供商的平臺互動。在1.6版本引入。
各元件的關係:
①Kubernetes
的架構由一個master
和多個minion
組成,master
通過 api
提供服務,接受kubectl
的請求來排程管理整個叢集。
②Replication controller
定義了需要執行的多個pod
或者容器,如果當前叢集中執行的 pod
或容器達不到配置的數量,replication controller
會排程容器在多個 minion
上執行,保證叢集中的pod
數量。
③service
則定義真實對外提供的服務,一個 service
會對應後端執行的多個 container
。
④Kubernetes
是個管理平臺,minion
上的kube-proxy
擁有提供真實服務公網 IP。客戶端訪問kubernetes
中提供的服務,是直接訪問到kube-proxy
上的。
⑤在 Kubernetes
中 pod
是一個基本單元,一個pod
可以是提供相同功能的多個 container
,這些容器會被部署在同一個 minion
上。minion
是執行Kubelet
中容器的物理機。minion
接受master
的指令建立pod
或者容器。
3. k8s原理持續更新…
相關文章
- 雲端計算導論 # 4 虛擬化
- Linux雲端計算技術學習:虛擬機器基本結構講解Linux虛擬機
- 深入理解計算機系統基礎虛擬記憶體---端到端的地址翻譯計算機記憶體
- 雲端計算基礎
- Linux雲端計算運維知識中,虛擬化都有哪些分類?Linux運維
- 虛擬化有哪些分類?Linux雲端計算技術及應用Linux
- Linux雲端計算-02_CentOS Linux 7.X系統管理LinuxCentOS
- 容器化|自建 MySQL 叢集遷移到 KubernetesMySql
- 雲端計算虛擬化的優劣勢有哪些?
- 雲端計算開發學習教程,雲端計算基礎架構實現講解架構
- 簡述Kubernetes叢集聯邦
- 雲端計算基礎-0
- Linux雲端計算-03_必備基礎命令Linux
- 容器化 | 在 Kubernetes 上部署 RadonDB MySQL 叢集MySql
- 雲端計算教程學習入門影片課件:伺服器虛擬化元件講解伺服器元件
- 雲端計算教程學習入門影片課件:雲端計算基礎服務元件講解元件
- Linux雲端計算-06_Linux磁碟管理Linux
- Linux雲端計算技術學習:常用虛擬機器引數Linux虛擬機
- 容器編排系統之Kubernetes基礎入門
- Linux桌面系統有哪些?Linux雲端計算學習Linux
- 好程式設計師雲端計算培訓分享伺服器叢集cluster講解程式設計師伺服器
- 在Linux中,Docker和容器虛擬概念是什麼?LinuxDocker
- 雲端計算管理的功能是什麼?Linux雲端計算學習Linux
- 雲端計算教程學習入門影片課件:虛擬化技術和容器技術詳解
- 雲端計算髮展前景,linux系統課程Linux
- 雲端計算管理平臺之OpenStack啟動虛擬機器例項虛擬機
- 什麼叫做雲端計算?雲端計算基礎學習路線
- 女生學Linux雲端計算技術難嗎?Linux系統Linux
- 好程式設計師雲端計算培訓分享Kubernetes基礎模組概述程式設計師
- 在 Azure 中部署 Kubernetes 容器叢集
- 網路虛擬化之linux虛擬網路基礎Linux
- 4、kubernetes基礎概念
- Linux虛擬機器哪個好用?Linux雲端計算入門Linux虛擬機
- kubernetes叢集管理命令(三)
- 雲端計算教程學習入門影片課件:伺服器叢集cluster講解伺服器
- 零基礎如何學習雲端計算?雲端計算學習教程
- Linux雲端計算-05_Linux軟體包管理Linux
- 雲端計算部署型別有什麼?Linux基礎學習型別Linux