系列文章目录
什么是 Cloud Run
Cloud Run 是一项完全托管的服务,它允许用户通过编写任何编程语言的代码并将其容器化,然后将容器镜像部署到 Google Cloud 上来运行应用程序。您无需创建集群或管理基础设施。
运行容器的实例可根据负载情况自动扩展,在不处理时将实例数量缩减为 0。
由于可以将应用程序从容器镜像中部署出来,因此具有很高的执行环境灵活性,应用场景广泛。
您可以参考官方文档中介绍的一些使用场景,例如网站和移动后端等(请参阅官方文档)。
此外,Cloud Run 基于开源软件 Knative(请参阅Knative),后者可以在 Kubernetes 上构建无服务器计算基础架构。
Cloud Run 的基础知识
两种使用方法
Cloud Run 提供了两种使用方式:Cloud Run 服务和Cloud Run 任务。有时它们也会被分别称为 Cloud Run (services) 和 Cloud Run (jobs)。
可以理解为在作为 Google Cloud 产品之一的“Cloud Run”中,可以创建“Cloud Run 服务(services)”和“Cloud Run 任务(jobs)”这两种资源。
本文主要介绍 Cloud Run 服务。
Cloud Run 服务 (services)
在Cloud Run服务中,只需部署容器镜像,即可获得容器运行环境(容器实例)和接收HTTPS请求的端点。
它用于接收请求并返回响应的网站和API接口等场景。
- 参考资料:资源模型
Cloud Run 任务 (jobs)
在 Cloud Run 任务中,可以使用容器实例来运行用户编写的代码,而无需以 HTTP 请求为触发点,而是作为 任务 来执行。
任务可以在任意时间点执行,并且通过组合多个容器实例运行,可以实现超过60分钟的任务执行或并行处理。
如果您希望使用高效的资源管理方式进行批处理,并且选择一种无服务器的容器执行环境,那么Cloud Run将是一个合适的选择。
有关 Cloud Run jobs 的更多信息,请参阅以下文章。
动态缩放
为了处理通过HTTPS端点接收到的请求,Cloud Run服务会自动扩展容器实例。
容器实例默认可以扩展到最多 1000 个,当没有请求时,实例数量会缩减至 0 个。
服务冗余
Cloud Run 服务将在特定区域内创建,并且为了实现高可用性和故障转移,该服务会自动复制到区域内的多个可用区。
Cloud Run 是一种“区域性服务”。这意味着你可以选择使用哪个区域,但不需要选择具体的可用区。换句话说,用户无需关心可用区的分配,系统会自动进行合理的负载均衡,并且能够自动应对可用区出现的故障。
- 参考资料:为云基础设施中断设计灾难恢复
部署
用于部署的容器映像。
部署到 Cloud Run 的容器镜像应存储在 Google Cloud 的托管容器注册表中,即 Container Registry 或 Artifact Registry。
您也可以使用其他项目中的容器镜像。
通过使用无服务器的CI/CD平台——Cloud Build,当代码推送到Git仓库时,也可以实现持续部署到Cloud Run(参考)。
容器要求。
要在Cloud Run上运行的容器需要满足一些要求。
有关详细要求,请参阅官方文档。
- 容器映像中的可执行文件必须针对 Linux 64 位编译。
- 需要监听地址为 0.0.0.0 的请求&