V2EX POST
649 subscribers
138 photos
31 videos
99 files
104K links
v2ex新贴定时推送,可按需置顶本频道然后关闭通知
Download Telegram
m1/m2 macbook data engineer 能用吗

python,java,scala...
hadoop,spark,flink...
airflow/prefect,terraform...
SQL server ,mongo db...
docker ,k8s...
其他跑在 AWS ,snowflake,或者 databricks 上
有时候需要本地架一下环境 docker compose 跑跑就行,有试过这些能能开箱即用不怎么需要折腾的吗?

#... #docker #python #java #scala #hadoop #spark #flink #airflow #prefect
自己的开发环境是用官方源的软件,还是 docker 一个 Ubuntu 自己部署软件好?

最近玩群晖用了一下 docker ,发现挺简单的。于是乎我打算在旧笔记本上安装 docker 了,不用 VM 的 ubuntu 了。

使用过程我发现一个现象,如果我用官方源的软件,有时候要修改软件配置,官方源可能因为环境没有安装 vim ,我要反复安装这些基础软件。感觉还不如虚拟化一个操作系统,再在里面部署各种软件。

因此我打算作为开发环境,日常的软件环境全部 docker 在一个 Ubuntu 。里面安装 nginx+php+mysql+node 。 后续要用其他软件,选用 docker 官方源的软件。常用就整合到 Ubuntu 镜像去……

我这样是否更加合适呢?

#docker #软件 #安装 #Ubuntu #官方 #环境 #其他软件 #打算 #群晖用 #VM
certbot renew --post-hook "docker restart 容器 ID"没重启 docker

定时脚本 2 个月执行一次:
certbot renew --post-hook "docker restart 容器 ID"

看了 ssl 证书有更新,但是容器没自动重启,以至于容器里调用的 ssl 证书文件还是旧的,https 网页打开提示证书过期,手动执行一下 docker restart 就可以访问 https 网页

--post-hook 参数这样用应该没错吧?

#容器 #证书 #-- #post #hook #docker #restart #ssl #https #网页
求推荐专写代码的 window 笔记本

为什么不买 mac? 因为要生孩子了比较穷...

需求:Java 后端开发,会开多个 docker 部署各种中间件,对游戏没需求,所以显卡无所谓。希望内存可以支持 32G ,预算 8000 左右

#中间件 #mac #要生 #... #Java #会开 #docker #显卡 #32G #8000
在阿里云香港服务器用 docker 搭了个 rustdesk 服务, 今天突然就不能用了

之前用 docker 搭了个 rustdesk/rustdesk-server-s6.

今天突然就不行了, telnet 一看, 端口 21115-21119 无论从国外还是国内都全部无法连通, 重启 docker compose 无效.

ssh 连上服务器, telnet 本地端口可通, 但非本地就死活不通.

后面突发奇想, docker 将 rustdesk-server 端口映射到本机 31115-31119, 然后原生 nginx 转发端口 21115-21119 到本地 31115-31119, 然后就神奇的联通了.

有没有大神来分析下这是咋回事, 难道阿里云主机安装的 docker 是阿里魔改过的 docker, 会监控我 docker 里装的是啥?

#docker #rustdesk #端口 #server #telnet #21115 #21119 #31115 #31119 #本地
做了个可快速部署线上服务的平台 CNative ,请给些建议

大家好,我是 Jingsi ,全栈开发偏后端架构。

以前创业的时候,每个项目都要从头搭建一次完整的线上服务环境,像是 docker, nginx, loadbalance 这些。很消耗创业前期的时间,希望能把更多的精力花在业务本身而不是这些重复的工作上,因此找了些平台看有没有能快速部署服务的。

在国外有不少这样的平台,像 heroku 、netlify 、vercel 等,但在国内一直没有发现类似的服务,所以想着自己做一个,可以让创业者更有效率地实践自己的想法。无论是快速地验证 mvp 还是 landing page, App 的后端 api 服务等,都能实现只需要把代码推送到平台,直接就给出一个可访问的 url 地址。

产品地址是: https://cnative.dev

现在已经支持常见的框架和语言,包括:ReactJS, VueJS, NextJS, NuxtJS, SpringBoot, GoLang

**请给一些建议**,目前我后续的计划是:

* 增加自定义域名支持
* 增加静态文件 CDN 的支持
* 添加 Web UI 的控制台

有任何想交流的问题也可以随便问~

#服务 #平台 #地址 #支持 #创业 #自定义 #偏后 #Jingsi #全栈 #docker
感觉自己技术栈不够用的时候,有必要全职学习新技能吗

# 经历
从业 8 年,后端开发入行,做了 5 年左右后端之后,转的公有云交付,后来去的上海做的业务运维,大概有一年半,现在是做私有云交付,算下来在上海,也要两年了。
# 迷茫的来源
现在这份工作做了有三个月了,还没转正,但是已经能感觉到自己的知识技能完全不够用。现在公司的技术栈是 kubernetes 这些,但是自己的技术能力,还停留在 OpenStack 甚至更古早之前,知识技能也仅限于 Linux 系统运维,以及之前干开发攒下来的一点经验,但是已经明显感觉无法面对现在及将来工作所需的技术能力需求,这种知识能力的缺乏带来的危机感,由此引发现在的焦虑和迷茫。所以既然跑起来有问题,不如先慢下来从走开始学,不想搞那种带病上岗的事儿,既不能为雇主带来效益,也让自己做的难受。
# 问题
计划是准备 1 月份提交辞职,因为公司没有年终奖,再加上在试用期内,所以留不留下无所谓了。辞职之后,计划是全职学习一到两个月,高强度补充有关 kubernetes 以及 docker 相关的技术能力,以及有关 go 的基础技能,4 月之后再去面试试试看,能不能找到新的更合适的机会。
# 当下优劣势比较
## 优势
1. 做过五年后端开发,会点 python ,如果继续做私有云交付,或者是运维相关工作的话,开发能力是占优势的;
2. 能写文档吹牛逼,文档质量要比其他人写的文档要更规范一些;
3. 七月份非全日制本科学历下证,找工作可能会更容易一点。
## 劣势
1. 非全日制学历,与全日制学历相比不占优势;
2. 工作经历公司太多,这个咋说呢,也没啥好说的,自己的原因,公司的原因都有吧,会让雇主感受到不安稳的感觉;
3. 中间 gap 的这一两个月,可能也是雇主很多疑问的来源。

2 和 3 我想如果解释清楚了,应该也不会有太多问题。

# 计划
## 眼下
1. 高强度刷 kubernetes/docker 相关内容;
2. prometheus/grafana 监控相关;
3. 中间件运维,nginx ,消息队列啥的这些。
## 未来
1. 深度学习 kubernetes/docker
2. go 开发相关,由此再切入运维开发,未来可以走 go 后端或者运维开发的路线,顺路把前端开发也学了,尽可能把路子走宽;
3. 网络相关,华为或者 H3C 的证书搞一个来。

眼下想到的就是这些了,有啥想到再说吧。

#运维 #kubernetes ### #开发 #docker #go #文档 #相关 #非全日制 #雇主
自建 NAS 方案分享

![ESXI 主页]( https://picture.luqijian.com/uploads/big/8c740b20cb5b900336362456b1ef2337.png)

楼主是个爱好摄影的嵌入式 Linux 工程师,玩摄影多年累积的照片视频也有三四 TB 了,之前一直放在电脑上,后面电脑重装过担心日后数据丢失,就搭了这台 NAS 。从一开始的纯文件服务器慢慢攒成了多功能的个人 Server ,在此做个简单的方案分享,也想看看大家的方案和经验分享。

软路由的话另外搞了台树莓派 4B+以前的华硕 TUF AX3000 做 AP ,路由器这种东西还是独立出来要稳定可靠一点。

这一套体积小巧,性能也比较可观,我的大部分服务都跑在这台 NAS 上,云服务器只跑了 frps 和 Nginx 作为中转。

不过也是有问题的,比如这块主板的扩展性还是比较普通,只有一个 PCIE x16 、一个 x4 、一个 x1 ,现在处于完全插满的状态,也无法扩展万兆,后续大概率会换超微的服务器板子。并且因为板载的 RTL8168 网卡没有 VMWare 官方支持,社区驱动也只支持到 ESXI6.7 ,为了上 8.0 版本还特地弄了张英特尔网卡。

稳定性倒还不用担心,电源基本是往最好的买,华南金的 x79 也用了有六七年了,没出过什么大问题。然后就是这套的功耗还是相对高的,软 Raid 并且扩展卡也不支持交替启动,没有开硬盘休眠,8 个 3.5 寸盘的功耗是不小。平时总功耗 70 到 80 ,带负载比如开 Emby 解码可能会到 100 多。

## 硬件
- CPU: E5-2650L v2 (10C20T 1.7->2.1GHz)
- 主板: 华南金牌 x79 ZD3 M-ATX 胖板
- GPU: NVIDIA Tesla P4
- RAM: Samsung DDR3 Reg ECC 16GB x 4
- 系统盘: Gloway M.2 NGFF 512GB x 1 + Gloway Sata 512GB x 1
- 缓存盘: Samsung 980 M.2 NVME 1TB x 1(读缓存)
- 数据盘: Seagate Ironwolf 4TB x 8
- Sata 扩展卡: 乐扩 PCIE 转 8 口 Sata 转接卡(Marvell 双芯片方案)
- 网卡扩展: 乐扩 I225-V 2.5G 扩展卡
- 电源: 益衡 7660B 600W 80Plus 铂金 Flex 电源
- 机箱: 拓普龙 8 盘位 M-ATX

## 操作系统
- 虚拟化底层: ESXI 8.0.0
- NAS 虚拟机: 黑群晖 DSM7.1.1(DS3617xs 版本)
- Linux Server: Ubuntu 22.04 LTS
- 云桌面: Windows 11H2

## 应用
备注: Docker 大多跑在 Ubuntu 上,群晖的 Docker 面板好用但是实测性能会差一些
- 相册、文件、Office 等: 群晖 DSM(确实好用,尤其相册,开源方案没法儿达到的体验)
- 多媒体服务器: Emby Server(Ubuntu 直装, 已入正)
- 视频任务、种子搜索、字幕管理: NAS Tool(Docker) + Jackett(Docker) + ChineseSubFinder(Docker)
- 音乐: Navidrome(Docker) + Subtracks(Android)
- 阅读: Calibre Web(Docker)
- RSS: TinyTinyRSS(Docker) + Fluent Reader(Windows/Linux) + Focus Reader(Android)
- Diagram: Draw.io(Docker)
- BT: 迅雷 NAS 版(DSM) + QBittorrent(Docker) + Aria2 Pro(Docker)
- PT: Transmission(Docker)
- 密码管理: Bitwarden(Docker)
- 博客: Wordpress(Docker)
- Wiki: Wiki.js(Docker)
- 图床: Lychee(Docker)
- 编程: VSCode Server(Ubuntu) + Jupyter Lab(Ubuntu)
- Git 服务: Gitea(Docker) + GitNex(Android)
- CI/CD: Drone CI(Docker)
- ChatGPT 前端: ChatGPT-html
- Docker 管理: Portainer Community(Docker) + 各种设备端装 Agent(Docker) + Portarius(Android)
- 云游戏: Games on Whales(Docker) + Steam Link(Ubuntu) + Steam(Docker + Ubuntu)
- 模拟器游戏: Emulatorjs
- 测速: HomeBox(Docker)
- 监控面板: Prometheus(Ubuntu) + Grafana(Docker)
- 异地组网: Zerotier + OpenVPN
- 远程桌面: RDP + RustDesk(Docker)
- 内网穿透: Frps(腾讯云) + Frpc(OpenWRT)

## 其他内容
- 硬件直通情况: NVIDIA Tesla P4 给了 Ubuntu ,Samsung 980 和乐扩 Sata 扩展卡给了黑群晖。
- 硬盘分配情况: 两张光威的盘均作为 ESXI 的系统和虚拟机存储盘使用。8 张 4TB 机械盘分成了两组,每组 4 块各自组了 SHR-1 的阵列,一组作为重要文件存储池,一组作为非重要文件存储池。三星 980 作为群晖的读缓存使用, 分成了两个 500G 的缓存分区,分别给前述两个存储池使用。

#Docker #Ubuntu #NAS #Server #扩展卡 ### #Sata #群晖 #Android #缓存
请教各位 极空间 z4s 怎么刷机?

很早之前买的,当时因为疫情,只有极空间的 nas 能次日达,群晖 威联通的要等好久。
可是极空间功能太少,docker 连权限都不给。
现在想刷个机,各位帮个忙,看看有没有办法。

#nas #群晖 #docker #想刷 #个机 #帮个 #空间 #很早 #联通 #权限
docker 创建 CentOS 后, CentOS 的 IP 怎么查

我的 Mac 电脑用 docker 创建 CentOS 后,CentOS 的 IP 怎么查

#CentOS #Mac #docker #IP #电脑 #创建 #怎么
求助 iptables 开放端口无效

系统是 centos7 ,firewall 关闭了的
```
[root@localhost init.d]# systemctl status firewalld.service
● firewalld.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since 四 2022-10-27 15:08:38 CST; 2 months 7 days ago
Main PID: 7533 (code=exited, status=0/SUCCESS)

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
```
有一个 iptables 可以使用,但并不是 service
```
[root@localhost init.d]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.


[root@localhost init.d]# iptables -nvL
Chain INPUT (policy ACCEPT 382K packets, 216M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3307
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1881

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 206K packets, 190M bytes)
pkts bytes target prot opt in out source destination

Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.2 tcp dpt:9000
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.3 tcp dpt:6379
0 0 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.4 tcp dpt:9000

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Chain DOCKER-USER (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
```
诡异的是扫描端口,发现 1881 和 3307 没有通,1880 通了的
如果 yum 重新安装 iptables.service ,配置开通 3307 和 1881 后再扫描端口,发现 1880 和 1881 、3307 的 tcp 全部是关闭状态
求大佬解惑

#0.0 #-- #docker0 #ACCEPT #tcp #bytes #DOCKER #Chain #pkts #target
温馨提示, 升级到 13.1 的, 尽量不要用 IDEA/WebStorm 的 project 文件目录里面删除项目里的零碎文件

例如 node_modules.

尽量在 finder 里面删或者在 cli 里面 rm 都行. 最近在鼓捣 docker, 昨晚和今早都在 WebStorm 里面做了删除 node_modules 的操作, 然后 spotlight 就开始重建索引了, 两个小核的占用直接拉满....

#node #modules #里面 #finder #cli #rm #docker #WebStorm #spotlight #小核
小团队如何搭建远程开发环境

先说下背景,主要是 web 开发,都熟悉 linux ,10 人左右,当前用的方案是 wsl2+docker ,vscode 连到 wsl2 写代码,docker 实现运行环境。其实这样也没啥大问题,但是现在有台闲置机器( pc 机 16G )自己想折腾一下-_-

目前能想到的远程开发方案列一下

## 方案 1:VM 方案

基于 esxi 或者 kvm 给每个人分配一个虚拟机,vscode+ssh remote 开发,在虚拟机里各自安装 docker 运行项目。主要是担心性能不够

1. 底层选 esxi 还是有更优的推荐?
2. 不影响体验最多能启动多少个 vm ?

## 方案 2:docker in docker 方案
宿主机上跑 docker ,每人分配一个 docker 容器,用 docker in docker 的方案来实现运行环境。已经折腾了下,开发代码没啥问题,但是每个容器内都有操作宿主机 docker daemon 的能力有点不可控,mounts 也是宿主目录而非容器内目录。主要是没搞定完全隔离

1. 容器内有全局管理 docker 的能力
2. 内层容器挂载的是宿主机目录

## 方案 3:继续 wsl2 ,或推荐其他更优方案



希望有前辈推荐下方案,解答下方案的问题,感谢

#docker #方案 #容器 #宿主机 #wsl2 ### #虚拟机 #vscode #esxi #更优
大哥们,帮我看看我这样安装的 Gitea 为啥配置完以后访问不了?

容器安装命令:

```
docker run -d -p 6030:3000 -p 6031:22 --name gitea --restart=always -v /data/gitea:/data gitea/gitea:latest
```

安装配置如下图:

[Imgur]( https://i.imgur.com/lZrPJgi.png)

安装完跳转就 502 了,是哪里有问题吗?有没有办法不重新安装修改配置解决?谢谢。

#gitea #-- #data #安装 #重新安装 #跳转 #docker #run #6030 #3000
Docker 运行的 Rancher(容器内部基于 K3s)搭建的测试环境最近经常整个容器重启

排查思路为:Docker event ,容器内部 K3s.log ,Rancher log
都没有有效信息,现在测试环境是用 Docker 搭建的单例 Rancher 在跑应用,老是会整个容器挂掉自动重启,请问有排查思路或者解决方案吗 ?

BTW: 之前是所有应用 + 中间件都用 Rancher 跑,后面怕是资源问题导致 K3s 节点挂掉重启,已经把中间件迁移走了,现在容器里面跑的是纯业务应用,大概 80 多个 Pod

#Rancher #容器 #中间件 #Docker #K3s #log #挂掉 #排查 #应用 #重启
Docker 容器内的 sleep 无法被中断么?

sleep 10 不能被中断,但是`ping www.google.com`却可以。请问有什么讲究么?
```
docker run -it --rm nicolaka/netshoot sleep 10
docker run -it --rm nicolaka/netshoot ping www.google.com
```

#sleep #10 #ping #www #google #com #docker #run #-- #rm
来历不明的 buildkitd 容器,请教各位大佬


请教大佬,k8s 集群中有台节点 node01 ,莫名多出一个 buildkitd 容器,容器名为“buildx_buildkit_default”,持续集成使用了 Jenkins slave pod ,所有调度到 node01 的 slave pod 都会构建容器镜像失败。想查出这个容器是哪里来的?是谁创建的(删掉后有 slave pod 调度到该机器依旧会创建出来)?#Kubernetes #docker
kubeadm init --config [file.yaml] 后实际配置与 yaml 里的配置不符


#### 今天使用 kubeadm reset 后,再使用 kubeadm init 来重新初始化 k8s 时,发现初始化后实际配置跟我 yaml 设定的配置不一样。

#### 具体情况,打个比方:我 yaml 文件里面 criSocket([参考文档]( https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker))配置的是:
```yaml
criSocket: unix:///var/run/cri-dockerd.sock
```
#### 然而实际情况得到的 criSocket 则是:
```yaml
criSocket: unix:///var/run/containerd/containerd.sock
```
##### 下面是我 init 初始化日志&yaml 配置&InitConfiguration 实际配置结果:

- 这是调用 kubeadm init 初始化成功输出(没报错):
```log
root@master1 ~/k8s/]# kubeadm init --config=/root/k8s/kubeadm/config.yaml --upload-certs
[init] Using Kubernetes version: v1.26.0
[preflight] Running pre-flight checks
[WARNING FileExisting-tc]: tc not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'

...

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

- 这是我的 yaml 配置文件:
```yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
criSocket: unix:///var/run/cri-dockerd.sock
kubeletExtraArgs:
runtime-cgroups: /system.slice/docker.service
pod-infra-container-image: registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7

---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
ipvs:
minSyncPeriod: 8s
syncPeriod: 8s
scheduler: 'wrr'

....(省略其他配置)

```

- 这是我运行`kubeadm config print init-defaults`后 输出的实际配置日志

```log
[root@master1 k8s]# kubeadm config print init-defaults
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 1.2.3.4
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
name: node
taints: null
---

.....(省略其他配置)

```

- 大佬们觉得是什么问题,另外大家平时是怎么部署 k8s 集群的,谢谢大家回复。
orbstack 安装 ha&homekit bridge 后,家庭 app 无法扫描到配件


我是在 Macmini 用 orbstack 安装的 Home Assistant Container 。
配置文件参考的 https://www.home-assistant.io/installation/alternative/#docker-compose 。( network_mode 指定了 host )
启动后能够直接通过 http://localhost:8123/访问到 ha 主页,没有问题。但是 homekit bridge 的二维码无法扫描到配件。基本断定是 *mDNS 没有正常在 host 网络广播* 。因为我在另一台 win 下起了个 hap server ,家庭 app 能够正常扫描到配件;在 win 下执行 `dns-sd -B _hap._tcp ` 也看不到诸如 HASS Bridge:21064 这样的记录。(如果 mDNS 广播到了 host 网络上正常是能看到)

一开始查下来的可能原因是,mac 上的 docker 实现不支持 mDNS 。但是根据 orbstack 官网 https://docs.orbstack.dev/docker/host-networking 和 issue https://github.com/orbstack/orbstack/issues/183 ,mDNS 在特定版本后似乎是支持了的。

所以不知道是我哪里配置有问题,还是 mDNS 实现仍有问题?有没有 v 友用的 orbstack 装 ha container ,homekit bridge 能正常扫描到配件?