前端程序员关于 Docker 和 Kubernetes 的一点疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
naoh1000
V2EX    云计算

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

  •  1  
  •   naoh1000 2020-12-05 08:13:49 +08:00 via iPhone 6077 次点击
    这是一个创建于 1795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端想要转后端的垃圾程序员,最近写了一些自己的项目,打算用 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 脚本管理,大佬们有没有更好的方法?
    19 条回复    2020-12-05 22:55:13 +08:00
    holulu
        1
    holulu  
       2020-12-05 08:29:04 +08:00
    直接去有 k8s 服务的云服务商上开集群就行了,数据库服务、Docker Registry 服务、部署管理服务啥都有,没必要自己折腾这么底层的。上面几点现在都是运维考虑的,开发者基本不考虑这些。
    snowfuck
        2
    snowfuck  
       2020-12-05 08:29:53 +08:00   1
    1.没有,你的理解是对的; k8s 是应对大规模容器化部署运维的,没这个需要没有上的必要
    2.没有,怎么方便怎么来
    3.数据库用同一个会好一点,跑多个就要占用多份资源;可以看下别人的 compose 文件改下
    4.docker-compose -f docker-compose.yaml stop xxx ; 这里的 xxx 是 compose 里定义的一个服务,是可以用 docker compose 管理单个服务的,有依赖另当别论

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

    个人拙见
    lizheming
        4
    lizheming  
       2020-12-05 08:35:35 +08:00 via iPhone
    1. 单机都是直接 docker-compose 超级方便
    2. Github Registry 了解一下,可以私有项目传镜像哦
    3. 数据库建议一个,这样备份也好备份呀~直接设置 net 在同一个网络下应该就行了
    4. 楼上说的+1
    lizheming
        5
    lizheming  
       2020-12-05 08:36:46 +08:00 via iPhone
    @cnbattle 阿里云镜像仓库好像是收费的?腾讯云的目前公测免费倒是。
    yzbythesea
        6
    yzbythesea  
       2020-12-05 08:37:34 +08:00
    小项目不上云就用 docker compose
    eudore
        7
    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
        8
    cnbattle  
       2020-12-05 08:57:28 +08:00   1
    @lizheming 有个人开发者免费的方案
    lizheming
        9
    lizheming  
       2020-12-05 09:16:03 +08:00 via iPhone
    @cnbattle 原来如此!
    zliea
        10
    zliea  
       2020-12-05 09:42:50 +08:00
    1. 单节点纯 docker 即可,3 节点以上可以使用 swarm 管理,一般上没有 20 台机器不推荐用 k8s 。
    2. 单节点可以不折腾镜像仓库,如果服务器本地构建镜像可以不折腾,如果远程构建搭一个也很简单。
    3. 公用一个数据库服务器(容器),我现在都是使用 docker 管理(包括一些生产环境),现在好一点的镜像都是使用外部数据库服务的。
    4. 开源项目 portainer 了解一下,可视化管理。
    echowuhao
        11
    echowuhao  
       2020-12-05 09:47:24 +08:00
    99%的项目不需要 k8s
    yuzhiquan
        12
    yuzhiquan  
       2020-12-05 09:48:33 +08:00
    前端对应的概念不是 serverless 吗?
    hantsy
        13
    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
        14
    hantsy  
       2020-12-05 09:50:14 +08:00
    前端一样要用 Docker 啊。

    可以在 CI 把项目编译把包,用 Docker Image 发布。
    monkeyWie
        15
    monkeyWie  
       2020-12-05 10:56:07 +08:00 via Android
    单机可以试试 k3s
    mauve
        16
    mauve  
    PRO
       2020-12-05 12:55:54 +08:00 via iPhone
    gitlab 免费版全都有
    hardy4y
        17
    hardy4y  
       2020-12-05 16:37:34 +08:00
    直接上阿里云的 serverless 不香吗?屏蔽了 node 的概念,不用关注又多少个节点,阿里云的 docker registry 也不收费啊.
    单节点想用 k8s 的特性可以用 k3s.
    mywaiting
        18
    mywaiting  
       2020-12-05 17:45:41 +08:00
    1 、单服务节点没有必要用 k8s,如果自己实在想用这类编排实现,建议可以试试 hashicorp nomad 比 k8s 心智负担少很多
    2 、没有必要自建,Github 有
    3 、项目有相关性的可以一个容器,无相关的多个容器。自己的项目还单节点服务器,一个容器简单方便
    4 、见 2 楼现成的命令
    chenqh
        19
    chenqh  
       2020-12-05 22:55:13 +08:00
    借楼问一下,docker-compose 怎么实现滚动重启 app?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5785 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:06 PVG 11:06 LAX 19:06 JFK 22:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86