在云上做了一次 ops,感觉像是在烂泥里爬行

2022-09-15 05:17:13 +08:00
 levelworm

当然如果是 bare metal 上肯定也好不到哪里去。

今天尝试把一个 Docker Image 推送到 Google Cloud ,然后用 Cloud Run 跑服务,遇到了无数的问题。先是 Docker 不熟练,需要用 Nginx 服务器把 MKDocs 编译出来的静态站点显示出来,研究了半天 Dockerfile 的语法,终于用双 Docker 的方法搞定了。本地上能够用 127.0.0.1:80 来访问,第一阶段成功。

接下来是把 Docker Image 放在 Cloud Run 上跑。碰到了许多问题——首先是许可不足,搜索了一下,发现可以用 impersonate service account 的方法借服务账号的权限。第一次成功了,把 Docker Image 推送到了 Artifact Registry ,但是 Cloud Run 怎么跑也跑不出来,看 log 什么也没有。这次折腾了不少时间,后来发现,原来是自己脑残,M1 上 build 的不能在云端用,必须是 amd64 的。

重新编译了之后再次推送,老问题出了新花样,不知道什么原因总是说我没有 crendential ,折腾了老半天,只好用另外一种办法给 docker 推送的权限,这次总算搞定了。最后一步就是访问 Cloud Run 的网站,发现 Cloud Run 的 url 总是显示 403 ,原来是需要 token ,但是 Chrome 上改 header 十分麻烦,最后用 Modheader 解决了。

当然事情还没做完,之后还要研究怎么用 GitHub Action 来做 CICD ,不然如何做到动态部署呢?当然今天实在是没心思搞了,明天继续。

我的感想就是,让我们这种没做过开发的人做 Ops ,真是受罪。我从来没用过 Nginx 的人,哪里知道怎么设置?更别说还得在 Docker 里写额外的设置。我也没弄过 Cloud Run ,它是有 doc ,问题是 doc 未必能解决我的问题,最后还是 Stackoverflow 一把梭。好在本人搜索技能尚可,所有的东西都能搜到。看来搜索能力的确是我们这种挫逼的必备技能。

3067 次点击
所在节点    程序员
32 条回复
Chad0000
2022-09-15 05:20:26 +08:00
建议使用 Azure DevOps ,GitHub actions 局限太多。
levelworm
2022-09-15 05:24:47 +08:00
@Chad0000 1
多谢啊,可惜没这个,我们部署在 Google Cloud 上,且只能用 GitHub Action 或者 Jenkins ,后者更不熟悉了。。。
yin1999
2022-09-15 06:35:14 +08:00
可以用 Google 云的 cloud build 做 cicd ,这个简单,也能用 GitHub push 到指定分支触发,不过配置文件一开始写起来可能比较麻烦,你可以尝试先在 cloud function 里面建一个代码编译运行的实力
yin1999
2022-09-15 06:37:05 +08:00
@yin1999 接 #3 ,就是通过自动拉取仓库代码构建的实例,它会在 cloud build 里面生成一个 build 的任务,拷贝里面的 yaml 文件,依样画葫芦写一个适用于 cloud run 的,我去年是这么搞的,可以试试
defunct9
2022-09-15 06:42:54 +08:00
开 ssh ,让我来
levelworm
2022-09-15 07:19:22 +08:00
@yin1999 多谢,我倒是想用这个,但是经理建议先试试看 GA 。对我来说都是新东西,都行。。。
AS4694lAS4808
2022-09-15 07:50:23 +08:00
楼主没做过开发?那岗位是?
calmzhu
2022-09-15 08:04:45 +08:00
“让我们这种没做过开发的人做 Ops ,真是受罪”

为什么会有这种错觉,小白第一次做 Ops 就必须上帝护体 一帆风顺?

自信点,不用加限定. “让这种没做过 xx 的人做 xx ,真是受罪” 绝大多数都是正常的.
ck65
2022-09-15 08:08:23 +08:00
没经验就可以终结话题了,心里话写在日记里多好。
xuanbg
2022-09-15 08:12:04 +08:00
OP 这样的经历已经算是非常顺畅的了呀!哪有第一次就能一路顺畅毫无问题的。做过一次就会了不是。
levelworm
2022-09-15 08:13:29 +08:00
@AS4694lAS4808 7
按照做的东西来看,一半写 ETL 一半做 ops 。。。好吧 ETL 也算开发。
levelworm
2022-09-15 08:13:55 +08:00
@calmzhu 8
我觉得做过开发用过 Nginx 的人,大概能好点?
levelworm
2022-09-15 08:14:19 +08:00
@ck65 9
我忘记有这个版块了!
xiaket
2022-09-15 08:14:41 +08:00
没经验就好好学, 不要乱 stackoverflow.
levelworm
2022-09-15 08:15:06 +08:00
@xuanbg 10
多谢,就是做的真心头大,坦白地说我觉得可能一天做出来,也可能一百天也做不出来。。。纯粹是到处拼凑出来的。我其实很想在 bare metal 上从头做一遍。
levelworm
2022-09-15 08:16:14 +08:00
@xiaket 14
文档还是培训?培训就不说了,说的特别浅。文档嘛,的确找到不少,问题是文档也不会说包解决啊,只有 SO 是确定一定会有各种场景的。很多文档的链接其实也是从 SO 找到的。。。
calmzhu
2022-09-15 08:18:25 +08:00
@levelworm
第一次用都一样..
levelworm
2022-09-15 08:20:30 +08:00
@calmzhu 17
原来如此。我好希望能有个大部头的书看这些(可能是早期用 MSSQL 留下的印象,SQL Server 有很多很详细的大部头),不过好像自从入行之后,最多的是看文档和查 SO ,很多开源工具连书都没有。
learningman
2022-09-15 08:31:40 +08:00
@levelworm #18 这年头,等书印出来了 API 可能都变了,甚至整个工具都过时了,有文档不错了,前端有的工具给个 TS 类型自己看源码吧
levelworm
2022-09-15 08:59:52 +08:00
@learningman 19
看来的确不能期望太高啊。。。前几年做 Vertica 的时候,一翻书都是 15 年之前的,就弃疗了,只能看文档。这种数据库(包括 BigQuery )的 internal 似乎也没有书。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880128

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX