部署容器化应用程序
容器实例
容器正在变成对云应用程序执行打包、部署和管理操作的首选方式。Aure容器实例提供了在Aure中运行容器的最简捷方式,既无需管理任何虚拟机,也不必采用更高级的服务。不管什么方案(包括简单应用程序、任务自动化、生成作业),只要能够在隔离容器中操作,就可以使用Azure容器实例这种解决方案。
与虚拟机(VM)相比,容器的启动优势明显。Azure容器实例可在数秒内启动Azure 中的容器,且无需预配和管理VM。从 Docker Hub引入 Linux或Windows容器映像、专用Azure容器注册表或其他基于云的Docker注册表。Azure容器实例会缓存几个常见的基础操作系统映像,有助于加快自定义应用程序映像的部署速度。
使用Azure容器实例可以通过公共IP地址和完全限定的域名(FQDN)直接向Internet公开容器组。创建容器实例时,可以指定自定义的DNS名称标签,以便应用程序可在customlabelazureregion.azurecontainer.io上访问。
通过提供交互式 shell,Azure容器实例还可以在正在运行的容器中执行命令,以帮助进行应用程序开发和故障排除。访问通过HTTPS进行,并使用TLS来保护客户端连接。
容器组
容器组是安排在同一主机上的容器集合。容器组中的容器共享生命周期、资源、本地网络和存储卷。
此示例容器组:
- 安排在一个主机上。
- 已分配 DNS 名称标签。
- 公开一个公共IP地址(只有一个公开端口)。
- 由两个容器组成。其中一个容器侦听端口80,另一个容器侦听端口5000。
- 包含两个Azure文件共享作为卷装载,每个容器本地装载一个共享。
Kubernetes服务
Kubernetes是一个快速发展的平台,用于管理基于容器的应用程序及其相关网络和存储组件。重点关注应用程序工作负荷,而不是底层基础结构组件。Kubernetes提供了一种声明性的部署方法,由一组针对管理操作的强大API提供支持。
你可以生成和运行可移植的、基于微服务的现代应用程序,这些应用程序可通过Kubernetes安排和管理这些应用程序组件的可用性而受益。由于团队通过采用基于微服务的应用程序而取得进展,因此Kubernetes支持无状态和有状态应用程序。
作为开放平台,Kubernetes可使用首选的编程语言、OS、库或消息总线生成应用程序。现有的持续集成和持续交付(CICD)工具可以Kubernetes 集成,以计划和部署版本。
Kubernetes群集分为两个组件:
- 控制平面节点提供Kubernetes核心服务和应用程序工作负载的业务流程。
- 节点运行应用程序工作负荷。
自动缩放群集 Automatically scale a cluster
- 为了满足Azure Kubernetes Service(AKS)中的应用程序需求,您可能需要调整运行工作负载的节点数。集群自动标尺组件可以监视集群中由于资源限制而无法调度的pod。当检测到问题时,节点池中的节点数将增加以满足应用程序需求。还定期检查节点是否缺少运行的pod,然后根据需要减少节点数。这种自动增加或减少AKS集群中节点数量的能力使您能够运行高效、经济高效的集群。
- 要求运行的是Azure CLI版本2.0.76或更高版本。运行以查找版本。如果需要安装或升级,请参阅安装Azure CLI
Azure Kubernetes服务(AKS)
可以使用Azure Kubernetes服务(AKS)在Azure 中轻松地部署托管的Kubernetes 群集。AKS通过将大量管理工作量卸载到Azure,来降低管理Kubernetes 所产生的复杂性和操作开销。作为一个托管Kubermetes服务,Azure 可以自动处理运行状况监视和维护等关键任务。Kubernetes 主节点由 Azure管理。用户仅管理和维护代理节点。作为托管型Kubernetes 服务,AKS是免费的-你只需支付群集中的代理节点费,不需支付主节点的费用。
可以在Azure门户中使用 Azure Cl 或模板驱动型部署选项(例如资源管理器模板和Terraform)来创建AKS群集。当你部署AKS 群集时,系统会为你部署和配置Kubernetes主节点和所有节点。
另外,也可在部署过程中配置其他功能,例如高级网络、Azure Active Directory集成、监视。AKS支持Windows Server容器。
虚拟节点virtual nodes
- 若要在 AKS 群集中快速扩展应用程序工作负载,可以使用虚拟节点。 使用虚拟节点,您可以快速配置 pod,并且只需为其执行时间支付每秒费用。 您无需等待 Kubernetes 集群自动扩缩器部署 VM 计算节点即可运行额外的 pod。 仅 Linux pod 和节点支持虚拟节点。
- 虚拟节点支持在 Azure 容器实例 (ACI) 中运行的 Pod 与 AKS 群集之间的网络通信。若要提供此通信,请创建虚拟网络子网并分配委派的权限。虚拟节点仅适用于使用高级网络 (Azure CNI) 创建的 AKS 群集。默认情况下,AKS 群集是使用基本网络 (kubenet) 创建的。
- 在 Azure 容器实例 (ACI) 中运行的 Pod 需要访问 AKS API 服务器终结点,才能配置网络。
连接到群集
- 使用命令在本地安装Azure Cloud Shell
az aks install-cli
- 配置命令连接到 Kubernetes 集群。
1:下载凭证并配置 Kubernetes CLI 以使用它们。
2:使用Kubernetes 默认配置文件。指定Kubernetes 配置文件位置 --file.~/.kube/config
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
-使用 kubectl get 命令验证与集群的连接。 此命令返回集群节点列表。
kubectl get nodes
输出显示在前面的步骤中创建的单个节点。 确保节点状态为 Ready.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-31718369-0 Ready agent 6m44s v1.12.8
官网:
https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough
Azure容器注册表
Azure存储镜像的地方,类似docker hub
Azure 容器注册表是基于开源Docker注册表2.0的托管专用Docker注册表服务。可以创建和维护Azure容器注册表来存储与管理专用的Docker 容器映像和相关项目。
将Azure容器注册表与现有的容器开发和部署管道配合使用,也可使用Azure容器注册表任务在Aure中生成容器映像。可以通过源代码提交和基础映像更新等触发器按需生成或完全自动生成。
任务