本文面向的讀者
如果您是一個Kubernetes的初學者,本文可以幫助你快速在雲上搭建一個可實際使用的叢集環境,并釋出自己的第一個應用。你無須提前準備任何的硬體資源或者下載下傳任何的軟體包。
如果您已經有一個自建的Kubernetes叢集,想要嘗試阿裡雲上的托管叢集,本文可以幫助你快速完成上手操作,而無需詳細閱讀阿裡雲的幫助文檔,進而節省您的時間。您可以在有了端到端的初體驗之後,再有選擇的閱讀容器服務和容器鏡像服務的幫助文檔。
如果你已經有一個傳統的部署在雲上的Web應用(比如部署在雲上的ECS裡),想要進行容器化的改造,本文同樣可以幫助到您,您甚至無需深入學習Kubernetes,隻需了解基本概念即可。
準備代碼
本文的操作全部基于阿裡雲控制台,是以您隻需要一個阿裡雲控制台的登入賬号即可。
我們先把應用的代碼準備好。請登入
https://code.aliyun.com/,登入完成後,通路
https://code.aliyun.com/shengbo.tsb/yunputest,點選派生項目(fork)的圖示。

在随後彈出的确認框裡,點選頭像确認,完成派生。
備選方案:如果您派生遇到了困難,可以直接從
https://github.com/docker-training/webappclone這個項目,然後自己通過git push到code.aliyun.com上。
準備鏡像倉庫
登入
https://cr.console.aliyun.com/cn-beijing/instances/repositories在左側導航欄選擇“命名空間”
點選“建立指令空間”,輸入名字“tengshengbo”。
确認命名空間建立完成之後,點選左側導航欄“鏡像倉庫”,點選“建立鏡像倉庫”,輸入倉庫名稱“yunputest”
在下一步,選擇剛剛建立的代碼倉庫。選擇“海外機器建構”以加快建構速度。提示:如果下拉框沒有代碼倉庫,點選右側的重新整理按鈕。
建立新鏡像
回到
點選yunputest這個項目,注意,是自己名下的項目,而不是shengbo.tsb這個賬号名下的項目。 點選“新标簽”.
輸入标簽名release-v1.5。注意,您必須使用release-v[版本号]形式,比如release-v2.5或者其他。
傳回鏡像倉庫清單,
選擇自己的鏡像倉庫,左側導航選擇“建構”,可以看到一個建構自動生成了。
建立Kubernetes叢集
通路容器服務控制台
https://cs.console.aliyun.com/#/k8s/cluster/list選擇“建立Kubernetes叢集”, 叢集模闆選擇第一個“标準托管叢集”
叢集名稱選擇“yunpu-k8s”,選擇專有網絡和虛拟交換機,勾選公網通路(為了開發測試友善),選擇執行個體類型(如果不考慮性能,單純為了省錢,可以使用t5或者t6執行個體),其他預設就好。
注意:Pod CIDR,Service CIDR不能與VPC内已有網段沖突,如果提示有錯誤,請更換網絡的CIDR。
在确認對話框裡勾選協定,完成建立。之後,确認自己的叢集運作中。
部署第一個應用
容器服務的左側導航欄選擇“應用-無狀态”,點選“使用鏡像建立”,在“應用基本資訊”這一部分, 輸入應用名稱yunpuapp, 選擇剛建立的叢集yunpu-k8s, 其他預設。
下一步,容器配置,鏡像名稱一項,點選“選擇鏡像”,選擇剛才自動從代碼建立的鏡像
鏡像Tag一項,點選“選擇鏡像Tag”,選擇你剛剛自己定義的版本号,比如1.4。其他保持預設。
點選下一步。
在進階配置裡面,點選“服務(Service)”旁邊的“建立”,
端口映射一項,輸入名稱port,注意服務端口80,容器端口5000.
點選“路由(Ingress)”旁邊的“建立”,輸入域名yunpuapp選擇剛剛建立的服務以及port。
建立成功之後,可以看到應用的通路方式,在“路由(Ingress)”裡面,“規則”一項,有一個連結。
點選這個連結,可以通路應用,顯示内容包含響應時間、應用運作時的host name以及IP位址。多次重新整理連結,可以看到不同的ip位址,這個說明後面對應的容器組Pod是多個。
更新應用
建議您自行嘗試更改應用的代碼,比如簡單更改webapp/app.py這個檔案,完成git tag後,git push.
$ git tag release-v1.5
$ git push origin release-v1.5
或者,您也可以直接在
控制台上,為master分支建立标簽release-v1.5
等待鏡像更新完成後,在“無狀态應用”頁,點選應用旁邊的“編輯”。
編輯頁面,選擇新的版本1.5,點選更新
下一步
阿裡雲的容器服務Kubernetes不是隻有托管版,還有專有版和Serverless版。專有版适合有豐富的容器運維經驗,希望長時間運作某個應用,并且獨立自主運維全部基礎設施的的大企業使用者。Serverless版适合不希望關心基礎設施的運維,或者隻是短時間運作某個應用進而希望開箱即用的中小企業使用者。本文介紹的托管版則介于專有版和Serverless版兩者之間。
如果您想了解更多,建議參考以下資料:
容器服務Kubernetes版幫助文檔:
https://help.aliyun.com/product/85222.html容器鏡像服務幫助文檔:
https://help.aliyun.com/product/60716.html如果您需要針對容器服務進行運維,參考以下資料:
運維編排:
https://help.aliyun.com/product/119529.html資源編排:
https://help.aliyun.com/product/28850.html