$ kubectl create -f single-config-file.yaml
kubectl是和Kubernetes API交互的命令行程序。如今介紹一些核心概念。html
集羣是一組節點,這些節點能夠是物理服務器或者虛擬機,之上安裝了Kubernetes平臺。下圖展現這樣的集羣。注意該圖爲了強調核心概念有所簡化。這裏能夠看到一個典型的Kubernetes架構圖。前端
上圖能夠看到以下組件,使用特別的圖標表示Service和Label:git
Pod(上圖綠色方框)安排在節點上,包含一組容器和卷。同一個Pod裏的容器共享同一個網絡命名空間,可使用localhost互相通訊。Pod是短暫的,不是持續性實體。你可能會有這些問題:github
正如圖所示,一些Pod有Label()。一個Label是attach到Pod的一對鍵/值對,用來傳遞用戶定義的屬性。好比,你可能建立了一個"tier"和「app」標籤,經過Label(tier=frontend, app=myapp)來標記前端Pod容器,使用Label(tier=backend, app=myapp)標記後臺Pod。而後可使用Selectors選擇帶有特定Label的Pod,而且將Service或者Replication Controller應用到上面。服務器
是否手動建立Pod,若是想要建立同一個容器的多份拷貝,須要一個個分別建立出來麼,可否將Pods劃到邏輯組裏?
Replication Controller確保任意時間都有指定數量的Pod「副本」在運行。若是爲某個Pod建立了Replication Controller而且指定3個副本,它會建立3個Pod,而且持續監控它們。若是某個Pod不響應,那麼Replication Controller會替換它,保持總數爲3.以下面的動畫所示:網絡
若是以前不響應的Pod恢復了,如今就有4個Pod了,那麼Replication Controller會將其中一個終止保持總數爲3。若是在運行中將副本總數改成5,Replication Controller會馬上啓動2個新Pod,保證總數爲5。還能夠按照這樣的方式縮小Pod,這個特性在執行滾動升級時頗有用。
當建立Replication Controller時,須要指定兩個東西:架構
如今已經建立了Pod的一些副本,那麼在這些副本上如何均衡負載呢?咱們須要的是Service。app
若是Pods是短暫的,那麼重啓時IP地址可能會改變,怎麼才能從前端容器正確可靠地指向後臺容器呢?
Service是定義一系列Pod以及訪問這些Pod的策略的一層抽象。Service經過Label找到Pod組。由於Service是抽象的,因此在圖表裏一般看不到它們的存在,這也就讓這一律念更難以理解。
如今,假定有2個後臺Pod,而且定義後臺Service的名稱爲‘backend-service’,lable選擇器爲(tier=backend, app=myapp)。backend-service 的Service會完成以下兩件重要的事情:負載均衡
下述動畫展現了Service的功能。注意該圖做了不少簡化。若是不進入網絡配置,那麼達到透明的負載均衡目標所涉及的底層網絡和路由相對先進。若是有興趣,這裏有更深刻的介紹。frontend
有一個特別類型的Kubernetes Service,稱爲'LoadBalancer',做爲外部負載均衡器使用,在必定數量的Pod之間均衡流量。好比,對於負載均衡Web流量頗有用。
節點(上圖橘色方框)是物理或者虛擬機器,做爲Kubernetes worker,一般稱爲Minion。每一個節點都運行以下Kubernetes關鍵組件:
集羣擁有一個Kubernetes Master(紫色方框)。Kubernetes Master提供集羣的獨特視角,而且擁有一系列組件,好比Kubernetes API Server。API Server提供能夠用來和集羣交互的REST端點。master節點包括用來建立和複製Pod的Replication Controller。
如今咱們已經瞭解了Kubernetes核心概念的基本知識,你能夠進一步閱讀Kubernetes 用戶手冊。用戶手冊提供了快速而且完備的學習文檔。
若是火燒眉毛想要試試Kubernetes,可使用Google Container Engine。Google Container Engine是託管的Kubernetes容器環境。簡單註冊/登陸以後就能夠在上面嘗試示例了。
原文連接:Learn the Kubernetes Key Concepts in 10 Minutes(翻譯:崔婧雯)