ref: https://loft.sh/blog/the-cost-of-managed-kubernetes-a-comparison/
本篇文章探討不同 Cloud Provider kubernetes 服務的差異,作者列舉了四個常見的 kubernetes 服務,包含 GKE, EKS, AKS 以及 DOKS。
這四個 kubernetes 服務所部署的 Kubernetes 叢集都有獲得 CNCF Kubernetes Certification 的認證,不同 Cloud Provider 都有自己的優缺點。
使用 Kubernetes 服務帶來的好處就是使用者通常不太需要去擔心如何處理
1. Kubernetes 核心元件之間的 Certificate (API Server, Controller, Scheduler, Kubelet ...etc)
2. 動態調整 Kubernetes 節點
3. 相較於單純靠社群, Cloud Provider 可以提供更快速且更好的支援(畢竟有付錢給對方)
因此該文章接下來就會針對這四個 Kubernetes 服務來探討一下彼此的差異。
註: 有興趣的話都可以用 Sonobuoy 這個開源專案來檢測自己維護的 Kubernetes 叢集,通過測試就可以把測試報告送到 GitHub 開 Issue 申請認證
GKE
1. Kubernetes 正式公開後一個月就 GKE 就出現了 (08/2015), 是最早的 Kubernetes 服務
2. GKE 會使用 gVisor 專注於安全層級的容器隔離技術來部署服務。
3. 有機會使用針對 Container 最佳化的 OS,有些 cloud provider 只能使用 Ubuntu image 之類的。
4. 服務出現問題時,可以啟動 auto-repair 來修復叢集,一種典型作法就是將一直回報為 NotReady 的 k8s 節點給重建
5. GKE 提供自動升級 Kubernetes 版本的功能,如果不想要的話記得要去關閉這個功能,否則自動升級是有可能讓某些應用程式無法正常運作的。
6. 使用 GKE 的話,要付每小時 $0.1 美元的管理費。如果使用 on-prem 的解決方案 (Anthos) 的話就可以免去這些管理費。
EKS
1. 06/2018 創立
2. 可以使用 Ubuntu Image 或是 AWS 針對 EKS 最佳化的 EKS AMI 來獲得更好的效能。
3. EKS 沒有提供自動升級 Kubernetes 版本的功能,官方有提供大量詳細的文件介紹如何手動升級 Kubernetes 版本
4. 沒有類似 auto-repair 的機制去幫忙監控與修復出問題的 k8s node,因此 EKS 使用者需要自己去監控與維護這些節點。
5. EKS 也是每小時 $0.10 的管理費用。 AWS Outposts/EKS Anywhere 這些 2021 啟動的專案讓你有機會將 EKS 部署到 on-prem 的環境中。
AKS
1. 06/2018 創立
2. AKS 沒有提供任何最佳化的 OS,你只能使用常見的那些 OS image 作為你的 k8s 節點
3. 預設情況不會自動升級 kubernetes 版本,不過 AKS 提供選項去開啟自動升級。Cluster 有四種不同策略(none,patch,stable,rapid)來自動更新你的 k8s 叢集。
4. AKS 預設不會啟動 auto-repair 功能。對於一直持續回報 NotReady 的節點, AKS 會先重起該節點,如果問題無法解決就會砍掉重建節點。
5. AKS 不收管理費
6. Azure 沒有特別提供一個供 on-prem 的 AKS 解決方案,不過透過 ARC 是有機會於 on-prem 的環境運行 AKS.
DOKS(DigitalOcean)
1. 05/2019 創立
2. 有提供 kubernetes 版本自動更新功能,但是只有針對 patch 版本的變化
3. 沒有 auto-repair 的功能
4. 文章撰寫的當下, DOKS 沒有任何文件說明如何於 on-prem 的環境運行 DOKS
5. 不收管理費
6. 相對其他三家來說,底層架構相對便宜,一個 DOKS 最低可以低到每個月 $10 美元。
價錢比較:
1. 假設需要創建一個擁有 20 節點並且有 80vCPU, 320GB RAM 的叢集 (GKE 因為每個節點都是 15GB,所以最後只能湊到 300GB)
2. 每個月為單位去計算價格,AKS/EKS/GKE 都使用其提供的價格計算機來粗估, DOKS 需要手動計算。
3. 價錢評比
a. AKS: $3416
b. EKS: $2928
c. DOKS: $2400
d. GKE: $1747
對文章有興趣的別忘了參閱全文
同時也有3部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,? เทคนิคต่าง ๆ ที่ใช้ในคลิป 1. การ pull image จาก docker 2. การแสดง images ที่มีในเครื่อง 3. การ run mssql container 4. ทดสอบการทำงานของ mssql ผ่าน sq...
「azure container」的推薦目錄:
- 關於azure container 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於azure container 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於azure container 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於azure container 在 prasertcbs Youtube 的最佳解答
- 關於azure container 在 kormaruR Youtube 的最佳解答
- 關於azure container 在 kormaruR Youtube 的最佳解答
- 關於azure container 在 Azure Container Networking Solutions for Linux and ... - GitHub 的評價
- 關於azure container 在 Lab 09b - Implement Azure Container Instances - GitHub Pages 的評價
- 關於azure container 在 Azure Container Instances Tutorial | Serverless ... - YouTube 的評價
- 關於azure container 在 Inter-container communication in azure container instances 的評價
azure container 在 矽谷牛的耕田筆記 Facebook 的精選貼文
ref: https://medium.com/swlh/quick-fix-sharing-persistent-disks-on-multiple-nodes-in-kubernetes-ef5541fd8376
這篇文章是 kubernetes 與 Storage 整合的經驗分享文,該文章包括了下列內容
Cloud Storage, NFS, Kubernetes, PV/PVC.
Kubernetes 內針對這些儲存相關的使用方式有
1. 使用 ephemeral 的儲存設備
ephemeral 只適合暫存資料使用,因為該儲存設備不是持久保存的,這意味 Container 如果重啟,資料就會消失。
2. 使用 Bind Mount 的方式將資料從節點掛載到容器中
就如同過往使用 Docker 時會使用 -v 的方式將同節點中的儲存目錄給掛載到容器中來使用。
基本上有任何永久性儲存的需求都會採用(2) 這個方式來處理,而目前很多 Cloud Provider 都有提供相關的儲存裝置讓你的 VM(k8s Node)
可以輕鬆存取與使用。
舉例來說,AWS 有 EBS, GCP 有 GPD,這類型的 Block Storage Device 本身支援動態掛載與卸載,所以就算 Kubernetes 將目標 Container 重新部署到
不同節點上也不需要擔心資料會不同,因為這些 Storage 可以隨者不同節點動態掛載上去,讓你的 Container 看到相同的資料。
但是以上兩個裝置都有一個限制,就是並不支援同時多人寫入的動作,於 Kubernetes 只能使用 Read/Write 模式。
這意味每個 Storage 同時只能有一個 Container 去進行讀寫操作(but Azure 的服務就沒有這個限制)
作者假設今天有一個服務底層是由三個元件組成,這些元件會需要針對相同一個資料集一起處理。
舉例來說有服務 A,B,C
A: 將資料寫入到儲存系統中
B: 從儲存系統中讀入資料進行二次處理,處理完畢再寫回去儲存系統中
C: 將資料從儲存系統中讀出並且供外部使用
上述情境簡單說就是一個儲存設備,會有三個服務同時想要讀取,一個專心寫,一個同時讀寫,一個專心讀。
這種需求就沒有辦法單純使用 EBS/GPD等裝置來使用,因此作者接下來就會針對如何使用 NFS 這套網路儲存系統來搭建一個符合上述需求的用法。
該解決方案流程如下
1) 透過 EBS/GPD 的方式掛載一個儲存空間到 k8s 節點中
2) 部署一個 NFS Server 的容器到 Kubernetes 中,該 NFS Server 會使用 EBS/GPD 作為其儲存空間的來源
3) NFS Server 透過 service 分享服務
4) 部署 PV/PVC 物件到 Kubernetes 中
5) A,B,C 三種容器透過 PVC 的方式來存取 NFS Server
因為 NFS 本身就是一個可多重讀寫的解決方案,作者透過這種方式讓多個應用程式可以同時讀寫,同時將這些資料保存到 EBS/GPD 的儲存空間中。
不過這種用法帶來的問題可能就是速度問題,從同節點直接存取變成透過網路存取,所以如果本身對於存取有非常高的頻寬需求時,使用這種解決方案也許會遇到
很難解決的瓶頸,畢竟大部分人的 k8s 叢集都是 data/control 兩種資料交雜於底層的網路架構中,沒有辦法將 data plane/control plane 給分開來。
有興趣看作者如何一步一步搞定上述流程的可以參考全文
azure container 在 軟體開發學習資訊分享 Facebook 的最佳貼文
NT 590 特價中
講師 Houssem Dellai 於微軟擔任工程師
課程說明
你是開發人員,並且想了解有關 DevOps 更多資訊嗎?
你是否正在尋找實用指南以開始進行持續整合( CI )和持續佈署( CD )?
你是否正在從事 Web、Mobile,Container 或 Database 專案,並且想要實現 CI/CD?
本課程將呈現如何為不同類型的專案建立 CI/CD管道的演示。
你將從 Web 應用程式開始:Java,.NET Core 和 NodeJ。 然後,你將看到用Xamarin 開發的行動應用程式並佈署到 App Center。
接下來,你將看到如何為 Docker 應用程式建立 CI /CD 並將其佈署到 Kubernetes。
之後,你將把資料庫含入管道中。你將看到一個 SQL Server 演示,將其佈署到Microsoft Azure Cloud 上。 然後,你將使用 ARM 樣板在 Azure 中置備資源。
這些管道將使用 Sonar Cloud 執行單元測試、功能測試和靜態原始碼分析。
你還將看到使用 Azure Key Vault 保護金鑰和機密的良好做法。
https://softnshare.com/azure-devops-ci-cd-pipelines/
azure container 在 prasertcbs Youtube 的最佳解答
? เทคนิคต่าง ๆ ที่ใช้ในคลิป
1. การ pull image จาก docker
2. การแสดง images ที่มีในเครื่อง
3. การ run mssql container
4. ทดสอบการทำงานของ mssql ผ่าน sqlcmd และ Azure Data Studio (download ได้จา https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver15)
# script สำคัญที่ใช้ในคลิปนี้
# check docker version
docker --version
# pull mcr.microsoft.com/mssql/server image
https://hub.docker.com/_/microsoft-mssql-server
docker pull mcr.microsoft.com/mssql/server
# list images
docker image ls
# run a container
docker run --name maroon -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=5HEe1Ybq' -p 1433:1433 -d mcr.microsoft.com/mssql/server
# exec sqlcmd client
docker exec -it maroon /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 5HEe1Ybq
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอน docker ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGJV7UpJs6NVvsf6qaKja9_
สอน Microsoft SQL Server 2012, 2014, 2016, 2017 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
สอน MySQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
สอน PostgreSQL ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
สอน SQLite ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
สอน SQL สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGq8M6HO8xrpkaRhvEBsQhw
การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
การใช้ Excel ในการทำงานร่วมกับกับฐานข้อมูล (SQL Server, MySQL, Access) ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGA2sSqNRSXlw0OYuCfDwYk
#prasertcbs_SQL #prasertcbs #prasertcbs_MySQL #docker
azure container 在 kormaruR Youtube 的最佳解答
モンスターハンター4
Monster Hunter 4
FC: 4914 - 3291 - 4688
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Playlist: http://www.youtube.com/playlist?list=PL2uXDnbrgaa7VD_Coh2XoS0oNxr6JwRrR
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
H264 Video Codec @ 1280x720p 30FPS 8mb bitrate
AAC 44.1KHz 96,000bps Audio Bitrate
MP4 Container
azure container 在 kormaruR Youtube 的最佳解答
モンスターハンター4
Monster Hunter 4
FC: 4914 - 3291 - 4688
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Playlist: http://www.youtube.com/playlist?list=PL2uXDnbrgaa7VD_Coh2XoS0oNxr6JwRrR
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
H264 Video Codec @ 1280x720p 30FPS 8mb bitrate
AAC 44.1KHz 96,000bps Audio Bitrate
MP4 Container
azure container 在 Lab 09b - Implement Azure Container Instances - GitHub Pages 的推薦與評價
Lab 09b - Implement Azure Container Instances. Student lab manual. Lab scenario. Contoso wants to find a new platform for its virtualized workloads. You ... ... <看更多>
azure container 在 Azure Container Instances Tutorial | Serverless ... - YouTube 的推薦與評價
If you are looking for a quick way to host your containers in Azure, then look no further. With Azure Container ... ... <看更多>
azure container 在 Azure Container Networking Solutions for Linux and ... - GitHub 的推薦與評價
Microsoft Azure Container Networking · Overview. This repository contains container networking services and plugins for Linux and Windows containers running on ... ... <看更多>