RKE快速上手指南:開源的輕量級K8S安裝程序

安裝Kubernetes是公認的對運維和DevOps而言最棘手的問題之一。由於Kubernetes能夠在各類平臺和操做系統上運行,因此在安裝過程當中須要考慮不少因素。node

在這篇文章中,我將介紹一種新的、用於在裸機、虛擬機、公私有云上安裝Kubernetes的輕量級工具——Rancher Kubernetes Engine(RKE)。RKE是一個用Golang編寫的Kubernetes安裝程序,極爲簡單易用,用戶再也不須要作大量的準備工做,便可擁有閃電般快速的Kubernetes安裝部署體驗。nginx

如何安裝RKE

你能夠從官方的GitHub倉庫安裝RKE。 RKE能夠在Linux和MacOS機器上運行。安裝完成後,運行如下代碼,確保您使用的是最新版本:git

RKE快速上手指南:開源的輕量級K8S安裝程序

RKE安裝的準備工做

RKE是一個基於容器的安裝程序,這意味着它須要在遠程服務器上安裝Docker,目前須要在服務器上安裝Docker 1.12版本。github

RKE的工做方式是經過SSH鏈接到每一個服務器,並在此服務器上創建到Docker socket的隧道,這意味着SSH用戶必須可以訪問此服務器上的Docker引擎。要啓用對SSH用戶的訪問,您能夠將此用戶添加到Docker組:服務器

usermod -aG docker 網絡

要啓動Kubernetes的安裝,以上是遠程服務器須要的惟一準備工做。架構

RKE入門使用

以下示例假定用戶已配置三臺服務器:運維

node-1: 192.168.1.5
node-2: 192.168.1.6
node-3: 192.168.1.7

集羣配置文件

默認狀況下,RKE將查找名爲cluster.yml的文件,該文件中包含有關將在服務器上運行的遠程服務器和服務的信息。socket

最小文件應該是這樣的:ide

RKE快速上手指南:開源的輕量級K8S安裝程序

集羣配置文件包含一個節點列表。每一個節點至少應包含如下值:

  • 地址 - 服務器的SSH IP / FQDN
  • 用戶 - 鏈接到服務器的SSH用戶
  • 角色 - 主機角色列表:worker,controlplane或etcd

另外一節是「服務」,其中包含有關將在遠程服務器上部署的Kubernetes組件的信息。

有三種類型的角色可使用主機:

  • etcd - 這些主機能夠用來保存集羣的數據。
  • controlplane - 這些主機能夠用來存放運行K8s所需的Kubernetes API服務器和其餘組件。
  • worker - 這些是您的應用程序能夠部署的主機。

運行RKE

要運行RKE,首先要確保cluster.yml文件在同一個目錄下,而後運行以下命令:

➜ ./rke up

若想指向另外一個配置文件,運行以下命令:

➜ ./rke up --config /tmp/config.yml

輸出狀況將以下所示:

RKE快速上手指南:開源的輕量級K8S安裝程序

鏈接到集羣

RKE會在配置文件所在的目錄下部署一個本地文件,該文件中包含kube配置信息以鏈接到新生成的羣集。默認狀況下,kube配置文件被稱爲.kube_config_cluster.yml。將這個文件複製到你的本地~/.kube/config,就能夠在本地使用kubectl了。

須要注意的是,部署的本地kube配置名稱是和集羣配置文件相關的。例如,若是您使用名爲mycluster.yml的配置文件,則本地kube配置將被命名爲.kube_config_mycluster.yml。

RKE快速上手指南:開源的輕量級K8S安裝程序

A Peek Under the Hood

RKE默認使用x509身份驗證方法來設置Kubernetes組件和用戶之間的身份驗證。RKE會首先爲每一個組件和用戶組件生成證書。

RKE快速上手指南:開源的輕量級K8S安裝程序

生成證書後,RKE會將生成的證書部署到/etc/kubernetes/ssl服務器,並保存本地kube配置文件,其中包含主用戶證書,在想要刪除或升級集羣時能夠與RKE一塊兒使用。

而後,RKE會將每一個服務組件部署爲能夠相互通訊的容器。RKE還會將集羣狀態保存在Kubernetes中做爲配置映射以備後用。

RKE是一個冪等工具,能夠運行屢次,且每次均產生相同的輸出。以下的網絡插件它都可以支持部署:

  • Calico
  • Flannel (default)
  • Canal

要使用不一樣的網絡插件,您能夠在配置文件中指定:

network:
  plugin: calico

插件

RKE支持在集羣引導程序中使用可插拔的插件。用戶能夠在cluster.yml文件中指定插件的YAML。

RKE在集羣啓動後會部署插件的YAML。RKE首先會將這個YAML文件做爲配置映射上傳到Kubernetes集羣中,而後運行一個Kubernetes做業來掛載這個配置映射並部署這些插件。

請注意,RKE暫不支持刪除插件。插件部署完成後,就不能使用RKE來改變它們了。

要開始使用插件,請使用集羣配置文件中的addons:選項,例如:

RKE快速上手指南:開源的輕量級K8S安裝程序

請注意,咱們使用|-</code,由於插件是一個多行字符串選項,您能夠在其中指定多個YAML文件並用「---」將它們分開。

高可用性

RKE工具是知足高可用的。您能夠在集羣配置文件中指定多個控制面板主機,RKE將在其上部署主控組件。默認狀況下,kubelets被配置爲鏈接到nginx-proxy服務的地址——127.0.0.1:6443,該代理會向全部主節點發送請求。

要啓動HA集羣,只需使用controlplane角色指定多個主機,而後正常啓動集羣便可。

添加或刪除節點

RKE支持爲角色爲worker和controlplane的主機添加或刪除節點。要添加其餘節點,只須要更新具備其餘節點的集羣配置文件,並使用相同的文件運行集羣配置便可。

要刪除節點,只需從集羣配置文件中的節點列表中刪除它們,而後從新運行rke up命令。

集羣刪除命令

RKE支持rke remove命令。該命令執行如下操做:

  • 鏈接到每一個主機並刪除部署在其上的Kubernetes服務。
  • 從服務所在的目錄中清除每一個主機:
    • /etc/kubernetes/ssl
    • /var/lib/etcd
    • /etc/cni
    • /opt/cni

請注意,這個命令是不可逆的,它將完全摧毀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

相關文章
相關標籤/搜索