GCP Deploying Apps to Google Cloud Lab

本文档记录了一次在谷歌云平台上进行应用部署的实战过程,包括使用App Engine创建应用、Docker构建测试、Kubernetes集群管理以及Cloud Run服务的设置。涉及到的关键操作有:配置app.yaml、Dockerfile、创建应用实例、部署不同版本及流量分配、Kubernetes集群连接、Pods和Service管理,以及Cloud Run的快速部署和访问验证。整个流程详尽展示了谷歌云平台在应用管理和部署方面的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最后更新2022/03/14

今天的室验是deploy app,和以前的好像有点重复,再来一遍吧,加深印象,另外还有些新操作。

还是先下一个git repository,这个里面包括了python service main.py,requirements.txt,Dockerfile,还有html之类的,我要做的就是搞一个app.yaml,里面很简单,只有一行,设置一行:
runtime: python 3.7

Docker build test就不做了,因为都是git里面的,指定docker就好,提示一下build 之后run test,会启动docker,service 8080端口,这时候在cloud shell上沿菜单里有一个app test,就是在>_旁边,一个窗口样的图标,可以直接打开一个新web page连8080,当然你也可以copy docker提示的service link

下面先要create一个app,可以理解为app engine的engine:
gcloud app create --region=us-central

然后deploy我们的app(根据app.yaml和当前目录的Dockerfile控制)到这个engine:
gcloud app deploy --version=one --quiet

可能提示一些版本问题,但不用管,deploy之后就可以到app engine的页面去查看了。这里有点乱,第一次到app engine页面要你get start,似乎是首次进入必须的,其实我们已经有啦!我就点了service,能看到已经有一个default 的instance,正如我所需要的,web检查,啥都正常。

再下面做些更改,修改main.py输出,重新deploy一遍,注意参数选择no-promote,这个意思是只deploy出去,但不publish,这样你能看到两个instance,只有一个在服务,也就是以前的version one,如果要访问新的version two,则要访问另一个单独的link:
gcloud app deploy --version=two --no-promote --quiet

再翻到app engine->versions,能看到两个version,在右侧顶行菜单,有start,stop等操作,注意有一个竖三点,标识更多操作,里面有split,可以让我们将对外服务分流,找这个隐藏split命令也找了半天,找到就没什么了,挺有意思的功能。

下一个室验是kubenetes,先建个kubenetes cluster,然后连接过去。建立时间有点长,可能要10分钟,连接命令也是竖三点里面,在kubenetes cluster instance行最后,可以用命令或gcloud console直接生成页面。
查看一下:
kubectl get node

三个node都在,运行正常。下一步要做个config.yaml文件,控制build,具体内容看实验说明,不贴了。注意生成的image,要替换config.yaml中的< your image here >,就是

就deploy这个docker,还是一条命令:
kubectl apply -f config.yaml

查看一下:
kubectl get pods
kubectl get service

get pods如果马上执行,能看到执行过程,先出来一个创建container的instance,然后是其它node run等等。

然后验证,不知道为啥我的没成功,很可能是改的main.py中输出kubernetes少了一个r,不管了,反正自己亲测web能访问的。

最后一个室验,cloud run,同样修改了main.py输出,然后一条命令:
gcloud build submit --tag gcr.io/$DEVSHELL_PROJECT_ID/cloud-run-image:v0.1 .
注意不要少了最后一个点.

然后到cloud run菜单,create service,又很难找,cloud run在service子菜单里。

然后选择我们刚才生成的那个image,autoscale设置6(default 100),authentication设置un。。。表示internets谁都可以访问

最后create,这个应该很快,但也要几分钟。

OK,室验都完成。

另外还有要注意刚做完操作,dashboard等等页面要等一会儿才会更新(可用),经常出现与预期不一样的初始化界面等等,这个不用管他,喝杯茶,走一圈,回来刷一下就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ensighine

如需特定专题,踢我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值