Rancher Kubernetes Engine(RKE)正式發佈:閃電般的Kubernetes安裝部署體驗

作爲Rancher 2.0的重要組件,Rancher Kubernetes Engine(RKE)現已正式全面發佈!這是Rancher Labs推出的新的開源項目,一個極致簡單易用、閃電般快速、支持一切基礎架構(公有云、私有云、VM、物理機等)的Kubernetes安裝程序。

爲何做一個全新的K8s安裝程序?

在過去兩年中,Rancher已經成爲最爲流行和受歡迎的創建和管理Kubernetes集羣的平臺之一。因爲易於上手的特性和極致簡單的用戶體驗,Rancher作爲創建與管理Kubernetes的平臺深受全球大量用戶青睞 。Rancher將etcd、Kubernetes master和worker節點操作完全自動化。然而Rancher 1.x中只提供了Kubernetes的部署優化,2.0會繼續加強對Kubernetes使用和運行過程中的進一步的優化與支持。

現階段市場中有不少可供用戶選擇的用於創建Kubernetes集羣的安裝程序。據我們所見,其中兩個最受歡迎的安裝程序是kops和Kubespray:

  1. Kops也許是使用最廣泛的Kubernetes安裝程序。事實上,它不僅僅是一個安裝程序。Kops爲用戶備好了所有可能需要的雲資源,它能用來安裝Kubernetes,還可以連接雲監控服務,以確保Kubernetes集羣的持續運行。不過,Kops與底層雲基礎架構集成過於緊密,在AWS上表現最爲優秀,而對GCE和vSphere等其他基礎架構平臺的就不能提供支持。
  2. Kubespray是用Ansible編寫的獨立Kubernetes安裝程序,它可以在任何服務器上安裝Kubernetes集羣,非常受用戶歡迎。儘管Kubespray與各種雲API具有一定程度的集成,但它基本上是獨立於雲的,因此可以與任何雲、虛擬化集羣或裸機服務器協同工作。目前,Kubespray已經發展成一個由大量開發人員參與的複雜項目。

Kubeadm是另一個跟隨Kubernetes主版本分發的安裝工具。然而,Kubeadm還不支持像HA集羣這樣的功能。儘管在 kops和Kubespray等項目中使用了 kubeadm 某些代碼,但若作爲生產級的Kubernetes安裝程序,kubeadm還不適合。

Rancher 2.0可以支持並納管任何Kubernetes集羣。我們鼓勵用戶使用GKE和AKS等公有云雲託管服務。對於想要自行建立自己的集羣的用戶,我們正在考慮將kops或Kubespray集成到我們的產品陣容中。Kops不符合我們的需求,因爲它並不適用於所有云提供商。其實,Kubespray已經很接近我們的需要了,尤其是 Kubespray可以在任何地方安裝Kubernetes的這一特性。但最終,我們決定不採用Kubespray,而是構建自己的輕量級安裝程序,原因有兩個:

  1. 我們可以重新起步,利用Kubernetes本身的優勢建立一個更簡易的系統。
  2. 與在Rancher 1.6中安裝Kubernetes一樣,通過使用基於容器的方法,我們可以擁有更快的安裝程序。

RKE如何工作

RKE是一個獨立的可執行文件,它可以從集羣配置文件中讀取並啓動、關閉或升級Kubernetes羣集。 如下是一個示例配置文件:

---
auth:
 strategy: x509

network:
 plugin: flannel

ssh_key_path: /home/user/.ssh/id_rsa

nodes: - address: server1
 user: ubuntu
 role: [controlplane, etcd] - address: server2
 user: ubuntu
 role: [worker]

services:
 etcd:
 image: quay.io/coreos/etcd:latest
 kube-api:
 image: rancher/k8s:v1.8.3-rancher2
 service_cluster_ip_range: 10.233.0.0/18
 extra_args:
 v: 4
 kube-controller:
 image: rancher/k8s:v1.8.3-rancher2
 cluster_cidr: 10.233.64.0/18
 service_cluster_ip_range: 10.233.0.0/18
 scheduler:
 image: rancher/k8s:v1.8.3-rancher2
 kubelet:
 image: rancher/k8s:v1.8.3-rancher2
 cluster_domain: cluster.local
 cluster_dns_server: 10.233.0.3
 infra_container_image: gcr.io/google_containers/pause-amd64:3.0
 kubeproxy:
 image: rancher/k8s:v1.8.3-rancher2

addons: |- ---
 apiVersion: v1
 kind: Pod
 metadata:
 name: my-nginx
 namespace: default
 spec:
 containers: - name: my-nginx
 image: nginx
 ports: - containerPort: 80

如上所示,我們通過指定認證策略、網絡模型和本地SSH密鑰路徑來啓動文件。集羣配置文件的主體由以下三部分組成:

  1. 節點部分描述了組成Kubernetes集羣的所有服務器。每個節點都承擔三個角色中的一個或多個角色:controlplane、etcd和worker。您可以通過更改節點部分並重新運行RKE命令來添加或刪除Kubernetes集羣中的節點。
  2. 服務部分描述了在Kubernetes集羣上運行的所有系統服務。RKE將所有系統服務打包爲容器。
  3. 插件部分描述了在Kubernetes集羣上運行的用戶級程序。因此,RKE用戶可以在同一文件中指定Kubernetes集羣配置和應用程序配置。

RKE不是一個可以長時間運行的、可以監控和操作Kubernetes集羣的服務。RKE需要與像Rancher 2.0這樣的完整的容器管理系統或像AWS CloudWatch、Datadog或Sysdig等一樣的獨立監控系統配合使用。配合使用時,您就可以構建自己的腳本來監控RKE集羣的健康狀況了。

RKE:嵌入式Kubernetes安裝程序

當用戶需要構件一個分佈式應用系統時,常常不得不處理後端數據庫、數據訪問層、集羣和擴展等方面的問題。現在,越來越多的開發人員不再使用傳統的應用程序服務器,而是開始使用Kubernetes作爲分佈式應用程序平臺:

  1. 開發人員使用etcd作爲後端數據庫。
  2. 開發人員使用Kubernetes Custom Resource Definition(CRD)作爲數據訪問層,並使用kubectl在其數據模型上執行基本的CRUD操作。
  3. 開發人員將應用程序打包爲容器,並使用Kubernetes完成集羣和伸縮工作。

以這種方式構建的應用程序將作爲Kubernetes YAML文件發送給用戶。如果用戶已經運行Kubernetes集羣,或可以訪問公有云託管的Kubernetes服務(如GKE或AKS),就可以輕鬆運行這些應用程序。但是,那些希望在虛擬化或裸機服務器上安裝應用程序的用戶該怎麼辦呢?

通過將RKE作爲嵌入式Kubernetes安裝程序捆綁到應用程序中,應用程序開發人員就可以解決上述需求。通過調用RKE,應用程序安裝便可以啓動,且會爲用戶創建一個Kubernetes集羣。而我們已注意到,將諸如RKE之類的輕量級安裝程序嵌入到分佈式應用程序中,滿足了很多來自用戶的興趣與需求。

爲Kubernetes落地普及而前行

Rancher Kubernetes Engine(RKE)秉承了Rancher產品一貫易於上手、操作簡單、體驗友好的特性,使用戶創建Kubernetes集羣的過程變得更加簡單,且我們相信通過雲管理平臺進行Kubernetes安裝是大多數Kubernetes用戶的最佳選擇。

在Rancher Labs,我們希望Kubernetes有朝一日成爲所有云服務商支持的標準化的基礎架構,且一直在爲了實現這個願景而努力。已推出技術預覽版、將於2018年初正式發佈的Rancher 2.0,將可以同時納管和導入任何類型、來自任何雲提供商的Kubernetes集羣,包括RKE、AWS EKS、Google Container Engine (GKE)、Azure Container Service (AKS)等等。

下一步,一起走吧

秉承Rancher一貫100%開源的風格,你可以直接從GitHub上下載RKE

本文轉自kubernetes中文社區-Rancher Kubernetes Engine(RKE)正式發佈:閃電般的Kubernetes安裝部署體驗

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章