Kubernetes
使用 Calico 限制 Pod 的带宽
· ☕ 3 分钟
1. 测试全部带宽 在目标主机上启动 iperf3 服务端 1 2 3 4 5 iperf3 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- 在客户端主机上测试 1 iperf3 -c x.x.x.x -p 5201 -t 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Connecting to host x.x.x.x, port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 151 MBytes 1.27 Gbits/sec 3562 164 KBytes [ 5] 1.00-2.00 sec 134 MBytes 1.12 Gbits/sec 230 164 KBytes [ 5] 2.00-3.00 sec 124 MBytes 1.04 Gbits/sec 250 213 KBytes [ 5] 3.00-4.00 sec 122 MBytes 1.03 Gbits/sec 229

Fluid 下的 Juicefs 企业版维护
· ☕ 4 分钟
1. 设置环境变量 1 2 export NAMESPACE=xxx export PVC=xxx 2. Dataset 无法就绪 2.1 Fluid 组件问题 1 kubectl -n fluid-system get pod -o wide | grep -v "Running" 可能出现没有正常启动的情况。 2.2 有异常的 Dataset 异常的资源可能导致 Fluid 资源不断重启,需要人工介入删除。 2.3 检查 Worker \ Fuse 副本 worker 副本 1 kubectl -n ${NAMESPACE} get sts -l release=${PVC} 1 kubectl -n ${NAMESPACE} get pod -l release=${PVC},role=juicefs-worker fuse 副本 1 kubectl -n kas-job get ds -l

使用 Nerdctl 构建多架构镜像
· ☕ 2 分钟
1. Nerdctl 安装 安装 Opscli 1 curl -sfL https://raw.githubusercontent.com/shaowenchen/ops/main/getcli.sh |VERSION=latest sh - 安装 Nerdctl 1 opscli task -f install-nerdctl --arch amd64 2. BuildKit 下载 Buildkit 1 wget https://github.com/moby/buildkit/releases/download/v0.19.0-rc2/buildkit-v0.19.0-rc2.linux-amd64.tar.gz 安装 Buildkit 1 2 tar xvf buildkit-*.tar.gz mv bin/* /usr/local/bin/ 配置 Buildkitd 1 mkdir -p /etc/buildkit /data/buildkit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat > /etc/buildkit/buildkitd.toml <<EOF debug = true root = "/data/buildkit" [worker.oci] enabled = false [worker.containerd] address = "/run/containerd/containerd.sock" enabled = true platforms = [ "linux/amd64", "linux/arm64" ] namespace = "buildkit" gc = true gckeepstorage = 9000 cniPoolSize = 16 EOF 生成 Systemd Unit 文件 1 2 3 4 5 6 7 8

在 Kubernetes 部署 Jumpserver 跳板机
· ☕ 3 分钟
1. 部署 Jumpserver 需要提前准备好 StorageClass,用于存储 Jumpserver 的数据。除了下面提到的数据库,各个组件 jms-core、jms-web、jms-koko、jms-lion、jms-chen 都需要一个 PV 存储。 1.1 部署 MySQL 参考 https://github.com/shaowenchen/ops-hub/blob/main/database/mysql8.yaml ,部署 MySQL。 需要调整

使用 Ops 项目查看并监控集群事件
· ☕ 2 分钟
https://github.com/shaowenchen/ops 1. 告警 Kubernetes 集群的事件 监控指定的关键字 1 2 3 4 5 6 7 8 9 10 11 apiVersion: crd.chenshaowen.com/v1 kind: EventHooks metadata: name: kube-pod-falid namespace: ops-system spec: type: xiezuo url: https://xxx.com/api/v1/webhook/send?key=xxx subject: "ops.clusters.*.namespaces.*.pods.*.event" keywords: - failed 一份简单的配置,即可收获大量的相关告警。 监控之后,自动化处理 1 2 3 4 5 6 7 8 9 10 11 12 apiVersion: crd.chenshaowen.com/v1 kind: EventHooks metadata: name: kube-no-free-node namespace: ops-system spec: additional: "action: restart-kubelet-bypod" keywords: - no free node subject: ops.clusters.*.namespaces.*.pods.*.event type: webhook url: http://x.x.x.x/webhook 借助 Ops Copilot 的执