2013年docker誕生,自此一發不可收拾,它的發展如火如荼,作為一個運維如果不會docker,那真的是落伍了。
而2014年出現的kubernetes(又叫k8s)更加炙手可熱,我想大部分人僅僅是聽說過,簡單了解它,但并沒有真正使用過。那今天本文將帶著大家一起走近kubernetes。
為啥kubernetes又叫做k8s?據說是因為kubernetes這個單詞太長,不好記,而首字母和尾字母中間有8個字母,所以就簡寫成了k8s。Kubernetes翻譯成中文,意思是“舵手”。
本文開篇之所以提到docker,是因為k8s之所以火,得益于docker。K8s簡單說,是用來實現容器集群管理的系統,用于自動部署、擴展和管理容器。它是由Google公司開發,其原型為Google內部容器管理系統Borg。
Borg經過十多年地優化、改進,其功能和效率不言而喻,k8s項目的目的就是把Borg最精華的部分提取出來,使現在的開發者能夠更簡單、直接地應用。K8s自誕生之日起就注定了它的不平凡之路。
前幾年Openstack很火,但是這兩年k8s將要蓋過Openstack了,雖然k8s不能完全替代Openstack,但在云計算領域,k8s的確是后起之秀,能用容器云解決的問題,堅決不用傳統云。
其實和k8s功能類似的容器管理工具還有一個Swarm,它是docker官方開發,按理說docker官方的東西不更應該被大家普及么,可事實上k8s的體驗比官方的Swarm更加好,其根本原因還是Borg。
要想更了解K8s,需要先理解幾個相關的概念。
node一個物理機器,或一個虛擬機(KVM類型,而不是容器類型);將虛擬機作為node一般是歷史原因,或是為了徹底隔絕杜絕安全問題。
cluster一組node需要被集中管理,統一叫一個cluster。一個cluster有一個master和多個node。每個node里面有一個kubelet用來服從master調度并管理node本身。
app containers一個node里面可以有一個或多個容器化的應用程序,即app container??梢院唵握J為就是docker容器。
pod多個app containers之間可能需要共享硬盤,或共享同一個ip,這樣一組app containers合起來叫一個pod。典型應用如:一個容器不停產生日志到本地硬盤,另一個容器不停讀本地硬盤并上傳日志到日志服務器。
service當一個node掛了時,上面的pod及pod里面的container也自然都掛了。為了死不掉,需要有個pod上層的抽象,pod掛了,service還在。service通過如下幾種方式暴露出來。
ClusterIP (default),cluser的內網ip,只能此cluster內可見
NodePort,端口NAT到cluster外面
LoadBalancer,在cluster外面搞個LB并分配個外面可見的固定IP給LB
ExternalName,類似CNAME方式
deployment配置yaml格式,存在master上,當機器故障或需要橫向scale時或需要更新binary時,master根據配置搞定一切。
-
Cluster
+關注
關注
0文章
7瀏覽量
9147 -
node
+關注
關注
0文章
23瀏覽量
5934 -
kubernetes
+關注
關注
0文章
224瀏覽量
8712
原文標題:Kubernetes知多少
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論