1.1、kubernetes是什麼?
全新的基于容器技術的分布式架構領先方案
完備的分布式系統支撐平台
Kubernetes是Google團隊發起的開源項目,它的目标是管理跨多個主機的容器,提供基本的部署,維護以及運用伸縮,主要實作語言為Go語言。
1.2、基本概念
Node(節點):在Kubernetes中,節點是實際工作的點,較早版本稱為Minion。節點可以是虛拟機或者實體機器,依賴于一個叢集環境。每個節點都有一些必要的服務以運作Pod容器組,并且它們都可以通過主節點來管理。在Node上運作的服務程序包括docker daemon,Kubelet和 Kube-Proxy。
Pod(容器組):是Kubernetes的基本操作單元,把相關的一個或多個容器構成一個Pod,通常Pod裡的容器運作相同的應用。Pod包含的容器運作在同一個節點上,看作一個統一管理單元,共享相同的volumes和network namespace/IP和Port空間。
Pod的生命周期:Pod的生命周期是通過Replication Controller來管理的。在整個過程中,Pod處于4種狀态之一:Pending, Running, Succeeded, Failed。
Replication Controller(RC):用于定義Pod副本的數量。確定任何時候Kubernetes叢集中有指定數量的Pod副本在運作, 如果少于指定數量的Pod副本,Replication Controller會啟動新的Pod,反之會殺死多餘的以保證數量不變。
Service(服務):一個Service可以看作一組提供相同服務的Pod的對外通路接口。
Volume(儲存卷):Volume是Pod中能夠被多個容器通路的共享目錄。
Label(标簽):用于區分Pod、Service、Replication Controller的key/value鍵值對,Pod、Service、 Replication Controller可以有多個label,但是每個label的key隻能對應一個value。Labels是Service和Replication Controller運作的基礎,為了将通路Service的請求轉發給後端提供服務的多個容器,正是通過辨別容器的labels來選擇正确的容器。
Proxy(代理):是為了解決外部網絡能夠通路跨機器叢集中容器提供的應用服務而設計的。Proxy提供TCP/UDP sockets的proxy,每建立一種Service,Proxy主要從etcd擷取Services和Endpoints的配置資訊,或者也可以從file擷取,然後根據配置資訊在Minion上啟動一個Proxy的程序并監聽相應的服務端口。
Namespace(命名空間):通過将系統内部的對象“配置設定”到不同的Namespace中,形成邏輯上的不同分組,便于在共享使用整個叢集的資源同時還能分别管理。
Annotation(注解):與Label類似,但Label定義的是對象的中繼資料,而Annotation則是使用者任意定義的“附加”資訊。
本文轉自 sykmiao 51CTO部落格,原文連結:http://blog.51cto.com/syklinux/1860268,如需轉載請自行聯系原作者