1款工具實現自動K8S部署,提升開發速度

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你或者你的團隊是否正在尋找下一代架構?或者你已經擁有了這樣的架構,但是仍然在探索自動化和管理的最佳方式。在本文中,我們將藉助env0的能力來部署Rancher環境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Rancher:開源Kubernetes管理平臺"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於採用容器的團隊來說,Rancher是一個完整的軟件堆棧。它解決了多Kubernetes集羣管理的運維和安全挑戰,同時爲DevOps團隊提供了運行容器化工作負載的集成工具。在本次demo中我們將使用Rancher,您可以訪問以下鏈接查看如何快速運行Rancher:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/github.com\/rancher\/quickstart"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"env0:基礎架構自動化平臺"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"env0是一個基礎架構自動化平臺,它可以將Terraform及其他框架下的deployment集中到一個協作區,以方便你的整個團隊使用。你可以通過下方鏈接登錄並免費使用該產品:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/app.env0.com\/login"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Rancher+env0的神奇效果"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自動化部署和摧毀環境是加速開發的關鍵要素。即使你只是將靜態環境用於生產和開發這樣的事情,有時你也需要重新部署以升級或者進行其他任務。例如,你可能正在重定位deployment到另一個區域或可用性區域,或者在動態環境中其他更大的用處,如每個拉取請求的環境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"將Kubernetes用於你的應用基礎架構可以使這種開發變得更加容易,因爲你已經準備好了你的應用配置部署文件,一旦新的集羣啓動和運行,就可以重新部署。當你的應用重新部署到新的基礎架構並不是一項巨大的工程時,你就可以自由地在你認爲合適的時候重新創建那個基礎架構。而我們將使用env0來自動化該基礎架構的拆除和重新部署,使其更加簡單。訪問以下鏈接免費註冊:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/app.env0.com\/login"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"具體設置步驟"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們首先需要一些代碼。請記住我在前文給你的repo(https:\/\/github.com\/rancher\/quickstart)。在本例中,由於AWS中的身份和訪問管理(IAM)設置,我們將使用該文件夾中的AWS文件夾,並進行微調。我們的團隊將AWS中的12小時編程密鑰用於我們的lab account。此賬戶還需要“AWS Session Token”憑證。因此,標準的密鑰對並不適用於我們。我在此使用的代碼是經過修改的,具體內容可以訪問以下鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/github.com\/vtimd\/quickstart\/tree\/master\/aws"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我已經將這些AWS憑證作爲"},{"type":"text","marks":[{"type":"strong"}],"text":"全局變量"},{"type":"text","text":"放在env0中,以便我在之後的其他項目中能夠隨時使用它們。如果你爲每個項目或環境分配不同的憑證集,你可以簡單地將它們設置爲"},{"type":"text","marks":[{"type":"strong"}],"text":"項目級"},{"type":"text","text":"或"},{"type":"text","marks":[{"type":"strong"}],"text":"環境級"},{"type":"text","text":"變量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/2e\/54\/2edecb5b083d833d508ba595db056b54.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"全局變量"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"設置完成後,我們想要配置在項目中使用的模板。這是一個特別簡單的過程——起名,然後把它指向我們要使用的Github repo就可以了。或者,如果你使用其他版本控制系統(VCS)提供程序,只需提供URL和git token進行auth就可以了。要設置這個模板,點擊"},{"type":"text","marks":[{"type":"strong"}],"text":"Organization Templates"},{"type":"text","text":"部分下方的"},{"type":"text","marks":[{"type":"strong"}],"text":"Create New Template"},{"type":"text","text":"即可。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/d3\/6a\/d36c9750d260e947cdf3aa7fa2e6db6a.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"模板設置"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果我們訪問項目,我們將看到"},{"type":"text","marks":[{"type":"strong"}],"text":"Create New Project"},{"type":"text","text":"按鈕。項目創建也極爲簡單,僅需命名和描述即可。完成這些之後,我們就進入"},{"type":"text","marks":[{"type":"strong"}],"text":"項目模板"},{"type":"text","text":"中,對新創建的項目進行操作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/51\/01\/51fedeba317b669146e6a929acf3bc01.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們將模板分配到項目之後,可以開始部署我們的Rancher環境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"部署環境"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現在我們到了一個有意思的部分。現在我們已經準備好部署Rancher環境。在env0平臺中這是一個簡單的過程。我們將啓動我們剛剛創建的新項目,然後訪問項目環境。在這裏我們可以看到當前所有的環境並且可以啓動一個新的環境。在這一頁中,我們點擊"},{"type":"text","marks":[{"type":"strong"}],"text":"Create New Environment"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/8d\/13\/8dda7c50400db5a5b0777e742b749213.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們完成操作之後,我們將看到項目模板的頁面以及可用的所有模板。由於我們只啓用了Rancher-Quickstart模板,所以我們在這裏應該看到的只有這個模板。我們繼續點擊"},{"type":"text","marks":[{"type":"strong"}],"text":"Run Now"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/a7\/6e\/a7809b2aaa47a2f46f61be3388ed5f6e.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在創建新環境的頁面上,我們將填寫環境名稱、Workspace名稱(可選,因爲如果你沒有指定名稱,env0會自動生成一個)以及Revision。我選擇了在每次推送到git分支時選擇重新部署。這基本上實現了環境的持續部署(CD),因爲它將在每次推送時重新運行env0中的部署。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時,我在Destroy Environment部分設置了一個自定義的Time-To-Live(TTL)。由於僅僅爲了本次demo,我不希望它永遠保留在這裏。這是一個很好的功能,可以用於管理短期的demo、沙箱或開發實例,如果你遺忘了這些已經啓動的實例或環境,可能需要爲此付費。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"此前我們已經設置了變量部分,並且從組織層到項目層再到環境層這些都是繼承的。如果產生了衝突,那麼優先採用適用範圍最小的變量。所以如果你想覆蓋任何組織或項目變量,你可以在這裏爲這個特定環境注入它們。剩下要做的就是點擊"},{"type":"text","marks":[{"type":"strong"}],"text":"Run"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/9f\/7e\/9f561ef0660a94a80047b38becffe37e.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就這樣,我們要開始部署了!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/8e\/ye\/8e4857024f1e9caffd5dffd8ce5bbyye.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"Deployment 1"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/e3\/b2\/e3cbyy14a3e7fb019955cd6396768fb2.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"Deployment 2"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"env0會在部署完成後馬上給你發送郵件。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/e3\/b2\/e3cbyy14a3e7fb019955cd6396768fb2.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Active環境信息"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當部署完成返回環境時,檢查"},{"type":"text","marks":[{"type":"strong"}],"text":"Resources"},{"type":"text","text":" 標籤頁。這裏,我們將找到在Terraform文件中所有的指定輸出以及由deployment創建的Resources。在這裏我們將獲取"},{"type":"text","marks":[{"type":"strong"}],"text":"rancher_server_url"},{"type":"text","text":"以訪問我們的新環境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/7b\/a6\/7b5c122ccba6eae62cddda41043c1ca6.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"環境信息"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這裏,當我們點擊URL時,它會被複制到剪貼板。我們可以把它放到另一個標籤頁裏,就可以看到Rancher登錄頁面啦。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/6c\/32\/6c96a3569a0e9c27fdb55c29d882a532.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"總結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大功告成!我們已經介紹了什麼是Rancher和env0,爲什麼它們搭配使用很有效,以及如何設置env0以自動化部署Rancher與Terraform的Kubernetes環境。如果你遵循了本教程的步驟,那麼現在你應該擁有一個超棒的Kubernetes工作環境以部署你的應用程序。所以,打開你的YAML manifest,好好享受吧!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"文章轉載自:RancherLabs(ID:RancherLabs)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s\/LKfrPQyQJ_23iPMxqsLygg","title":"xxx","type":null},"content":[{"type":"text","text":"1款工具實現自動K8S部署,提升開發速度"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章