天天干天天插_日本黄色免费网站_国产成人精品午夜福利APP_性xxxxfreexxxxx - 免费观看黄色网址视频

全球領先的云管理服務提供商

思普智云的管理團隊都對云有深刻的理解,從搭建到運營和咨詢,團隊成員分工明確,始終致力于為客戶提供專業的技術支持和服務。

容器服務之Kubernetes介紹

發布時間:2019-01-07 15:07:36

? ? ? ?? Kubernetes,簡稱K8s。是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效,Kubernetes提供了應用部署,規劃,更新,維護的一種機制。

? ? ? ?? 傳統應用通過腳本或者插件來安裝。這種方式的缺點是應用的運行、配置、生命周期等與當前的系統綁定,對于應用的升級更新、回滾等操作不便。也可以通過創建虛擬機來實現某些功能,但是虛擬機非常重,移植性比較差。在這種情況下,容器技術就順應而生。

? ? ? ? 容器之間相互隔離,每個容器都有自己的文件系統,容器之間不會相互影響,能區分計算資源。容器資源占用少、利用率高、部署快,每個應用可以被打包成一個容器鏡像,應用與容器的一對一關系也使容器具有更大的優勢。每個應用不需要與其他應用堆棧組合,也不需要依賴于生產環境基礎結構,這使得從研發到測試、生產能提供一致的環境,容器比虛擬機更輕量、更便于監控和管理。

什么是Kubernetes?

? ? ? ? Kubernetes(k8s)是一個用于容器集群的自動化部署、擴容以及運維的開源平臺。使用Kubernetes可以:

? ? ? ? 自動化容器的部署和復制

? ? ? ? 隨時擴展或收縮容器規模

? ? ? ? 將容器組織成組,并且提供容器間的負載均衡

? ? ? ? 很容易地升級應用程序容器的新版本

? ? ? ? 提供容器彈性,如果容器失效就替換它,等等...

Kubernetes特點: ?

? ? ?? 可擴展: 模塊化, 插件化, 可掛載, 可組合

? ? ?? 自愈: 自動布置,自動重啟,自動復制,自動擴展

? ? ?? 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

 

Kubernetes架構設計

? ? ? ?? Kubernetes集群包含有節點代理kubelet和Master組件(APIs, scheduler, etc),一切都基于分布式的存儲系統。下面這張圖是Kubernetes的架構圖。

   

Kubernetes節點

? ? ? ?? 在這張系統架構圖中,我們把服務分為運行在工作節點上的服務和組成集群級別控制板的服務。

? ? ? ?? Kubernetes節點有運行應用容器必備的服務,而這些都是受Master的控制。

? ? ? ?? 每次個節點上當然都要運行Docker。Docker來負責所有具體的映像下載和容器運行。

Kubernetes主要由以下幾個核心組件組成:

? ? ? ? etcd保存了整個集群的狀態;

? ? ? ? apiserver提供了資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制;

? ? ? ? controller manager負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等;

? ? ? ? scheduler負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上;

? ? ? ? kubelet負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理;

? ? ? ? Container runtime負責鏡像管理以及Pod和容器的真正運行(CRI);

? ? ? ? kube-proxy負責為Service提供cluster內部的服務發現和負載均衡;

除了核心組件,還有一些推薦的Add-ons:

? ? ? ? kube-dns負責為整個集群提供DNS服務

? ? ? ? Ingress Controller為服務提供外網入口

? ? ? ? Heapster提供資源監控

? ? ? ? Dashboard提供GUI

? ? ? ? Federation提供跨可用區的集群

? ? ? ? Fluentd-elasticsearch提供集群日志采集、存儲與查詢

   

分層架構

? ? ? ? Kubernetes設計理念和功能其實就是一個類似Linux的分層架構,如下圖所示:

  • 核心層:Kubernetes最核心的功能,對外提供API構建高層的應用,對內提供插件式應用執行環境

  • 應用層:部署(無狀態應用、有狀態應用、批處理任務、集群應用等)和路由(服務發現、DNS解析等)

  • 管理層:系統度量(如基礎設施、容器和網絡的度量),自動化(如自動擴展、動態Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)

  • 接口層:kubectl命令行工具、客戶端SDK以及集群聯邦

  • 生態系統:在接口層之上的龐大容器集群管理調度的生態系統,可以劃分為兩個范疇

  • Kubernetes外部:日志、監控、配置管理、CI、CD、Workflow、FaaS、OTS應用、ChatOps等

  • Kubernetes內部:CRI、CNI、CVI、鏡像倉庫、Cloud Provider、集群自身的配置和管理等

 

為什么 Kubernetes 是一個平臺?

? ? ? ?? Kubernetes 提供了很多的功能,總會有新的場景受益于新特性。它可以簡化應用程序的工作流,加快開發速度。被大家認可的應用編排通常需要有較強的自動化能力。這就是為什么 Kubernetes 被設計作為構建組件和工具的生態系統平臺,以便更輕松地部署、擴展和管理應用程序。

? ? ? ?? Label允許用戶按照自己的方式組織管理對應的資源。注解使用戶能夠以自定義的描述信息來修飾資源,以適用于自己的工作流,并為管理工具提供檢查點狀態的簡單方法。

? ? ? ?? 此外,Kubernetes 控制面 (Control Plane) 是構建在相同的APIs上面,開發人員和用戶都可以用。用戶可以編寫自己的控制器,調度器等等,如果這么做,根據新加的自定義API ,可以擴展當前的通用CLI命令行工具。

? ? ? ? 這種設計使得許多其他系統可以構建在 Kubernetes 之上。

Kubernetes 不是什么:

? ? ? ? Kubernetes不是一個傳統的,包羅一切的PaaS系統。我們保留用戶的選擇,這一點非常重要。

Kubernetes不限制支持應用的種類。它不限制應用框架,或者支持的運行時語言,也不去區分?“apps” 或者“services”。 Kubernetes致力于支持不同負載應用,包括有狀態、無狀態、數據處理類型的應用。只要這個應用可以在容器里運行,那么它就可以在Kubernetes上很多地運行。

Kubernetes不提供中間件(如message buses),數據處理框架(如Spark),數據庫(如Mysql),或者集群存儲系統(如Ceph)。但這些應用都可以運行于Kubernetes。

Kubernetes沒有一個點擊即可用的應用市場。

Kubernetes不部署源碼不編譯應用。持續集成的 (CI)工作流方面,不同的用戶有不同的需求和偏好,因此,我們提供分層的 CI工作流,但并不定義它應該怎么做。

Kubernetes允許用戶選擇自己的日志、監控和報警系統。

Kubernetes不提供可理解的應用配置語言(e.g., jsonnet).

Kubernetes不提供或者任何綜合的機器配置,維護,管理或者自愈系統。

? ? ? ?? 另一方面,大量的Paas系統都可以運行在Kubernetes上,比如Openshift, Deis, 和Gondor。你可以構建自己的Paas平臺,CI集成。

? ? ? ? 因為Kubernetes運行在應用而非硬件層面,它提供了普通的Paas平臺提供的一些通用功能,比如部署,擴展,負載均衡,日志,監控等。然而,Kubernetes并非一個龐然大物,這些功能是可選的。

? ? ? ?? 另外,Kubernetes不僅僅是一個“編排系統”;它消彌了編排的需要?!熬幣拧钡亩x是指執行一個預定的工作流:先做A,之后B,然后C。相反地,Kubernetes是由一系列獨立的、可組合的驅使當前狀態走向預想狀態的控制進程組成的。怎么樣從A到C并不重要:達到目的就好。當然也是需要中心控制的;方法更像排舞的過程。這讓這個系統更加好用更加強大、健壯、 有彈性且可擴展。