具体配置可以参考之前的帖子,大概的配置是 5950X+128G+若干存储,host 系统是 proxmox ,安装了若干 lxc 和 vm 。其中有一个 lxc 用作 docker host ,lxc 基本上以服务类型区分,网关、下载、文件服务等等。
配置混乱,维护困难。难以记忆。作为一台 nas ,基本上不遇到大问题,我是不会进入到 cli 来进行维护,这样造成很容易忘记一些配置容器时的参数,包括挂载路径、密码、用户等等,结果就是上新服务麻烦,维护旧服务也很麻烦;
通过 ansible 进行各种服务的安装,包括创建 lxc ,安装 /更新 lxc 环境相关组件,安装 docker 服务,创建 /启动 /更新相关容器。目前已经实现了一个 lxc+几个 docker 容器的配置,实验下来体验完好。接下来只要按部就班把需要的服务一个个写成 playbook 就好。
目前有这两大方面的疑问,提前感谢各位给予的各种建议。
1
ltkun 2022-08-14 10:33:31 +08:00 via Android
我就是这么干的 不过也越来越臃肿了 pve 非特权 lxc 里面开 docker 关于互访 我暂时没有考虑 docker 网络配置比较灵活 哪怕不是同一网络都可以通过主机不同端口通信 container 甚至都能得到家里网络的实际 ip
|
2
sidkang OP @ltkun 确实可以,我之所以想搞网络隔离还是希望能够通过白名单的方式来给其他人 /家里人用相关的服务,安全到还是其次,网络简单用的话还是因为这个有点不放心。
|
3
ltkun 2022-08-14 11:02:06 +08:00 via Android
pve 隔离也很方便 因为它自带 VLAN 对于外网用户也可以用各种方式进行隔离 比如我用 openvpn 的不同配置来访问不同子网
|
5
ruidoBlanco 2022-08-15 06:40:42 +08:00 4
根据我的用法,大体说下:
- 我的 pve 上跑三个 lxc docker host ,按功能分配容器: 1. caja: jellyfin, heimdall, minio, node-red, paperless-ng, uptime-kuma ,总之各种家用服务 2. arr: radarr, sonarr, tdarr, transmission, prowlarr ,wireguard ,下载一条龙 3. adguard: adguardhome ,netinstallxyz ,算「基础设施」吧 - 每个 docker host ,都是一个 docker-compose 拉起所有服务。容器间如果需要在同一个网络,那么就放同一个 lxc ,比如 arr 里面的东西。 - 不同所有的配置文件,都在 pve 的同一个目录里,比如 /disk/backup/docker ,然后这个目录用 bind mount 的方式挂载到所有 lxc host 上,然后所有 docker 容器的 config 都写到这个目录里。 另有一个数据分区,在 caja 和 arr 都需要,/disk/media ,我也是 bind mount 挂载到两个 lxc 。 - 所有的 docker-compose 文件,都在一台 vm 的同一个叫做 compose 的目录里管理,比如 caja 的在 compose/caja/docker-compose.yml ,切换子目录的时候,用 direnv 切换 DOCKER_CONTEXT 环境变量。这里当然需要先配置了 docker context 管理这些 lxc docker host 。 我用法只用到 docker-compose ,完全不需要 swarm 或者 k3s 。也不需要 ansible ,docker host 只需要大体配好一台,pve 里做成 template ,以后就是 clone 的事情了。vlan 感觉也是加了没必要的复杂度。 |