docker 我的世界服务器_二代无服务器:谷歌最新Cloud Run一览

b9f3b8d22dc44f4599af58d5f0be98d6.png

全球含金量容器认证CKA培训北京站文末招生了

谷歌上周在其Cloud Next '19会议上推出了Cloud Run,这是一种基于Docker容器运行无服务器应用程序的新解决方案。可以说这是无服务器计算的重要一步——部署到Cloud Run要比在Kubernetes上运行容器容易得多,而且它也没有Lambda功能的架构限制。

8dbbb2fd6db1c4d43ed9413fbe4958d5.png

什么是谷歌 Cloud Run?

谷歌Cloud Run是一个完全托管的平台,可以获取Docker容器镜像并将其作为无状态的自动扩展HTTP服务运行。

Cloud Run与第一代无服务器平台(例如AWS Lambda、Google Cloud功能或Azure功能)之间的区别在于:它允许你运行为多个端点提供服务的任意应用程序(而不是具有特定接口的小型功能)。

Cloud Run基于Knative,这意味着类似的解决方案可能会出现在其他托管的Kubernetes平台上。

我的项目是否能在Cloud Run上运行?

谷歌发布了一个Container运行时契约,其中列出了对容器的要求,包括:

——容器是为64位Linux编译的;

——容器侦听端口8080上的HTTP请求;

——最高可容纳2GB内存;

——容器实例必须在收到请求后的四分钟内启动HTTP服务器;

——你的应用程序应该工作(容器从0自动缩放到多个运行实例);

——所有计算都是无状态的,并且作用于请求。

只要你的项目符合上述一般要求,你就可以在Cloud Run上运行使用任何编程语言编写的任何应用程序。

请注意,Cloud Run目前处于测试阶段,因此这些要求可能会随时间而变化。

没有workflow(这是一件好事)

已经熟悉Docker或Heroku等传统PaaS解决方案的开发人员会感到十分亲切。

一旦你的应用程序打包在Docker中,只需:

将容器镜像推送到Google Container Registry;

运行gcloud beta run deploy。

几分钟后,Cloud Run将在域下配置一个新的应用程序,你可以自定义并公开。

示例:使用Semaphore进行持续部署

在下面的演示中,我们将使用Semaphore配置无服务器CI / CD管道,用于微服务,它将执行以下任务:

——运行自动化测试;

——构建一个Docker容器;

——将容器镜像推送到Google Container Registry;

——提供一键式手动部署到暂存Cloud Run环境;

——在主Git分支上成功构建之后,自动部署到生产Cloud Run环境。

492c15b43b1bc07cc533f05ea4840e48.png

你可以在GitHub上找到项目的完整源代码。

启用Cloud Run

谷歌官方快速入门指南提供了Cloud Run入门的路线图。

第一步是:

——在你的帐户中启用Cloud Run API;

——安装Google Cloud SDK;

——使用gcloud组件安装测试版安装测试版组件,或者如果你之前使用gcloud组件更新安装了测试版组件,进行更新。

Docker化应用程序

在该示例中,我们将使用与以下Dockerfile打包在一起的简单Sinatra Web应用程序:

b514c771a3994af8dbee69a65f0b2ea9.png

在调整现有Dockerfile时,确保应用程序在端口8080上运行可能是需要进行的唯一更改。如果不这样做,你可能会看到如下错误:

6469e7ed1f0952495fee40cd851a1d0b.png

使用Google Cloud和Container Registry(GCR)进行身份验证

为了在CI / CD管道中自动将Docker镜像推送到GCR,Semaphore需要使用Google Cloud进行身份验证。为安全起见,我们需要根据Google Cloud服务帐户的身份验证密钥创建Semaphore秘密。

获得身份验证密钥后,使用Semaphore CLI将其作为秘密上传到Semaphore。秘密应该定义一个文件,让我们称之为.secrets.gcp.json:

1 sem create secret google-cloud-stg --file ~/Downloads/account-name-27f3a5bcea2d.json:.secrets.gcp.json

定义交付管道

现在可以编写一个Semaphore管道来构建、标记并将Docker容器推送到GCR:

a8366f215377d79fa2cb7d1004bb0cd1.png

137e7bec804ca40e094e3072cad2e374.png

deploy-staging.yml和deploy-production.yml中定义的管道运行相同的步骤,区别在于服务的名称。

以下是生产部署的运行方式:

233f006293a7cddb5a34b3594c7482b0.png

上线

本地终端或Semaphore作业中部署日志的最后一行将包含新应用程序所在的URL,例如:

https://semaphore-demo-cloud-run-ud2bmvsmda-uc.a.run.app.

第一次打开URL时,你将看到:

f40de266d74edfcfc57becb4ab2e72fb.png

这是因为还有一个步骤要做,那就是在Cloud Run控制台中公开你的服务。 瞧:

cb953a9a6275f4de159a063dc667cdcb.png

最后

希望本文能够鼓励你使用运行良好的CI / CD管道为Cloud Run构建和运送内容。接下来就看你的了。

文章推荐:

  • 2019假说大乱斗:云和容器世界即将发生什么?
  • 一场车库项目引发的Kubernetes开发者斗争
  • AT&T的八位数大单 示意Kubernetes或成5G操作系统?
  • 微服务、Kubernetes和无服务器之后,即将发生的……
  • 游走于云原生与DevOps世界的开源存亡

ea74549017fe4995e25f0071aeb47bbb.gif

4月25-28日CKA北京站报名啦!!!


北京(4.25-4.28)、深圳(待定)、广州(待定),其它城市根据参与人数安排,大家快来报名吧!

eb4f582f2bc4c11ce08c5cc18db78296.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值