基础镜像 alpine

最近在 docker 镜像里都是使用 alpine 作基础镜像,后面因为 alpine 不支持 glibc 又尝试了 busybux。
两个都很轻量,也都能满足基本的需求,但是长远来看,alpine 可能更好用,主要是它可以安装其它软件,这使得扩展起来非常方便。

阅读全文 →

tcpdump 使用

我们可以把 tcpdump 的命令结构标准地划分为 三大部分

sudo tcpdump   [1. 控制参数]   [2. 抓取范围]   "[3. 过滤表达式]"

第一段:控制参数(控制“怎么显示/怎么处理”)

这一段緊跟在 tcpdump 后面,主要用来控制数据的输出格式、运行性能或者是否保存文件。它们通常是以 - 开头的单字母参数。
最常用的控制参数:

阅读全文 →

k3s 里的 etcd

安装 etcdctl

ETCD_VERSION="v3.5.5"
ETCD_URL="https://github.com/etcd-io/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz"
curl -sL ${ETCD_URL} | sudo tar -zxv --strip-components=1 -C /usr/local/bin

etcdctl 命令

k3s 里面的 etcd 需要一些配置,我会将这个下面的内容放到一个文件里,然后使用这个文件操作 etcd

ETCDCTL_API=3 etcdctl \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/var/lib/rancher/k3s/server/tls/etcd/server-ca.crt \
  --cert=/var/lib/rancher/k3s/server/tls/etcd/server-client.crt \
  --key=/var/lib/rancher/k3s/server/tls/etcd/server-client.key \
  $@

在 server 节点上添加上面的 shell,然后就可以使用 etcdctl 命令了。比如查看 etcd 节点 bash ./etcd.sh member list

阅读全文 →

moontv 使用

最近 moontv 作者开源了这个项目,而且也取消了授权码,不过他也归档了这个项目,后面不会继续开发了。
之前听说过这个项目,不过没怎么关注,刚部署体验了下,感觉还可以,如果想在 pt 之外补充一个视频播放的工具,可以试试这个。

部署

部署很简单,docker compose 一把梭。注意根据需要修改端口、用户名和密码。

阅读全文 →

CI 里使用 buildkit 构建镜像

CI 里用一个常见的场景是将代码提交后,打上 tag,CI 就可以检查代码并且自动构建镜像。
但是在 CI 里构建镜像比较复杂,因为 CI 的任务一般是运行在容器里,而需要在一个容器里运行 docker build,就需要在容器里再启一个 docker daemon 进程。这种形式叫 DinD(docker in docker)。
DinD 模式有一些问题

阅读全文 →

Vim 智能切换输入法

核心思路

在 vim 中输入中文时切换输入法会非常不方便。比如写了中文注释,然后 ESC 进入 normal 模式,还需要再将输入法切换成英文才能操作。如果操作完需要进入 insert 模式继续输入中文又要再切换一次输入法。

阅读全文 →

迁移 pvc(local path 到 longhorn)

最近在 K3s 集群里部署了 Longhorn,创建的每个 PVC 会有两个副本,这样某个 VPS 宕机,还有副本可以继续提供服务。但是之前已经有一些 Pod 使用的 local-path 的方式挂载的 PVC。所以准备迁移他们到 Longhorn 上。

阅读全文 →

longhorn 部署

安装 longhornctl

文档

# For AMD64 platform
curl -sSfL -o longhornctl https://github.com/longhorn/cli/releases/download/v1.9.0/longhornctl-linux-amd64
# For ARM platform
curl -sSfL -o longhornctl https://github.com/longhorn/cli/releases/download/v1.9.0/longhornctl-linux-arm64

检查硬件环境

KUBECONFIG=/etc/rancher/k3s/k3s.yaml longhornctl check preflight
# 或者 longhornctl check preflight --kube-config=.kube/config

目前 v1.9.0 版本这两个命令都可以,但是 –help 里并没有提示 kube-config 这个 flag。可以看这个讨论

阅读全文 →