iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
1

上篇筆記我們已經可以部署應用程式到 Local Kubernetes 叢集, 接下來我將介紹與 Public Could 整合的例子, 網路上有很多 AWSGCP 的 Kubernetes 應用, 因為筆者已經有使用微軟的 Azure 服務, 因此本篇將介紹 Microsoft Azure Kuberetes Service (AKS) 以及相關的 Azure Container Registry (ACR)Azure Container Instance (ACI) 基本概念.

Azure Kubernetes Service (AKS)

微軟的 Azure Kubernetes Service 以下簡稱 AKS , 提供簡單的部署, 管理與操作介面, 具有以下的幾個特點:

  • 訂閱者不必擔心升級與修正問題, AKS 提供自動更新與修正
  • AKS 服務具有高可用度與高可靠性
  • AKS 可以透過命令或 UI 簡單的調整擴充
  • AKS 具有自我修復能力
  • AKS 提供 API Server 監控機制
  • AKS 可以透過 Azure AD 以及 Role Base Access Control (RBAC) 控管叢集的存取安全性
  • AKS 服務的 Azure 託管的管理控制平台(Control plane/Master nodes) 提供免費使用

這邊要特別說明, AKS 管理控制平台是由微軟託管的, 訂閱者不需要設定 Master nodes, 訂閱的使用者透過 Kubernetes API endpoint, 使用命令(Azure Cli - az aks) 來管理 AKS.
使用 AKS 配合 Azure 服務 Azure DevSpaces, Helm, Azure DevOps Project, ACR, ACI, Azure Monitor 提供從開發環境到生產環境的 DevOps 完整方案.
以下是 AKS 的架構, 是不是跟 Kubernetes 架構幾乎一樣呢?
https://ithelp.ithome.com.tw/upload/images/20181017/20111871a6HNpqr5Ao.png
資料來源: https://social.technet.microsoft.com/wiki/contents/articles/51499.azure-kubernetes-service-aks-getting-started.aspx

Azure Container Registry (ACR)

Azure Container Registry (ACR) 是可以用來儲存所有容器部署類型的映像, 使用 Docker Registry 相容的命令管理與建立 Container Registry, 用以儲存管理私人的 docker container image.
主要提供整合的協調機制來集中管理容器化的應用程式, 包括 Kubernetes, Docker Swarm. 一方面透過 Azure 服務, 可以自動化建置, 執行與擴充應用程式.
此外, 透過 Jenkins 或 Azure DevOps 服務可以做為發佈到 ACR 的持續整合的部署流程的一部分
ACR 包括幾個主要的概念:

  • Registry - Azure 訂閱可以建立多個 Container registries. 可以透過 Webhook 與 Azure AD 登入管理 images. 根據不同的 Registry 類型, 提供本機儲存或異地複寫的使用情境. 每個 Registry 名稱是以 FQDN 的命名呈現, 例如 myregistry.azurecr.io
  • Repository - 每個 Registry 包含一個以上的 Repository, 以群組的方式進行儲存管理, 並且支援多層的命名空間 (namespace)
  • Image - 儲存於 Respository 中, 當有需要使用時, 可以用 docker 命令將 image 從 repository 取出
  • Container - 容器是定義應用程式與應用程式相依的檔案系統, 執行環境相關的資源

Azure Container Instance (ACI)

Azure 容器執行個體 Azure Container Instance (ACI), 是不需要管理虛擬機器而提供容器應用程式執行的服務, 具有快速啟動的優點, 並且提供公用 IP 以及完整網域名稱 (FQDN), 可以直接由網際網路存取應用程式. 此外 ACI 具有應用程式相依性隔離和資源控管, 等同於虛擬機器的安全性管理.
如下圖, ACR 提供容器的儲存, 並且可以將 Image 取出到 ACI 中.
https://ithelp.ithome.com.tw/upload/images/20181017/20111871g8TTAjZCfy.png
資料來源: https://stackify.com/azure-container-instances/

ACR 與 ACI 在 Azure Kubernetes Service (AKS) 的有密切的合作關係, Container Registry 提供 Images Repository, Pod 所執行的個體便是 ACI.
https://ithelp.ithome.com.tw/upload/images/20181017/201118713yN41rc0fc.png
資料來源: https://social.technet.microsoft.com/wiki/contents/articles/51499.azure-kubernetes-service-aks-getting-started.aspx


參考資料


上一篇
Day 5 - 部署應用程式到 Kubernetes 叢集 - Part II - 使用配置檔案部署應用程式
下一篇
Day 7 - 發布 Image 到 Azure Container Registry (ACR)
系列文
15 分鐘學習系列 - 第一次學 Kubernetes 就上手30

尚未有邦友留言

立即登入留言