閱讀976 返回首頁    go 阿裏雲 go 技術社區[雲棲]


阿裏雲官方高可用Kubernetes部署指南

Kubernetes是非常流行的容器管控技術,為了讓Kubernetes可以更深度集成阿裏雲的計算、存儲和網絡服務,以提供更佳的性能和網絡特性支持,阿裏雲容器服務團隊為Kubernetes提供了基於阿裏雲服務的CloudProvider插件。

同時,基於阿裏雲資源編排服務ROS的應用部署能力,阿裏雲用戶可以非常方便的快速部署Kubernetes集群。本文接下來會詳細介紹部署過程。

依賴條件

拓撲結構

k8s_arch

部署入口

根據使用場景不同,我們提供開發測試和高可用兩種Kubernetes集群部署方案。

開發測試集群 高可用集群
單Master節點
可配置Worker節點數
支持按需擴容、縮容
支持按需啟動和銷毀集群
3個Master節點提供高可用性
可配置Worker節點數
支持按需擴容、縮容
支持按需啟動和銷毀集群
部署到阿裏雲 部署到阿裏雲

部署過程

第一步: 選擇部署區域

chose_region

根據您的實際需要,選擇將Kubernetes集群部署到阿裏雲的那個區域。 確認後點擊"下一步"。

第二步: 配置啟動參數

params_1

  • 棧名,所部署的Kubernetes集群屬於一個ROS的棧,棧名稱在同一個地域不能重複
  • 創建超時時間,整個部署過程的超時時間,默認60分鍾,無需修改
  • 失敗回滾,點選失敗回滾,如果部署過程中發生不可自動修複性錯誤,將刪除所有已創建資源,反之,已創建資源將被保留,以便問題排查
  • Master節點ECS實例規格,指定Master節點所運行的ECS實例的規格,默認ecs.n1.medium,根據實際需要可以選擇更高配置的實例類型,配置不能低於默認規格
  • Worker節點ECS實例規格,指定Worker節點所運行的ECS實例的規格,默認ecs.n1.medium,根據實際需要可以選擇更高配置的實例類型,配置不能低於默認規格
  • Worker節點數,指定Worker節點數,默認2,支持後期擴容
  • ECS登陸密碼,所創建的ECS實例可通過此密碼登陸,請務必牢記密碼

這裏我們選擇創建5個Worker節點,確認以上參數後,點擊"創建"按鈕,啟動部署。

submit

至此,部署請求已提交到資源編排服務,可以通過點擊"進入事件列表"進入ROS控製台,通過ROS控製台實時監控部署過程。

注: 一個包含多節點的Kubernetes集群的創建時間會在十幾分鍾左右。

第三步:部署完成

通過ROS事件列表實時監控部署過程:

events

通過ROS資源列表查看部署過程所創建的所有資源:

resources

等待部署完成,部署完成後在事件列表中會出現棧創建完成的事件記錄:
events_complete

通過棧概況可以查看部署完成後的輸出結果:
stack_details

通過輸出結果中返回的信息,便可以對Kubernetes集群進行使用了,信息包括:

  • AdminGateway: 可以直接通過SSH登錄到Master節點,以便對集群進行日常維護
  • APIServer_Intranet: Kubernetes的api server對集群內部提供服務的地址和端口,在高可用版本中,此IP為SLB地址,後端有3台Master提供服務
  • APIServer_Internet: Kubernetes的api server對公網提供服務的地址和端口,可以通過此服務在用戶終端使用kubectl等工具管理集群

例如: 通過SSH登錄AdminGateway查看集群節點信息:

get_node1

可以發現,一共有8個節點,包括3個Master節點和我們在參數設置步驟填寫的5個Worker節點。

集群擴容和縮容

基於ROS的堆棧更新能力,我們可以根據實際業務需要,對Kubernetes集群的Worker節點進行擴容或者縮容。進入ROS棧列表找到我們所部署的Kubernetes集群,點擊"更多",選擇"更新堆棧":

update_1

update_2

點擊“更新堆棧”後,會顯示部署Kubernetes所使用的編排模板,通過修改模板可以完成非常複雜的集群升級,如果隻是進行擴容或者縮容,可以直接點“下一步”跳過。

接下來,會進入參數配置頁麵,通過修改"Worker節點數"來完成集群擴容或縮容:

update_3_1

點擊“更新”按鈕後,資源編排服務開始對集群進行相應的擴容或縮容處理。像最開始的部署過程一樣,我們可以通過事件列表來實時監控更新過程。

注:

  • 由於升級過程依賴登陸ECS來拷貝配置信息,所以擴容、縮容時填的密碼必須和最開始部署集群時填的密碼一致
  • 資源編排服務顯示棧更新完成後,通過kubectl get node或者dashboard並不能馬上看到新增的節點,需要幾分鍾時間等待節點注冊

更多Kubernetes使用幫助請參考:

最後更新:2017-05-23 10:32:46

  上一篇:go  Java NIO係列教程(十二) Java NIO與IO
  下一篇:go  剖析Disruptor:為什麼會這麼快?(三)揭秘內存屏障