【Golang】- []byte在结构体的友好可读性处理
【kubernetes】k8s-docker-for-mac-磁盘挂载
【kubernetes】k8s-glp
前言
我们经常有一些日志采集的需求,采集完毕之后,希望有一个中心WebUi来方便的查看很多不同节点,不同服务的日志。
按照传统的方式,一般都是会采用ELK
,就是elasticsearch+logstash+kibana
,但是由于JVM
对资源的消耗太大,加上ES
是通过全文搜索的方式需要进行倒排索引的分词,所以这些功能几乎是用不上,我们查询日志一般都可以通过定制常规的label
信息,然后搜索即可,大可不必进行分词的行为。尽管后续又由于logstash
的资源占用过大问题,作者又利用go语言开发出了filebeat
,来辅助日志采集体系,后续加入了某公司之后,被集成到了beats
的项目中,因为也可以交efk/ebk
,都可以。
鉴于这一点,随之而来的就是GLP
,就是grafna+loki+promtail
。这是一套完全基于go语言生态写的,更贴近云原生。一套体系都是经过grafna lab
云原生孕育而生。资源占用少,效率高,能够解决痛点,天生支持k8s等等特性。都让他成为新的崛起之秀。
【kubernetes】k8s-pv-nfs-for-mac
前言
docker-for-mac 现在已经内置了k8s,我们可以轻松的开启这个功能,然后就可以通过kubectl来执行我们的k8s的命令来对容器资源进行管理。
但是有一个比较头疼的点,那就是我们的pv资源。我们平时用docker的时候,有一些信息例如,日志之类的,需要持久化下来,这个时候,这个日志文件持久化会和容器所在的物理机在同一个机器下,因此,并不能很好的做到“存”,“算”分离的目的。并且没办法利用了网络上的其他资源。
再者就是还有一种情况就是,我需要利用k8s部署一些基础服务,例如mysql,例如redis,这些基础数据都是需要持久化的,因此,和物理机器强行绑定在一起的话,下次数据在哪个数据卷都不清楚了,更没办法重新回复数据,这是一个很严重的问题。
所以我们这里的pv,不能简单的使用hostPath
或者local
类型,根据服务器上用的比较多的或许是自己搭建一个nfs
服务器,因此,我们也希望在本地开发的时候定义资源文件的yaml
也是用nfs
来作为我们的pv-type
。
但是也因此,我们需要在mac上开启一个nfs-server
。尝试过docker-nfs-server,但是由于mac系统的架构问题,无法顺利的运行起来,需要处理modpre模块,处理那么多内核的东西不太合理。
【DevOps】自定义git凭据存取器
【rust】序列化框架serde
前言
Rust 中有一个 99%的程序员或许都会用到的组件,那就是序列化组件: serde。
众所周知,rust的静态语言,所以这让我们在序列化上繁琐了很多,但是有了serde,它帮助我们更好的序列化结构体,生产对应的数据。它实现了各种声明宏
以及 过程宏
来协助我们序列化。
围绕着serde
,也有很多衍生的子组件,例如serde-json
, serde-yaml
, serde-qs
等等。
由于我目前在开发 gitlab-rs
,在生成对应的query_string 以及form的数据的时候,就比较棘手。
所以我在gitlab-rs
生成的过程宏中,借助了 seder
出色的序列化生态来完成功能。