Kubernetes-簡介(一)

簡介

Kubernetes是一個開源、用於管理雲平臺中多個主機上的容器化的應用,目標是讓部署容器化的應用簡單而且高效,Kuernetes提供了應用部署、規劃、更新、維護的一種機制。node

在Kubernetes中,全部的容器均在Pod中運行,一個Pod能夠承載一個或者多個相關的容器戶建立的每一個Pod系統會自動選擇一個健康而且有足夠容量的節點來建立相似容器的容器,當容器建立失敗,由node Agent kubelet來自動重啓。可是若是是Pod失敗或者機器的其餘緣由,它並不會自動轉移而且啓動,除非用戶自定義了replication controller。nginx

用戶能夠本身建立並管理 Pod,Kubernetes將這些操做簡化爲兩個操做:基於相同的Pod配置文件部署多個Pod複製品;建立可替代的Pod當一個Pod掛了或者機器掛了的時候。Kubernetes API中負責來從新啓動、遷移等行爲的部分叫作「replication controller」,一個應用的多個Pod能夠共享一個機器。後端

Kubernetes支持一種特殊的網絡模型,Kubernetes建立一個地址空間,而且不動態的分配端口,它能夠容許用戶選擇任何想使用的端口,爲了實現這個功能,它爲每一個Pod分配IP地址。Kubernetes提供了服務的抽象,並提供了固定的IP地址和DNS名稱,而這些與一系列Pod進行動態關聯,這些都經過以前提到的標籤進行關聯,因此咱們能夠關聯任何咱們想去關聯的Pod,當一個Pod中的容器訪問這個地址的時候,這個請求會被轉發到本地代理(kube proxy),每臺機器上均有一個本地代理,而後被轉發到相應的後端容器。網絡

Kubernetes經過一種輪詢的機制選擇相應的後端容器,這些動態Pod被替換的時候,Kube proxy時刻追蹤着,因此,服務的IP地址(dns名稱)歷來不變。架構

Kubernetes中的資源,好比Pod都經過一個叫URI的東西來區分,這個URI有一個UID,URI的重要組成部分:對象的類型(好比Pod),對象的名稱,對象的命名空間,對於特殊的對象類型,在同一個命名空間內,全部的名字都是不一樣的,在對象只提供名稱,不提供命名空間的狀況下,這種狀況是假定爲默認的命名空間。UID是時間和空間的惟一。負載均衡

起源

大規模容器集羣管理工具,從Brog到Kubernetes微服務

雖然Google推出Kubernetes的目的之一是推廣其周邊的計算引擎(Google Computer Engine)和谷歌應用引擎(Google App Enginx)。但Kubernetes的出現能讓更多的互聯網企業能夠享受鏈接衆多計算機成爲集羣資源池的好處。Kubernetes在模型創建之初就考慮了容器跨主機鏈接的要求,支持多種網絡解決方案,同時在Servie層次構建集羣範圍內的SDN網絡。其目的是將服務發現和負載均衡放置到容器可達的範圍,這種透明的方式便利了各個服務間通訊,併爲微服務架構的實踐提供了平臺基礎。而在Pod層次,做爲Kubernetes可操做的最小對象,其特徵更是對微服務架構的原生支持。工具

2015年7月22日迭代到v1.0並正式對外公佈,這意味着這個開源容器編排系統能夠正式的在生產環境使用。與此同時,谷歌聯合Linux基金會及其它合做夥伴共同成立CNCF基金會(Cloud Native Computing Foundation),並將Kubernetes做爲首個編入CNCF管理體系的開源項目。代理

相關文章
相關標籤/搜索