在威联通 QTS 的 Container Station 上使用类似虚拟机的桥接网络

日常使用时,我们可以注意到:在创建容器时,Web UI 上其实是允许容器使用虚拟交换机网络而非 NAT 的。这个选项的效果类似于虚拟机平台的虚拟交换机(或者有些时候称之为桥接网络),和直接使用 network_mode: "bridge" 有显著区别。

出于好奇,索性这样创建一个容器,然后直接 SSH 到机器上面看看生成的东西是啥样的。这个容器的实现也很直接,SSH 上去可以直接使用现成的 Docker 的命令行客户端,所以直接看看 Docker 的网络。

可以注意到这里使用了一个定制的 Docker 网络驱动。这下就明白了,然后我们可以来搜一下怎么在 Docker Compose 里调用它。

也比较顺利,直接搜到了官方的文档:Qnet — Container Station documentation (qnap-dev.github.io),这里面给出了示例:

那么直接复制粘贴就可以了。不过也发现一个问题,重新创建应用会导致 MAC 变化,DHCP 服务器上配置的静态分配不生效。此时可以直接给 services.qnet_dhcp 下设置一个 mac_address 属性来指定 MAC 地址,就不会有问题了。

引用

Qnet — Container Station documentation (qnap-dev.github.io)

WordPress 接入 CDN 后升级插件或 WP 失败

现象

近期将博客接入腾讯云 CDN 后发现更新插件和更新 WordPress 版本这种耗时较长的请求都会失败。一开始还没在意,以为是后端请求的下载地址不在国内所以下载超时。

后面发现 Grafana 的服务在没有预热 CDN 缓存的时候,很多大的 JS 文件也都会请求失败,页面无法打开,F12 控制台有一些 net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)。此时考虑 CDN 上面是否有限制回源请求的超时限制。

解决方案

如果使用腾讯云 CDN

发现腾讯云 CDN 有给出回源超时时间配置,见内容分发网络 CDN 回源超时时间配置-配置指南-文档中心-腾讯云 (tencent.com)

默认 TCP 超时限制 5 秒没有问题,但是回源加载时间 10 秒这个限制,对于更新插件和 WP 这种场景,以及 1Mbps 带宽加载 JS 大文件(开启 Gzip 后仍然有 4M+)的情况来说完全不够,因此酌情将回源时间限制放宽。在 CDN 控制台上刷新缓存之后,再次验证更新 WP 版本和访问 Grafana 已没有问题。

如果使用腾讯云 EdgeOne

先前往控制台选择相应站点,然后可以找到规则引擎。在匹配类型为 Host 的规则里新增操作来延长超时时间即可。

更新历史

24/3/12

新增 EdgeOne 相关。

domain 的自言自语 2312

云原生

istio服务网格进阶最佳实践 (qq.com)

没错,数据库确实应该放入 K8s 里! (qq.com)

微服务全做错了!谷歌提出新方法,成本直接降9倍! (qq.com)

华为 kubernetes管理员实训课_哔哩哔哩_bilibili

【助力CKA全球认证】奔走相告!kubernetes管理员实训课火热开启!!!_云容器_华为云论坛 (huaweicloud.com)

互联网故障背后的草台班子们 (qq.com)

开发

microsoft/qlib: Qlib is an AI-oriented quantitative investment platform that aims to realize the potential, empower research, and create value using AI technologies in quantitative investment, from exploring ideas to implementing productions. Qlib supports diverse machine learning modeling paradigms. including supervised learning, market dynamics modeling, and RL. (github.com)

How to update git commit author, but keep original date when amending? – Stack Overflow
[deleted by user]:git (reddit.com)
重置一些 Git 提交的作者,但保留日期等信息。

前端monorepo大仓权限设计的思考与实现|得物技术 (qq.com)

szu17dmy/panabit-ddns-go-manager: 在 Panabit 智能应用网关上运行 jeessy2/ddns-go (github.com)
给 Panabit 网关写了两个插件,或许有空的时候会写个过程吧。

算法

蓄水池抽样算法(Reservoir Sampling) – 简书 (jianshu.com)

无聊

是那一趟红红火火的地铁耶!!! (xiaohongshu.com)
年终周六福在地铁发礼品。

一台为家里干了近8年的买菜车 – 原创分享(新) – Chiphell – 分享与交流用户体验

国内AI绘画著作权第一案➡️判决已出_哔哩哔哩_bilibili

domain 的自言自语 2311

云原生

滴滴弹性云基于 K8S 的调度实践 (qq.com)

滴滴11.27 P0级故障 (qq.com)

设计面向微服务的应用程序 – .NET | Microsoft Learn

网络

Using NGINX as a DoT or DoH Gateway – NGINX

privacy-protection-tools/anti-AD: 致力于成为中文区命中率最高的广告过滤列表,实现精确的广告屏蔽和隐私保护。anti-AD现已支持AdGuardHome,dnsmasq, Surge,Pi-Hole,smartdns等网络组件。完全兼容常见的广告过滤工具所支持的各种广告过滤列表格式 (github.com)

在家也要玩BGP 之 Mikrotik Fan Boy版 | 主题帖 – 梨园 (liyuans.com)

惨不忍睹的Wi-Fi FEM赛道 (qq.com)

Linux

Filesystem Hierarchy Standard – Wikipedia

安全

微信PC客户端存在@全体逻辑错误 (qq.com)

好玩的

[氵]可安装PCIe卡的1L小主机 v6 (qq.com)

Workspace Storage Cleanup – Visual Studio Marketplace

威联通 QTS 启动 Jellyfin,使用 Container Station 容器工作站

左侧栏新建“应用程序”,下面给出可用的 docker-compose.yml

version: '3.5'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 0:0
    network_mode: 'host'
    volumes:
      - /share/Container/jellyfin/config:/config
      - /share/Container/jellyfin/cache:/cache
      - /share/Media:/mnt/media:ro
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    restart: 'unless-stopped'
    environment:
      - http_proxy=http://<proxy-host>:<proxy-port>
      - https_proxy=http://<proxy-host>:<proxy-port>
      - HEALTHCHECK_URL=http://<qts/jellyfin-host>:8096/health
    extra_hosts:
      - "host.docker.internal:host-gateway"

基于 Jellyfin 官方给出的 yml 修改而来,挂载设备以支持硬件解码。由于 QTS 上该设备所有者为 0:0,且权限为 600,无法通过添加 –group-add 参数来让同组不同用户使用该设备,因此只能让这个容器按 root:root 启动了,可能有些许风险。

添加环境变量以加速元数据刷新,修改健康检查地址使之状态正常。

引用

Container | Jellyfin

Intel GPU | Jellyfin

domain 的自言自语 2309

安全

GitHub – felix-pb/kfd: kfd, short for kernel file descriptor, is a project to read and write kernel memory on Apple devices.

开发

推出 RustRover – JetBrains 出品的独立 Rust IDE (qq.com)
JetBrains 发布 Rust 的独立版本 IDE 预览版,目前免费。

Port forwarding local services with VS Code (visualstudio.com)

网络

获取Tg的用户IP地址 (qq.com)
STUN 打洞泄露出口 IP。

https://support.fortinet.com/Download/VMImages.aspx
虚拟机版本的飞塔。

WireGuard Endpoint Discovery and NAT Traversal using DNS-SD | Jordan Whited
WireGuard 的一种 NAT 穿越方案。

无聊的东西

cs.uwaterloo.ca/~csk/slide/
不知道为什么很火的滑动解锁式游戏。

domain 的自言自语 2308

开发

面向插件开发者的语言服务器协议(LSP)| 技术解析 (qq.com)
JetBrains 自 2023.2 大版本开始引入 LSP 支持。

云原生

应用容器化后为什么性能下降这么多? (qq.com)

k8s无法删除namespace-腾讯云开发者社区-腾讯云 (tencent.com)

混沌故障演练如何尽可能保障生产环境不被破坏 (qq.com)

网络

Fortinet ZTNA远程办公解决方案全国首发评测_哔哩哔哩_bilibili
飞塔的 ZTNA。

MikroTik CRS310-8G+2S+IN 2.5G交换机 – YuS (irouteros.com)
MikroTik 发了个新的 2.5G 交换机,个人感觉性价比一般。

华为HN8145XR拆机,FTTR主光猫 (qq.com)

嵌入式

Github上的高热度嵌入式项目之——开源核辐射检测仪 (qq.com)

其它

xkcd: Security

在梅奥诊所查房,站友真的羡慕了! (qq.com)

domain 的自言自语 2307

开发

C++ Insights (cppinsights.io)

云原生

从 Istio 在 CNCF 毕业,看服务网格的架构变迁 (qq.com)

CNCF宣布CRI-O项目毕业 (qq.com)

是时候和 Jenkins 说再见了 (qq.com)

Linux

Linux 中不适用功能键切换TTY | 《Linux就该这么学》 (linuxprobe.com)

网络

Home (dn42.dev)
一直没有时间学 BGP…

光猫改桥接后速度降低的问题与运营商和厂商的探讨 – V2EX
时间错误导致丢包。

总结142款运营商定制WiFi6 mesh路由的配置,供大家参考(有几款可刷OPENWRT)-无线路由器硬件改造以及故障维修-恩山无线论坛 – Powered by Discuz! (right.com.cn)
运营商定制机是真的便宜。

AI

人类数据,要被 OpenAI 用完了,然后呢? (qq.com)
中文互联网的很多优质内容都被掌握在各大厂手里了。

智能家居

美的设备怎么进米家联动?教你如何通过易来Pro网关进行跨平台联动_哔哩哔哩_bilibili
那么,在哪里可以买到呢?

其它

GitHub – microsoft/win32-app-isolation: Tools and documentation for Win32 app isolation

thinking-in-se/《人件 原书第3版》.pdf at master · clsaa/thinking-in-se · GitHub

无法摆脱的干眼症,放不下手机的一代人 (qq.com)

节省数亿IT成本,B站FinOps实践 (qq.com)

如何理解 FinOps? (qq.com)

openSUSE Wicked 重新获取 DHCP 分配的地址

最近发现,如果在 DHCP 服务器上向 openSUSE 下发了 IPv4 地址,在该地址的老化时间内,即使是重新开启网卡接口、重启系统、重新插拔网线等行为,Wicked 也不会重新获取 IP 地址,查看 wickedd-dhcp4.service 的日志可以发现其检查了 IP 的有效时间,有效期内没有再重新获取一次。

解决方案

先删除 /var/lib/wicked 下的所有文件:

sudo rm -rf /var/lib/wicked/*

或者是只删除 /var/lib/wicked/lease-eth0-dhcp-ipv4.xml 也可以。

然后,重启该网卡接口:

sudo wicked ifdown eth0
sudo wicked ifup eth0

此时应该可以观察到 IP 地址已经刷新。

引用

Wicked keeps DUID on SLES15 even when NIC is replaced | Support | SUSE