K8s與OpenStack關系


簡介

Kubernetes 面向應用層,變革的是業務架構,而 OpenStack 面向資源層,改變的是資源供給模式。使用容器且集群規模不大,直接用 Kubenetes 就可以;集群規模大,不管應用是否只是跑在容器中,都是 OpenStack + Kubernetes 更好。

OpenStack + Kubernetes 是各取所長,並不只是因為慣性,而是對於多租戶需求來說,Container(容器)的隔離性還需要加強,需要加一層 VM(虛擬機) 來彌補,而 OpenStack 是很好的方案。不過,VM + Container 的模式,必然有性能的損耗,所以 OpenStack 基金會也推出一個項目叫 Kata Containers,希望減少虛擬化的開銷,兼顧容器的性能和隔離性。

永恆的只有變化,未來的業務都會運行在雲上,容器是走向 DevOps、Cloud Native(雲原生)的標准工具,已經開始走向平凡,而 Kubernetes 的編排能力,讓容器能夠落地到業務應用中,所以我們看到 Docker、Mesos、OpenStack 以及很多公有雲、私有雲服務商,都在支持 Kubernetes,大家都加入了 CNCF(雲原生計算基金會)。

總結起來,OpenStack 是兼容傳統的架構,而 Kubernetes 是面向未來的架構。

計算開源雲這幾年發展很快,從這個問題提出到現在,社區又有了很多變化。所以要修正一個觀點:Kubernetes 支持的容器運行時不僅僅是 Docker,也包括 Rkt,當然 Docker 更加流行。
 
簡單的說, kubernetes是管理container的工具,openstack是管理VM的工具

container可以運行在物理機上,也可以運行在VM上。所以kubernetes不是需要openstack的支持。但對於雲計算來說,很多IasS都通過openstack來管理虛擬機。然后用戶可以在這些虛擬機上運行docker,可以通過kubernetes進行管理

 

K8s

一個K8s系統,通常稱為一個 K8s集群(Cluster)

這個集群主要包括兩個部分:

  • 一個Master節點(主節點)
  • 一群Node節點(計算節點)

Master節點主要還是負責管理和控制。Node節點是工作負載節點,里面是具體的容器。

深入來看這兩種節點。

首先是Master節點。

Master節點包括API Server、Scheduler、Controller manager、etcd。

API Server是整個系統的對外接口,供客戶端和其它組件調用,相當於“營業廳”。

Scheduler負責對集群內部的資源進行調度,相當於“調度室”。

Controller manager負責管理控制器,相當於“大總管”。

然后是Node節點

Node節點包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選),還有就是Pod

Pod是Kubernetes最基本的操作單元。一個Pod代表着集群中運行的一個進程,它內部封裝了一個或多個緊密相關的容器。除了Pod之外,K8S還有一個Service的概念,一個Service可以看作一組提供相同服務的Pod的對外訪問接口。

Docker,不用說了,創建容器的。

Kubelet,主要負責監視指派到它所在Node上的Pod,包括創建、修改、監控、刪除等。

Kube-proxy,主要負責為Pod對象提供代理。

Fluentd,主要負責日志收集、存儲與查詢。

 

Docker和K8S都介紹完了,然而文章並沒有結束。

接下來的部分,是寫給核心網工程師甚至所有通信工程師看的

從幾十年前的1G,到現在的4G,再到將來的5G,移動通信發生了翻天覆地的變化,核心網亦是如此。

但是,如果你仔細洞察這些變化,會發現,所謂的核心網,其實本質上並沒有發生改變,無非就是很多的服務器而已。不同的核心網網元,就是不同的服務器,不同的計算節點。

變化的,是這些“服務器”的形態和接口:形態,從機櫃單板,變成機櫃刀片,從機櫃刀片,變成X86通用刀片服務器;接口,從中繼線纜,變成網線,從網線,變成光纖。

就算變來變去,還是服務器,是計算節點,是CPU。

既然是服務器,那么就勢必會和IT雲計算一樣,走上虛擬化的道路。畢竟,虛擬化有太多的優勢,例如前文所說的低成本、高利用率、充分靈活、動態調度,等等。

前幾年,大家以為虛擬機是核心網的終極形態。目前看來,更有可能是容器化。這幾年經常說的NFV(網元功能虛擬化),也有可能改口為NFC(網元功能容器化)。

以VoLTE為例,如果按以前2G/3G的方式,那需要大量的專用設備,分別充當EPC和IMS的不同網元。

VoLTE相關的網元

而采用容器之后,很可能只需要一台服務器,創建十幾個容器,用不同的容器,來分別運行不同網元的服務程序。

這些容器,隨時可以創建,也可以隨時銷毀。還能夠在不停機的情況下,隨意變大,隨意變小,隨意變強,隨意變弱,在性能和功耗之間動態平衡。

簡直完美!

5G時代,核心網采用微服務架構,也是和容器完美搭配——單體式架構(Monolithic)變成微服務架構(Microservices),相當於一個全能型變成N個專能型。每個專能型,分配給一個隔離的容器,賦予了最大程度的靈活。

 

 

 


免責聲明!

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



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