今天的客座文章是由Colin Hom撰寫,Colin Hom是CoreOS的基礎設施工程師。CoreOS在CoreOS Linux,Tectonic和Quay上面安全運行容器。這篇文章咱們來分享kube-aws這個工具,討論如何在AWS上部署Kubernetes集羣。html
在CoreOS,咱們嘗試將Kubernetes大規模部署到生產中。今天咱們來分享一個工具:kube-aws,它能夠輕鬆地在AWS上面部署Kubernetes。kube-aws是一個用來部署可監測、可再生的kubernetes集羣到AWS上的工具,目前被CoreOS用來建立生產集羣。git
咱們如今將Kubernetes組件放到一塊兒的方式比較手動。可是,有了這個利器,Kubernetes就能夠經過流水線打包來節省時間,同時將程序間的相互影響減到最小,快速建立可用於生產環境的部署。
簡單模版系統只是用來生成集羣配置,來做爲一套版本可控、可監測和可重部署的聲明性配置模版。因爲整個供應是由AWS CloudFormation和cloud-init提供,因此在你這端無需外部配置管理工具。github
查看最新版本的kube-aws,點擊:這裏,它支持Kubernetes1.2.x。爲了讓你的集羣運行起來,點擊查看文檔:這裏。安全
kube-aws以這三個目標做爲初衷來設計的。工具
安全性:TLS資源在嵌入CloudFormation JSON以前,是經過AWS的KMS加密的。經過爲KMS密鑰獨立管理IAM 協議,操做者能夠分開訪問TLS secrets和CloudFormation。加密
可監測的:kube-aws是圍繞集羣資源的概念建立。這些配置和這些證書表明的是對整個集羣的描述。由於KMS是用來給TLS secrets加密,你也能夠隨時在版本控制中檢查未加密的堆棧JSON。 spa
再生性:-export選項將參數化的集羣打包到到單個的JSON文件裏,由這個文件定義CloudFormation堆棧。若是須要的話,這個文件能夠直接進行版本控制,並經過已有的配置工具直接提交到CloudFormation API。設計
在這個基礎之上,kube-aws實現了一個功能,可讓Kubernetes在AWS上面配置得更加易於管理,也更加靈活。如下是一些例子。3d
Route53 整合:Kube-aws能夠管理你的集羣DNS記錄的配置過程。版本控制
cluster.yaml
現有VPC支持:部署你的集羣到現有的VPC上面。
cluster.yaml
驗證:kube-aws支持cloud-init和CloudFormation定義驗證,以及任意集羣能夠整合的外部資源。舉個例子,這是一個拼錯參數的cloud-config:
userdata/cloud-config-worker
開始以前,查看kube-aws文檔:這裏
使用kube-aws的目標就是令產品配置準備就緒。在咱們在AWS上面將kube-aws投入產品使用的今天,這個項目在1.0版本以前,還有不少地方須要改進。
容錯:AWS上的Kubernetes是個對容錯和自愈來講很強大的平臺。在接下來的幾周裏,kube-aws會迎接一個新的挑戰:控制面板以及全部其它的完善。
無宕機更新:運用正確的實例替換策略,能夠無宕機、更新CoreOS節點和Kubernetes組件,減小相關依賴性。
瞭解更多關於Kubernetes,可關注CoreOS Fest Berlin:這裏。 ——Colin Hom,CoreOS基礎設施工程師
(若是須要轉載,請聯繫咱們哦,尊重知識產權人人有責)