前端程序员关于 Docker 和 Kubernetes 的一点疑惑

2020-12-05 08:13:49 +08:00
 naoh1000

前端想要转后端的垃圾程序员,最近写了一些自己的项目,打算用 Docker 和 Kubernetes 部署,遇到了一些疑惑,查了很多资料后没有解决,希望大佬能够帮忙解答。

  1. 单节点服务有必要使用 k8s 吗? 官网写的 k8s 功能和优势大多数都表现在多服务器,项目初期只有一台服务器有必要使用 k8s 吗?
  2. 有必要自建 Docker Registry ? 如果项目都是在自己的服务器部署,有必要通过自建 Docker Registry 来绕开 Docker Hub 不充钱只能创建 1 个私有项目的限制吗?我看到一些个人开发者是在服务器上 git pull & docker build -t xxxx
  3. 多个项目应该使用多个数据库容器还是共用一个? 经常在搜索引擎上看到“数据库应该装在 Docker 里吗”这样的问题,不同人持不同看法。想知道如果我把数据库安装在 Docker 里,多个项目应该使用多个数据库容器还是共用一个?如果使用 Docker Compose 部署,大多数情况下每个项目都会自带一个数据库,是否会拖慢速度?这样的话如何方便的管理数据库里的数据?
  4. 如何方便的管理运行在一台服务器上的多个项目? 相互没有联系的容器。之前使用过 Docker Compose 管理,发现一个项目的容器启动后想关掉就只能关掉 docker-compose.yml 里的全部容器了,很不方便,现在自己写了一个 py 脚本管理,大佬们有没有更好的方法?
5639 次点击
所在节点    云计算
19 条回复
holulu
2020-12-05 08:29:04 +08:00
直接去有 k8s 服务的云服务商上开集群就行了,数据库服务、Docker Registry 服务、部署管理服务啥都有,没必要自己折腾这么底层的。上面几点现在都是运维考虑的,开发者基本不考虑这些。
snowfuck
2020-12-05 08:29:53 +08:00
1.没有,你的理解是对的; k8s 是应对大规模容器化部署运维的,没这个需要没有上的必要
2.没有,怎么方便怎么来
3.数据库用同一个会好一点,跑多个就要占用多份资源;可以看下别人的 compose 文件改下
4.docker-compose -f docker-compose.yaml stop xxx ; 这里的 xxx 是 compose 里定义的一个服务,是可以用 docker compose 管理单个服务的,有依赖另当别论

我不是大佬,一点浅见仅供参考。
cnbattle
2020-12-05 08:32:24 +08:00
1 没必要
2 不用 可以用阿里云或腾讯云 等的免费的服务
3 只有一台服务器的话 ,没多版本需要,就用一个,否则多个
4 自己使用问题 可以指定停止

个人拙见
lizheming
2020-12-05 08:35:35 +08:00
1. 单机都是直接 docker-compose 超级方便
2. Github Registry 了解一下,可以私有项目传镜像哦
3. 数据库建议一个,这样备份也好备份呀~直接设置 net 在同一个网络下应该就行了
4. 楼上说的+1
lizheming
2020-12-05 08:36:46 +08:00
@cnbattle 阿里云镜像仓库好像是收费的?腾讯云的目前公测免费倒是。
yzbythesea
2020-12-05 08:37:34 +08:00
小项目不上云就用 docker compose
eudore
2020-12-05 08:54:03 +08:00
1 、私人小项目就 rancher 或 docker compose
2 、Registry 除了 hub 还有各种云都有免费的使用。
3 、数据可以放 docker 里面,然后-v 把数据卷挂载进去就好了
4 、建议使用 rancher 就是一个 web 版 dockercompose,compose 我用的少,启动是可以指定配置文件去 up 的。
cnbattle
2020-12-05 08:57:28 +08:00
@lizheming 有个人开发者免费的方案
lizheming
2020-12-05 09:16:03 +08:00
@cnbattle 原来如此!
zliea
2020-12-05 09:42:50 +08:00
1. 单节点纯 docker 即可,3 节点以上可以使用 swarm 管理,一般上没有 20 台机器不推荐用 k8s 。
2. 单节点可以不折腾镜像仓库,如果服务器本地构建镜像可以不折腾,如果远程构建搭一个也很简单。
3. 公用一个数据库服务器(容器),我现在都是使用 docker 管理(包括一些生产环境),现在好一点的镜像都是使用外部数据库服务的。
4. 开源项目 portainer 了解一下,可视化管理。
echowuhao
2020-12-05 09:47:24 +08:00
99%的项目不需要 k8s
yuzhiquan
2020-12-05 09:48:33 +08:00
前端对应的概念不是 serverless 吗?
hantsy
2020-12-05 09:48:59 +08:00
Docker Compose 现在也支持云部署啦。
在 Docker Cloud 和 Docker Swarm 市场反响不好的情况,Docker 另辟途径,让 Docker Compose 规范去兼容 K8S,这个项目开发很长时间了,目前好像 AWS 可以用了。

https://aws.amazon.com/blogs/containers/deploy-applications-on-amazon-ecs-using-docker-compose/
hantsy
2020-12-05 09:50:14 +08:00
前端一样要用 Docker 啊。

可以在 CI 把项目编译把包,用 Docker Image 发布。
monkeyWie
2020-12-05 10:56:07 +08:00
单机可以试试 k3s
mauve
2020-12-05 12:55:54 +08:00
gitlab 免费版全都有
hardy4y
2020-12-05 16:37:34 +08:00
直接上阿里云的 serverless 不香吗?屏蔽了 node 的概念,不用关注又多少个节点,阿里云的 docker registry 也不收费啊.
单节点想用 k8s 的特性可以用 k3s.
mywaiting
2020-12-05 17:45:41 +08:00
1 、单服务节点没有必要用 k8s,如果自己实在想用这类编排实现,建议可以试试 hashicorp nomad 比 k8s 心智负担少很多
2 、没有必要自建,Github 有
3 、项目有相关性的可以一个容器,无相关的多个容器。自己的项目还单节点服务器,一个容器简单方便
4 、见 2 楼现成的命令
chenqh
2020-12-05 22:55:13 +08:00
借楼问一下,docker-compose 怎么实现滚动重启 app?

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

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

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

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

© 2021 V2EX