技術專欄

Azure 比你想得更擁抱開源!AKS(Azure Kubernetes Service) 3 大特點& 整合 Azure 生態圈的 5 種功能

Microsoft 微軟
2023/06/05

文/邁達特產品五處 雲端架構師 Becky Jian

AKS(Azure Kubernetes Service)是什麼?

為解決應用程式可攜性與相依性的問題,容器將作業系統虛擬化。更輕量更小的部署單位,為開發與維運人員帶來敏捷部署的好處。由於容器化所帶來的便利性,我們開始跨多個伺服器部署多個應用程式。如何操作、管理這樣複雜的容器部署狀況,就成為十分重要的議題。

Kubernetes(K8s) 為複雜的容器佈署管理,提供了很好的解決方案。Kubernetes(K8s) 會針對可用運算資源與容器要求資源,來決定要如何調整虛擬機器叢集。容器會分組成 Pod,透過 Pod 這個在 Kubernetes(K8s) 中最小的操作單位,您可以將 Pod 調整成您想要的狀態。透過這些機制,Kubernetes(K8s) 擁有自動修復、負載平衡、滾動升級、版本回滾等功能。

Kubernetes(K8s) 於 2015 年推出 Kubernetes v1.0 並開放原始碼。 2018 年起,公有雲平台上的託管 Kubernetes(K8s) 平台服務相繼推出,不論是 Azure、AWS、Google 都提供了對應的服務。Kubernetes(K8s) 固然為您帶來許多好處,不過 Kubernetes(K8s) 的管理其實很複雜。

而 AKS(Azure Kubernetes Service)託管平台提供您免費的控制平台,並能在初期根據您的設置配置 master node 與 worker nodes。您可以在短短 10 分鐘內佈署起擁有 3 個工作節點的 Kubernetes 叢集,並最大限度利用 Azure Portal 圖像顯示相關資源,讓您不用再辛苦的一層一層透過 Kubernetes 命令工具 kubectl 指令瞭解叢集內資源狀況。

至於,在眾多雲端平台中,AKS(Azure Kubernetes Services)有哪些特點? 又為資訊人員帶來那些好處呢? 本文將接續為您說明。


AKS(Azure Kubernetes Services)3 大特點,為您帶來哪些好處?

Kubernetes 主要創辦人之一的 Brendan Burns 於 2016 年加入微軟,並開始領導 Azure 容器化服務的發展。目前也以微軟副總裁的身分繼續帶領 Azure DevOps 與容器服務。微軟自 2014 年祭出 「Microsoft loves open source」的口號,也對多個 GitHub 開源專案有實質的貢獻,例如 KEDA、Dapr、Helm 等知名的專案都包含在內。微軟也一躍成為 GitHub 開源貢獻度最高的企業。

由於微軟與開源社群緊密聯繫,AKS(Azure Kubernetes Service) 整合了在開發人員間最熱門的開源工具,而這些附加功能也在持續增加中。以下為您列出 3 項附加功能:(1)監控方案、(2)負載調整、(3)微服務應用管理方案。

(1)監控方案

是繼 Kubernetes 後,第二個貢獻給 CNCF (Cloud Native Computing Foundation)組織的開源專案,他可以從各種來源蒐集計量並整合成特定格式來公開。目前您可以直接於 Azure Portal 勾選並啟用此功能 (有預設的計量蒐集集合)。

Grafana 為資料視覺效果平台,可協助將計量、紀錄整合在一起。Azure 中的受控 Grafana 已針對 Azure 環境進行優化,也能利用 Azure Monitor 下的 Prometheus 計量資訊導出易於理解與分析的儀表板。與 Prometheus 相同,您可以於 Azure Portal 啟用此功能。

(2) 負載調整

KEDA 為 CNCF (Cloud Native Computing Foundation) 孵化專案,是一個專注於水平擴展的輕量元件。您可以透過 Azure ARM/ Azure CLI 來啟用此附加功能。

(3) 微服務應用管理方案

Dapr 為微軟主導的開源專案,其目的是協助開發人員更容易建置彈性、具狀態或無狀態的微服務應用。您可以透過 Azure CLI 來啟用此附加功能。

Istio 可解決開發人員與維運人員目前面對微服務或分散式架構面臨的挑戰。可用於簡化服務到服務通訊場景的流量管理、安全性與可觀察性。您可以透過 Azure CLI 來啟用此附加功能。

AKS(Azure Kubernetes Service) 除了讓您能快速跟上目前最熱門、開發者覺得最好用的工具外,使用 AKS (Azure Kubernetes Service) 的另一個好處就是:它能夠輕易地整合您在 Azure 擁有的其他資源。以下我們就從 AKS(Azure Kubernetes Service)與 Azure 生態圈整合,所能得到的 5 個功能來進行討論。


AKS(Azure Kubernetes Services)整合 Azure 生態圈的 5 種功能

  • 使用 Azure CNI 網路介面,AKS 透過虛擬網路與 Azure 資源連結更安全

在 Azure Kubernetes Service 中您有兩種 CNI (Container Network Interface)可以選擇,客戶可以根據需求選擇使用原生內建的 kubenet 或是需要使用到虛擬子網路中 IP 的 Azure CNI。若您需要整合 Azure 中其他資源來使用,你需要設置 Azure CNI 以便您可以透過虛擬網路連結資源。

  • 與 Azure Container Instance 整合啟用 Virtual Node 功能來應付突發性高負載

當您使用 Azure CNI 的時候,您可以啟用 Virtual Node 來應付尖峰時刻的工作負載量。這個服務是與 Azure Container Instance 整合,其水平擴展的速度會較 Azure Kubernetes Service 叢集來的更快速。

上個月 ( 2023/04 ) 起,Azure Kubernetes Service 提供一個新的預覽功能,可以讓您指派 Pod 層級的受控識別。例如,當您的 Pod 將所需檔案存放在 Azure Storage 中,而 Pod 需要存取那些資料時,就會向資源以 Azure 受控識別驗證自己。

  • 推送 image 的同時為您掃描應用程式漏洞

使用的 Azure Container Registry 存放私有 image 資產,並開啟 Microsoft Defender for Container。Microsoft Defender for Container 會在您推送、拉取 image 時,掃描其中是否包含漏洞程式,需要您的注意與修復。

  • Azure DevOps Service 整合 Azure Container Registry 與 Azure Kubernetes Services 達成 CI/CD

Kubernetes 身為一套 Ops 管理工具,很好的提升部署的效率與彈性,若開發端的持續整合沒有跟上速度,使用 Kubernetes 的意義相對變小了。在企業導入 Kubernetes 的同時,我們也建議同時導入 DevOps。Azure 生態圈本身擁有了 Azure Container Registry、Azure Kubernetes Service 與 Azure DevOps Services。從程式碼推送、產生出映像檔、保存映像檔到自動部署,每一個步驟都可以在 Azure 內完成。當然,「Microsoft loves open source」這句話不是說說而已,管線過程中的任何步驟,若想與同類型資源調換,都沒有問題。不論 GitHub、GitLab 或 Jenkins 都能夠併入流程中使用。


MetaAge 邁達特-Microsoft 原廠指定的台灣代理商

如果您目前正在享受 Azure 生態圈資源為您帶來的好處,並打算將 Kubernetes 搬遷至公有雲託管平台中,Azure Kubernetes Service 絕對是最合適的選擇。若您的目的僅是部署簡單的應用程式,花費時間了解 Kubernetes 運作方式的效益並不大,您可以參考微軟去年推出的 Azure Container Apps。其底層運用了 Azure Kubernetes Services 技術並原生整合 KEDA、Dapr 與 Envoy,直接把最簡單的部署介面帶給您,更棒的是,您能夠在非負載時段將執行個體數降低為零。在未來的技術專欄中,我們將帶給您更多的相關介紹,敬請期待。

「IT 智能化最佳夥伴-MetaAge 邁達特是 Microsoft 微軟原廠指定的代理商,邁達特具備 Microsoft 專業顧問團隊,可依照貴司環境提供適當的規劃、移轉方法和技術服務。若有任何 Microsoft Azure、M365、Power Platform、雲端託管 ⋯ 等相關需求或使用問題,歡迎您電洽 0800-008-669 或 填寫表單與我們聯絡,將有專人立即與您聯繫。」

延伸閱讀:

聯絡 我們