autohotkey小脚本集合 不知道为什么原生的win+d快捷键不好使了,chrome死活不肯最小化,写了个小脚本覆盖原生的快捷键。双显示器太伤眼,一个可以当两个用,切换为透明之后,可以看到背景窗口的内容。
k8s从1.21不再使用bazel的解读 0x01 背景之前有关注bazel相关的技术动态,自己也做了一些研究。最新看k8s源码时,突然发现没有了bazel相关的配置,猜测是把bazel移除了,去github上搜索了下。确认确实是移除了。最初的提案链接为:https://github.com/kubernetes/kubernetes/issues/88553,感兴趣的可以直接去看,讨论很热烈。主要是想看下顶级项目面对这种取舍(trade-off)问题时是如何决策的。0x02 移除的理由提案作者的理由:go tool chain本身支
Etcd特性学习5——运维操作(最后一篇) 01 make-mirror在另外一个集群构建一个镜像。同时实时将一个集群的变更同步到另外一个集群中。同时会在终端上打印同步的key个数。命令格式etcdctl make-mirror [options] <destination> [flags]其中的<destination>是镜像目的集群的endpoint列表。命令示例:etcdctl --endpoints http://127.0.0.1:12379 make-mirror http://127.0.0.1:2
Etcd特性学习4——member、role、user 0x01 member成员管理用来动态调整Etcd集群中的成员。支持如下操作:add 添加list 列举promote 提升remove 移除update 更新member add--learner 允许以Raft Learner角色加入Etcd集群,该节点不参与Raft选举投票,只同步Leader的数据。--peer-urls 要加入的新节点的URL列表。member list无选项,查看集群的成员列表。member promote将指定的非投票member提升为
apiserver性能调优小结 apiserver设计比较复杂,直接去看源码效果较差。尝试从特性角度梳理其设计背后的考量。了解一个服务最好的入口就是看它的选项。选的版本是v1.21.5。0x01 选项选项分为如下几类:*通用标志(Generic flags)*与Etcd相关的配置安全配置审计配置特性配置认证配置授权配置云提供商配置API开关配置网络出口配置准入配置metrics配置,用于监控*日志配置*其他杂项配置加*的为影响性能的参数。为重点学习项。0x02 详细各部分配置2.1 通用配置看
Etcd特性学习3——lease lock elec 0x01 leaselease意思是租期,通过租期管理,可以实现一些自动操作。ZooKeeper中可以指定一个znode的TTL,TTL为Time To Live,跟租期同样的含义,超出TTL的znode会被ZooKeeper自动清除。lease包含如下子命令:grant 创建lease。 指定TTL(秒数),返回lease ID。16进制格式。keep-alive 保活lease。让lease持续有效。list 列出所有lease ID。revoke 让lease立刻失效。timetoli
Etcd特性学习2——数据操作 0x01 endpointendpoint即意为端点,指向客户端提供服务的一个服务入口。Etcd集群中每个节点都可以提供一个端点。严格来说,endpoint不属于数据操作范畴,但与后续defrag有关联,是理解defrag的前提,就先放这里了。提供了3个子命令。hashkv 打印出KV历史的hash值。是用来检查请求发生时各端点的记录是否一致。可以计算指定的revison版本。health 检查端点是否健康。可以用于检查端点是否健康。可以通过-w json的全局选项,返回json格式,方便使用方解
Etcd特性学习1——KV操作 0x01 功能分类Etcd作为一个分布式一致性的KV存储组件,现在的功能远不止于KV存储了。详细了解下其功能特点有利用在使用它时,做出最合适的选择。通过etcdctl -h命令可以看到有如下的特性。基本的KV操作 get put txn del watch数据操作 分片defrag 压缩事件 compaction端点管理 endpoint租期管理 lease锁 lock选举 elec成员管理 member转移leader move-leader角色管理 role快照管理 snaps
bash readarray探讨 § 0x01 起源工作中有如下需求,要去解析一个文件的内容,但文件是json格式的,我不想使用jq。通过grep过滤出符合要求的行,然后在for循环中处理它们。然后发现,这样实现不行。lines=$(grep xxxx /path/to/file.json)for line in ${lines}; do echo ${line}donegrep输出的内容变成一行了。对比运行环境和ubuntu中,发现lines的内容不同。在运行环境中是一行(换行符消失了),在ubuntu是多行。换了sed之