AWS - Terraform & Ansible 在 AWS 上自動部署 K8S 叢集
Contents
手動部署 K8s 叢集是件重複又繁瑣的事情,除了要先準備好基礎機器環境之外,還要每一台機器安裝依賴套件後,並一個一個加入叢集內,透過 Terraform + Ansible Iac 最佳組合自動化完成一整個系列從無到有創建。
1. DEMO 執行範例
2. Quick Start
透過 Docker 快速創建 Terraform & Ansible 環境及 Iac Code。
- 啟動建立好的環境。
|
|
- 使用 vi 編輯 credentials ,將 AWS 具備創建 VPC 及 EC2 的 credentials 貼上。
|
|
- 執行自動部屬腳本。
該環境會使用既有的金鑰遠端連線執行 Ansible 操作,如果擔心金鑰重複的安全性,可以先執行
bash regenerateKey.sh
來重新產生一組公私鑰。
|
|
釋放資源
上述會自動創建 VPC、 IGW 、NAT、 EC2 及 SG 等各種資源,透過腳本可以輕易地將所有創建資源收回,並免額度浪費。
|
|
3. GitHub 下載原始碼
JeffWen0105/iac-ec2-k8s: Automatic deployment of K8s Cluster on GCE using Terraform & Ansible
3.1. 運作流程
- 由 Terraform 在 us-east-1 (維吉尼亞北部) 區域創建下列資源 :
- VPC
- 兩個子網段 ( 公有 10.10.110.0/24 及私有 10.10.220.0/24 )。
- 創建 IGW 及 NAT 並分別綁定公有及私有網段。
- 創建 Security Group 安全群組定義流量進出規則。
- 創建 EC2 Instances。
- 待上述資源創建完畢後,由 Ansible 執行套件安裝及部署 K8s 作業。
3.2. 目錄結構
|
|
run.sh
=> 程式進入點。*.tf
=> Terraform 執行的 IaC 程式碼。*.yml
=> Ansible 執行的 IaC 程式碼。
3.3. 使用方式
- 安裝 Terraform、 Ansible、 Git 等所依賴套件。
- 確保已經產生一組公私鑰,並且存放在該使用者的 ~/.ssh/ 目錄下 (檔名為預設 id_rsa* )。
- 修改 Credentials。
- 執行
bash.sh
進入點程式。
3.4. 修改自動創建數量
預設會創建三台機器,如需增減可以修改 variables.tf 檔案,除 Master 必須存在外,可以自行延伸機器會修改名稱,修改後會自動依據機器數量所創建。
如要增加兩台 Worker,可修改如下 :
|
|
4. 小結
IaC 基礎設施即程式碼是非常方便又快速的好物,除了可以降低人為操作上的失誤,也能彈性的大量部署所需的環境及收回資源。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!