首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从自动将新容器部署到Google计算引擎

从自动将新容器部署到Google计算引擎
EN

Stack Overflow用户
提问于 2021-11-10 06:53:26
回答 1查看 809关注 0票数 2

我有一个码头容器,我把它像gcloud builds submit --tag gcr.io/<project-id>/<name>一样推到GCR上,当我在GCE实例上部署它时,每次部署它都会创建一个新的实例,并且我必须手动删除旧的实例。问题是,是否有一种方法来部署容器并强制GCE实例获取新的容器?我需要确切的GCE,而不是Google运行或其他,因为它不是一个HTTP服务。

我使用Deploy to Cloud Run按钮从Google控制台部署容器

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-22 15:26:34

为了更好的能见度,我发布了这个Community Wiki。在注释部分,已经有了一些好的解决方案,但是OP最后想要使用Cloud Run

首先,我想澄清几件事。

我有一个码头集装箱,我把它像gcloud builds submit一样推到GCR

gcloud builds submit是一个使用Google 云构建构建的命令。

云构建是一种在Google平台基础设施上执行构建的服务。云构建可以从云存储、云源存储库、GitHub或Bitbucket导入源代码,按照您的规范执行构建,并生成工件,如Docker容器或Java归档文件。

在这个问题中,OP指的是集装箱登记处,但是GCP建议使用工件登记处来代替Container Registry

Artifact Registry文档中解释了从推拉图像中推拉图像的过程。这可以通过docker pushdocker pull命令来完成,在此之前,您必须标记一个图像并创建Artifact Registry

在不同产品上的部署

关于在GCEGKECloud Run上的部署,这些都是GCP产品,它们与每个产品都有很大的不同。

GCEIaaS,您将指定资源的数量,并维护所有软件的安装(您需要安装Docker、Kubernetes、编程库等等)。

GKEHybrid类似,因为您提到了所需的资源数量,但它是自定义的,以便在其上运行容器。创建之后,您已经拥有了运行容器所需的docker、kubernetes和其他软件。

云运行是一个无服务器的GCP产品,您不需要计算所需资源的数量,安装软件/libs,它是一个完全管理的无服务器平台。

当您想从Artifact Registry / Container Registry部署容器应用程序时,您正在创建另一个VM (GCE和GKE)或新服务(Cloud )。

如果您想在同一个VM上部署新应用程序:

  • 在GCE上,您需要使用Docker或Kubernetes (Kubeadm)来提取映像并将其部署到该VM上。
  • 在GKE上,您需要使用以下命令部署一个新的deployment
代码语言:javascript
复制
kubectl create deployment test --image=<location>-docker.pkg.dev/<projectname>/<artifactRegistryName>/<imageName>

删除旧的。

Cloud Run中,您可以部署一个应用程序,而不需要考虑资源或硬件,这些步骤都是这里描述的。您可以为图像中的特定更改创建revisions。然而,Cloud Run也允许使用GitHubBitBucketCloud Source Repositories进行CI/CD。这个过程在GCP文档- 连续部署中也有很好的描述。

可能的解决方案:

  • 在每次运行CI/CD管道时为您编写一个Cloudbuild.yaml文件
  • 在GCE上编写一个小型应用程序,订阅由Cloud创建的Pub/Sub通知。然后,您可以提取新容器或启动一个新实例。
  • Cloud RunCI/CD结合使用。

基于OP的一个注释,所选择的解决方案是将Cloud RunCI/CD结合使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69908932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档