浅谈Azure Kubernetes Service, Azure Container Registry, Azure Container Instance

今天和大家聊聊Kubernetes和Public Cloud整合的例子,现在网络上由很多 Kubernetes on AWS/GCR的应用。因为我目前已经使用了微软的Azure服务,因此在接下来的内中中会主要和大家介绍一下Azure Kubernetes(AKS)以及与其相关的Azure Container Registry (ACR) 与 Azure Container Instance (ACI) 基本概念.

Azure Kubernetes Service (AKS)
Azure Kubernetes Service是由微软提供的一个PaaS版本的Kubernetes服务(以下简称AKS),微软的AKS为我们提供了简单的部署方式与管理操作界面。其主要具有一下几个特点:

  • 使用者无需担心升级与故障修复问题,AKS提供简单的升级方式和自动的故障修修复
  • AKS服务具有高度可用性
  • AKS具有高度的可扩展性,可以通过命令行或UI快速的进行扩展
  • AKS提供API Server监控机制
  • AKS可以通过AAD以及RBAC来管控群集的存取安全性
  • AKS的服务(Master节点)由Azure进行托管并免费对用户提供使用,用户只需承担worker node的费用
    这里要和大家简单的说一下,因为AKS是一款PaaS的服务,所以不需要用户去构建并维护Master节点,只需要通过Kubernetes API Endpoint使用相关的命令行工具来管理AKS。使用 AKS 配合 Azure 服务 Helm, Azure DevOps Project, ACR, ACI, Azure Monitor 提供从开发到生产环境的完整解决方案。
    浅谈AKS,ACR,ACI_第1张图片

Azure Container Registry (ACR)
相信各位对共有的docker镜像存储仓库docker hub都很熟悉,对ACR却很陌生,其实ACR是微软提供的可以用来存储所有容器部署类型的映像,我们可以把它理解成一个私有的容器镜像仓库,这个仓库可以使用docker registry相同的命令来对其进行管理。
ACR包括一下几个主要的概念:

  • Registry: 一个Azure订阅可以创建多个Container registries,可以通过webhook与Azure AD登录管理image,根据不通的registry类型,提供本机存储或者异地复制的使用情况。每个registry名称都是以FQDN的方式呈现的,如:REGISTRY_NAME.azurecr.io
  • Repository:每个registry包含一个以上的repository,以群组的方式进行存储管理,并且支持多层命名空间
  • Image:存储于respository中,当需要使用时,可以使用docker命令将image从repository去除

Azure Container Instance (ACI)
Azure 容器执行个体 Azure Container Instance (ACI), 是不需要管理虚拟机器而提供容器应用程式执行的服务, 具有快速启动的优点, 并且提供公用 IP 以及完整网域名称 (FQDN), 可以直接由网际网路存取应用程式. 此外 ACI 具有应用程式相依性隔离和资源控管, 等同于虚拟机器的安全性管理.
如下图, ACR 提供容器的储存, 并且可以将 Image 取出到 ACI 中
浅谈AKS,ACR,ACI_第2张图片
ACR 与 ACI 在 Azure Kubernetes Service (AKS) 的有密切的合作关係, Container Registry 提供 Images Repository, Pod 所执行的个体便是 ACI.
浅谈AKS,ACR,ACI_第3张图片