從第一次聽到 Kubernetes 以來,已經有一年多了,永遠都記得 k8s 名稱的由來只是保留「開頭 K」及「結尾 S」,然後中間的英文字母數量剛好是 8 個英文字就這樣命名了…。全球三大雲服務商,AWS、Azure 和 GCP 都有提供託管 Kubernetes 集群服務( EKS、AKS、GKE ),可見其有名火熱程度。現在終於有機會在工作上碰到這項技術,就來寫些簡單筆記吧 !

從第一次聽到 Kubernetes 以來,已經有一年多了,永遠都記得 k8s 名稱的由來只是保留「開頭 K」及「結尾 S」,然後中間的英文字母數量剛好是 8 個英文字就這樣命名了…。全球三大雲服務商,AWS、Azure 和 GCP 都有提供託管 Kubernetes 集群服務( EKS、AKS、GKE ),可見其有名火熱程度。現在終於有機會在工作上碰到這項技術,就來寫些簡單筆記吧 !
ECS 很常拿來與 Kubernetes 比較,而 2017 aws 又進一步宣佈了 Amazon Elastic Container Service for Kubernetes(EKS),使 aws 平台可以託管 k8s 服務。EKS 服務可以省去安裝以及操作自己的 Kubernetes 叢集的時間,輕鬆的在 AWS 上執行 Kubernetes;進一步地,可使用 Fargate 模式在 EKS 上,可連 node 機器都不用管理。
Amazon Elastic Container Service(ECS)標誌著 AWS 進入 CaaS 市場。在 Kubernetes 還沒有出現時,各家雲端大廠對於容器化的管理工具都有自己實作。對應在 AWS 上的容器編排平台,是在 2014 年宣佈的 ECS 服務。後續進一步改進,發布 ECS with Fargate,可讓我們運行 container,而無需管理伺服器或集群。 故 Amazon ECS 具有兩個常用模式:
- EC2 啟動類型
- Fargate 啟動類型
以下分別進行介紹。
2017年,AWS 推出了 Fargate,這是一個用於部署和管理容器的模式,代表用戶無需管理 EC2 基礎設施。 Fargate 的核心理念就是 Serverless ,讓 ECS 用戶專注於任務和服務定義,而不是管理集群基礎設施,Fargate 可配合用於 ECS 和 EKS。
ECS (Elastic Container Service) 和 EKS(Elastic Kubernetes Service)都是 AWS 上提供的 Container Orchestration ( 容器管理工具 ),核心都是中央控制管理運行的容器化應用程式,以下來簡單介紹一下吧。
前面有介紹用 dp 方式把這題給解了,但看一下 Related Topics 發現也可以用 Binary Search 求解,上網參考大神們的解法,感覺特別巧妙。因為這題可用 dp 和 Binary Search,也變成是一道高頻難題。 這邊記錄一下大神們的想法。
隨著系統的擴充, Terraform 配置也會變得越來越複雜,這時可能會需要做一些 Refactor,例如 :
- 將某些 terraform resource 移動到其他 module
- change resource ID
這時候用 terraform plan 檢查一下,會發現 terraform 打算把原本的 resource 移除,然後重新建立一個新的 resource。但 resource 中間被刪掉,之後再造回來是會影響服務的。我們必須讓 Terraform 知道我只是重新命名,這就是 Terraform move 想做的事情。
cloud-init 是一個 package,可以藉由配置 cloud-init 來執行各種任務,自動初始化 cloud instance。在初次開機時就將想要的檔案或設定與系統一併弄好而不用手動處理。大部分雲平台都支持 cloud-init,目前是 industry standard (行業標準)。
使用 Packer 建立 AWS EC2 AMI 或者是 GCP Machine Image,兩個都會有機率發生一些問題, 有時候是 image 內一些應用程式安裝出現問題;有時候是再最後啟動 AWS 或 GCP 虛擬機時,使用 user-data 或 startup-script 時會出現問題,共同的錯誤訊息是 no installation candidate. 。 AWS 機率發生體感機率比 GCP 高不少。那問題的根源是什麼呢,來看看吧!
這題真的蠻難的,一開始看題目我也覺得很繞口,給了一個非負數的 nums 和一個 m 代表把 nums 分成 m 個 group 且 每個 group non-empty 並取 m 個 group 中的最大值。但注意,前面只是代表一種切法而已,我們是要找所有可能切法之中的最小值。看一下 Related Topics 發現可以用 Binary Search 和 DP 求解,也是一道高頻題目。