Thinking_Out_Loud

K8s中的Level Based设计

K8s
概念K8s为了从故障中快速恢复用了一种Level-based的模式实现API和Controller,相对地,还有另一种概念Edge-based。这两种概念都来自硬件中断。例如,电路由低电平跳变到高电平触发事件的方式就称作边沿触发,是由电平变化触发的,而相对的电平触发则是电路到达额定电平才触发 ...
Read more

记一个坑:在Docker中使用FTP

Docker
为了池化服务器资源,开始用k8s部署服务,但总有没办法避过的阵痛(尤其是在内网环境中),在这里记一个实际遇到的坑。 FTP协议谷歌可知,FTP使用两个信道分别传输控制命令(如目录切换还有创建目录等)和数据,使用的知名端口就是20和21。 服务端和客户端大概的交互流程如下: 服务端监听默认端 ...
Read more

git中生成和使用patch

tools git
一个比较奇特的情景:有两个本地仓库A和B,现在需要将其中一个仓库A的几个提交应用到另一个仓库B上。有一种思路是使用git的cherry-pick: 首先在B的远程仓库地址中添加A; 将A中对应的分支fetch到B中; 在B里使用cherry-pick应用A的提交。 但我在这里要记录另一种 ...
Read more

OpenWRT上使用PostgreSQL

openwrt PostgreSQL
遇到了两个大坑,气得要在小本子上狠狠记一笔。 安装PostgreSQL安装很方便,一切看起来那么美好: 1> opkg install pgsql-server pgsql-cli 查看安装信息可以发现安装时自动帮我们创建了一个postgres用户,这是一个伏笔。 我安装的版本: 12 ...
Read more

为OpenWRT配置extroot

Linux openwrt
安装新package时磁盘不够用怎么办? 配置extroot有两种方法给系统增加可读写的存储,extroot正是由这两种方法组成: 将/overlay放到U盘(external overlay or pivot-overlay); 将整个根文件系统/放到U盘 (external root ...
Read more

《Go程序设计语言》读书笔记#8

Go 读书笔记
第九章 使用共享变量实现并发< P262 > 可以用容量为1的channel实现互斥锁; 通常互斥锁的声明紧贴在要守卫的变量前,如果偏离这个原则,应该在文档中说明; 如果返回的变量需要互斥锁,可以使用defer解锁; < P266 > sync.RWMutex只有在 ...
Read more

写一个Chrome扩展

tools Javascript
伪需求在公司里想要从外网电脑往内网电脑搬运资料和一些代码只能通过内部的IM里的“文件助手”中转,大大降低了面向搜索引擎编程的生产效率。所以亟需一个在浏览器右键菜单就可以直接发送选中文本等的Chrome插件。 分析一下问题好在IM有Web端,我直接写一个扩展使用Chrome的API就可以操作数 ...
Read more

《Go程序设计语言》读书笔记#7

Go 读书笔记
第八章 goroutine和通道< P225 > 同类型的chan可以用==比较,当两者指向同一channel data structure时结果为真; 容量大于零都算buffered channel;cap为零即没有缓冲,发送方要一直等到接收方接收; < P229 &g ...
Read more

SSH端口转发

tools
一种场景想象这么一种场景,你在远程主机上刚装好Docker,启动Docker Daemon之后却被断开了ssh连接。仔细一想,原来daemon启动之后创建的网桥默认是172.17.0.0/16,正好和办公室的网段冲突了……恭喜发财!这间办公室的电脑都不能连上你的服务器了,而且是内网服务器所以 ...
Read more

《Go程序设计语言》读书笔记#6

Go 读书笔记
第七章 接口< P176 >在操作interface时,编译器不会对T和*T隐式转换,没有了简便的语法糖,因此T不拥有*T的方法; < P182 > interface由两部分组成,type存储type descriptor,value一般存储指针;interface ...
Read more
Prev Next