使用 cloudflare tunnel 暴露内网服务
前言在补存货之前,想先写下最近弄的这个,网上的关于 cloudflare tunnel 教程已经非常多了。我的主服务器区的公网 ip 已经被收回,在目前 ISP 打击 PCDN -> 一刀切打击大上传带宽的现在,以及在可以预见的将来,收回公网 ipv4 ,乃至拒绝分配或者仅分配内网 ipv6 是难以避免的,这几个月考虑了不少方案,最后还是决定使用 cloudflare tunnel 作为 “后【提速降费】时代” 保留博客的最后保底方案
原因如下:
不需要上云,过年云和带宽的成本是个大问题
v4 和 v6 都可以访问
个人免费使用,赛博菩萨好!
其他一些不便言说的问题……
好处还是很多,唯一缺点就是国内访问速度不佳,但是这个不需要你去买带公网 ip 的昂贵家宽,不需要额外花一分钱,那还要什么自行车
玩法既然网上的教程烂大街了,我再重复赘述就显得很啰嗦,去网上找找详细图手把手教的看下开通那部分就行,这里主要说说我踩的一些坑
我选的是二进制方法,装一个 cloudflared,目前我的主服务器区使用的移动网络,有 ipv6 ,出于这条宽带的特殊性质,我不便把单栈 v6 直接拿出来跑 ...
用 Go 在 k8s 集群内实现一个动态配置带认证的 "Nginx" & fluent_ui 初试
前言首先,各位朋友好久不见,月更已经断档三个月了。存货还是有不少的,就是今年年前年后事情比较多,没有什么时间写,最近会尽量找时间把之前的存货清理清理,把之前落下的补上
回到正题,在 k8s 集群内,我们要把服务暴露出来,最简单的方式是开 NodePort ,就像 docker 的 -p 一样,把端口映射出来供大家访问,复杂一点的话就是 ingress ,一般是 nginx ingress,像 nginx 反代一样,再高级一点,就是 istio,除了他的 ingress-gateway 暴露服务之外,还可以做微服务的流量治理
当我们部署一些开源组件的时候,比如 flink 、 Node-RED 这些,部署完成之后,你会发现这些项目的 Dashboard 之类的页面是完全没有认证的,当内网可信的时候,这通常没有什么问题,当内网环境不少那么可信的时候,我们又该怎么办呢?另外,广开 NodePort 也有扩大端口暴露面的风险
有人会说,这个问题简单,我只需要用 Nginx 反代一下,在 Nginx 上面设一个密码就好,但是当很多人共同使用的时候怎么办呢
那么我们不妨自己写一个集成认证的 “Ng ...
同套架构实现监控及选择性数据推送,业务数据一目了然
前言老板给提的一个需求,希望能打通一套监控链路,能够采集系统的一些业务监控指标,比如想了解用户各个微服务的使用情况,使用时间等信息,4xx / 5xx 错误率,并将一些关键业务指标按需推送到公司的中心仓库,并且展示出来
设计采集说到微服务、云原生的监控,大家第一时间肯定想到的是 Prometheus,不过如果有同学用 Prometheus 的 go client 写过推送就知道,这个东西不大好用,推的费劲儿,之前用过一次,但是自从后面用了一次 VictoriaMetrics/metrics: Lightweight alternative to github.com/prometheus/client_golang 这个之后,就再也不想用 Prometheus 的 go client 了,这个是真的简单,而且可以很方便的主动推数据。而 Prometheus 那边是起 Exporter 导数据出来,不好主动去推数据。
和公司写 Java 的佬交流了一下,他们选的也是这个,主要也是因为可以主动推业务数据,这样在请求逻辑里面直接把数据推出来很方便,虽然 ...
镜像构建推送几时好?使用 Harbor WebHook 实现镜像同步状态推送
前言在上半年的这篇文章中,我们对公司的发版流程进行了优化,通过结合使用阿里云、华为云的免费镜像仓库和加速服务,在改造多架构镜像的同时,大大加快的镜像分发的速度。但是这也带来一个问题,由于镜像不再直接推送到公司的 Harbor 仓库,而是通过一个本地的 Harbor 仓库往三个仓库推送,所以开发看到 Jenkins 任务完成了并不能说明镜像已经到达了仓库,对于镜像何时入仓这个问题变得不再透明,今天我们就来解决这个问题
方法大概思路有两种
一种是调用各个平台的 SDK ,看云上有什么镜像,想部署的时候去找一下要部署的最新版本的在这个仓库里面有没有,这个做起来比较麻烦,但是对有历史查询需求的就比较友好
另一种是从本地的 Harbor 仓库获取镜像的推送情况,再想办法告知给开发和实施人员
因为没有对历史镜像的查询的需求,并且想要通过“推送”的方式去主动告知开发和实施人员,从标题也能看出来,我们选择了方法二
实现从 Harbor 里面拿推送数据,可以通过 Harbor 的 SDK 或者通过 WebHook ,在上次的文章中,我们就使用了 Harbor 的 Golang SDK,不过本次的需求就用 ...
【低价好物】50块钱一个的移动IEG-100系列9口全千兆边缘智能网关,会翻车吗?
往期【低价好物】合集(从新到旧):
【低价好物】50块钱一个的移动IEG-100系列9口全千兆边缘智能网关,会翻车吗?
【低价好物】50块钱的光纤交换机(三)?皖通邮电ZXWT CTNS 180X&150X
【低价好物】50块钱的光纤交换机(二)?瑞斯康达iTN系列分组传送终端
【低价好物】50块钱的光纤交换机(一)?分组传送终端格林威尔GPN710
【低价好物】让10多年前的防火墙继续在今天发光发热——DPTech FW1000-GC-N
前排提醒:想玩这个东西的难度巨大,文档是完全没有,如果价格不合适或者对自己的水平没有信心,建议不要捡这个,非常容易翻车
前言一时捡漏一时爽,一直捡漏一直爽!刷海鲜市场又看到了好东西,移动的IEG-100系列全千兆边缘智能网关,居然只要50一个??!果断找卖家开聊,卖家表示不能确认这个东西好坏,只知道1、能通电;2、硬件是arm平台;3、卖家完全不会玩,所以没法知道设备的情况。运费10,买两个也是10,所以就一下拍了一对,赌一把,寄了也不亏!拍完之后去网上找了下这个型号的资料,结果搜索结果为零?!牙白,只能到手再说了
外观由于卖家是一 ...
使用 Prometheus + Grafana 替换 Cacti
前言Cacti 应该是目前我唯一没有扔掉的 php 服务了,一直觉得 php 慢的同时还有很多洞,之前已经换掉了 php 搞的可道云,那会儿天天被他的“重要安全更新”搞的很麻,于是可是去 php ,前段时间搭了 Zabbix (还是 php),LTT 在用的 Checkmk (用不习惯),最后还是选了 Prometheus + Grafana ,一是 Go 写的洞少资源占用少,二是可以和我目前已经用的其他监控整合到一起
搭建Prometheus 和 Grafana 的搭建非常简单,网上很多教程,这里不再赘述,go 的项目部署都很容易,重点说一下 SNMP 的配置
SNMP 的 Exporter 也是一个 Go 的项目,直接下载二进制文件部署:Releases · prometheus/snmp_exporter (github.com)
SNMP Exporter 这个东西比较麻烦的地方在于生成他的配置
首先需要准备 Golang 环境,写这篇文章的时候,我使用 1.22.0 ,如果不知道使用哪个版本,可以去看项目里面的这个文件:https://github.com/prom ...
Flutter 版 Node.js ? serverpod 小试
前言说到用一种语言搞定前后端,大家应该首先想到的是 Node.js ,在不是特别追求性能的情况下,使用 Node.js 可以让前端非常轻松的编写前后端程序,降低了学习成本的同时,可以大量复用代码,快速完成开发。
当然这回咱不讨论 Node.js ,主写 Go + Flutter 的我,平时最常做的事情之一就是挂着 JSON to Go 和 JSON to Dart 互相去转模型,然后去写一套服务器端代码,写一套客户端代码。脑子也要在 Go 和 Dart 之间切换。
那么,有没有什么方法在小项目里面简化一下开发流程呢,降低一点儿自己的心智负担呢?如果不限定 b/s 架构的话,之前我尝试过 Go + Fyne 来做,确实不用切换脑子了,但是用 Go 去写 GUI 是一件非常痛苦的事情,当然 Fyne 库是非常好用的(前提是不做复杂 GUI ,不涉及视频),而且不能追求界面太好看,只是“能用就行”。
今天,咱们就来看“更爽一点”的好东西:Serverpod ! 这套东西是用 Dart 写前后端,Dart 这个语言很奇妙,开发时是 JIT ,打包出来 AOT ,所以性能还是很不错的, ...
什么?宁完全不喜欢前端三件套的吗?用 Flutter + Golang 改造 K8s 升级小助手
前言今年二月份的时候,我提了下准备逐渐不用 Fyne ,换一种方式来做 GUI (见这篇文末:Golang 从零开始搭建自动部署平台,一键部署基础服务)
Golang 生态的 GUI 路线主要有三种
我正在用的,基于 OpenGL 的 Fyne 库,实现了一套自绘引擎,纯写 Go
用的比较多的,以 Wails 为代表的传统前端 GUI 方案,套皮 Chrome 类,需要会 html + js + css 三件套
基于 Qt 写 GUI ,最早从 C 那边出来的
准备换的原因,主要是 Fyne 无法应对复杂界面绘制,加上远程桌面默认的 OpenGL 版本很低,程序会跑不起来
基于此,我能选的只有 Wails 为代表的传统前端 GUI 方案。所以我就去稍微看了看前端。我之前也学过一点点前端,博客的主题切换,以及博客 V2 的 dark-mode 都是我写的,也能稍微写一点点,但是每次看前端的时候,那感觉就像上高数课一样,看着看着就要睡着了!说好的前端简单呢😡
因为不知道为什么,前端的内容是一点儿都看不进去,这次看也是越看越困,所以只能放弃这个方案,Qt 那套东西太费劲了。但是该解决的 ...
arm64 真的省电又好用吗?小测一手国产芯
前言早在 21 年初的时候,我当时写了篇文:高性能、低功耗——ARM Server到底香不香?,当时 Arm 的服务器价格还不是很香,一直就没有入手,上个月的时候公司开始提前准备国产化适配了,买台飞腾的机器,据说价格 3w+,就去提了一下其实可以去海鲜市场超低价买一台,于是就搞了台之前文章写的泰山服务器,价格不到 1k ,通过这两台服务器,咱们可以来看看国产的 Arm Server 到底香不香
这里先提一嘴,像 Oracle 云还有 Azure 以及腾讯云阿里云都已经开始在数据中心里面上 ampere 家的服务器了,说明 Arm 肯定整体运行成本肯定要比传统 x86 要好。所以咱们这次讨论 Arm 服务器到底香不香,就仅限定于
①个人玩家用途(不会去正经花大价格买全新带保的那种)
②国产 arm 芯(ampere 的比较贵而且服务器板子不大好找&板子也贵)
简单介绍这一部分,咱们先来看看本次到货的两台服务器都长啥样
华为泰山这个是我推荐的,买的就是 21 年文章里面说的那个,当时那个 999 的并不是实价,二手到手价在 3-4k 左右。而目前的话,配满盘架、带电源阵列卡的价 ...
harbor 搭配镜像加速服务,提升多架构容器分发效率
前言公司软件和镜像仓是在天翼云上,8 台机器共用 20M 带宽,速度非常之慢,全国各地的客户都用这个镜像仓库,k8s 滚动更新用的是组里大哥写的容器管理平台(大部分用这个)和我写的无网更新小助手(少数断网的学校用的这个)。大哥写的容器管理平台做了15分钟的超时,也就是说15分钟没有完成整个更新流程(调度、下载、启动、探针 Ready)就会报异常,所以遇到同时更新的时候,经常被实施被拉去看更新异常原因,一去看异常基本上都是15分钟镜像没下载出来,实施不会看异常原因,也不会等镜像下载到本地了之后重新走更新流程(镜像拉取策略是 IfNotPresent,超时了等下载完成再重新更新就行,但是停了之后重新走流程已经下载的进度会丢),只会找运维看原因,每次让他们等镜像下完了再重新滚动更新也不懂,很无奈。
前段时间,隔壁组的大佬提出来可以用免费的镜像仓来加速,推荐了阿里、华为、天翼云的容器镜像加速服务(都不要钱),正好最近在做国产化适配,给容器上多架构镜像,就一起做了,解决下这个问题
思路公司目前的 CI 是用 Jenkins +Shell 脚本做的,有一说一,用过 Github Action 和 ...