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原理持續更新…
相關文章
- 雲端計算和虛擬機器基礎梳理虛擬機
- 虛擬化不是雲端計算
- NetApp新系統簡化Linux計算叢集管理APPLinux
- 雲端計算導論 # 4 虛擬化
- 超級雲端計算與虛擬化
- 新推出Oracle VM的刀片叢集虛擬化基礎設施的參考配置,將對雲端計算將是很好的推動意義Oracle
- Linux雲端計算技術學習:虛擬機器基本結構講解Linux虛擬機
- 雲端計算基礎
- 容器化|自建 MySQL 叢集遷移到 KubernetesMySql
- 雲端計算虛擬化的優劣勢有哪些?
- 雲端計算與虛擬化結合技術分析
- 虛擬化正是雲端計算所依託的基石薦
- 虛擬化、雲端計算、開放原始碼及其他原始碼
- 《虛擬化與雲端計算》推薦序一薦
- 雲端計算開發學習教程,雲端計算基礎架構實現講解架構
- 虛擬IP管理系統設計
- 虛擬化有哪些分類?Linux雲端計算技術及應用Linux
- Linux雲端計算運維知識中,虛擬化都有哪些分類?Linux運維
- 更好地利用虛擬化和雲端計算 試管嬰兒醫院最佳化物理基礎設施
- 雲端計算基礎-0
- 簡述Kubernetes叢集聯邦
- 虛擬化及雲端計算技術應用的思考
- 你所不知道的虛擬化和雲端計算
- 國產虛擬化:把雲端計算從雲端帶進國內企業
- 雲端計算教程學習入門影片課件:伺服器虛擬化元件講解伺服器元件
- 雲端計算教程學習入門影片課件:雲端計算基礎服務元件講解元件
- 企業級系統三巨頭邁向雲端計算與虛擬化 各打各的如意算盤薦
- 容器化 | 在 Kubernetes 上部署 RadonDB MySQL 叢集MySql
- Forrester企業虛擬化率推進雲端計算應用REST
- 【張振倫】虛擬化正是雲端計算所依託的基石
- 虛擬化是雲端計算的第一步薦
- 虛擬化和雲端計算未來發展趨勢薦
- Linux雲端計算-02_CentOS Linux 7.X系統管理LinuxCentOS
- 容器編排系統之Kubernetes基礎入門
- 雲端計算,網格計算,分散式計算,叢集計算的區別?分散式
- 好程式設計師雲端計算培訓分享伺服器叢集cluster講解程式設計師伺服器
- 伺服器虛擬化基礎知識:如何虛擬化?伺服器
- RHCSA 系列(十五): 虛擬化基礎和使用 KVM 進行虛擬機器管理虛擬機