故障排查
kubectl logs 无法查看 Pod 日志报错 NotFound
· ☕ 1 分钟
1. 现象 能查看 Pod 的信息 1 2 3 4 kubectl -n my-testns get pod my-testpod NAME READY STATUS RESTARTS AGE my-testpod 1/1 Running 0 2d13h 不能查看 Pod 的日志 1 2 3 kubectl -n my-testns logs my-testpod -f Error from server (NotFound): the server could not find the requested resource ( pods/log my-testpod) 在 Pod 所在主机上可以通过 docker logs 查看容器日志。 测试 Kubelet 的健康状态 OK 1 curl -k https://x.x.x.x:10250/healthz 这里要使用主机的 IP 地址,kubectl logs 命名会直接

将 JuiceFS 元数据从 Redis 迁移到 PGSQL
· ☕ 2 分钟
1. 为什么将元数据存储从 Redis 迁移到 PGSQL PGSQL 成本低 Redis 使用内存存储元数据,PGSQL 使用磁盘存储元数据,成本差异显而易见。 PGSQL 性能可调节 不同的 PGSQL 提供了不同的性能 IOPS。如果对性能没有持续高的要求,使用 PGSQL 是不错的选择。 PGSQL 存储上限更高 如果按照元数据大小估算

为什么 top node、free、Grafana 的数据对不上
· ☕ 3 分钟
1. top 查看节点资源使用率超过 100% 1 2 3 4 5 6 kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master-1 995m 16% 13760Mi 118% master-2 827m 13% 10672Mi 92% master-3 889m 14% 10244Mi 88% 这是由于在计算使用率时,默认使用的是可分配的资源,排除了 Kubelet 保留的部分。在 kubectl 源码中可以看到: 1 2 3 4 5 6 7 for _, n := range nodes { if !o.ShowCapacity { availableResources[n.Name] = n.Status.Allocatable } else { availableResources[n.Name] = n.Status.Capacity } } 如果需要

如何查看服务器上的设备信息
· ☕ 1 分钟
1. 查看 CPU 查看 CPU 型号 1 lscpu 查看指令集 1 cat /proc/cpuinfo | grep -iE "flags|instruction set" 2. 查看内存 内存使用及大小 1 free -h 内存条型号 1 dmidecode -t memory 3. 查看磁盘 查看磁盘挂载 1 lsblk -o NAME,TYPE,SIZE,MODEL,UUID,MOUNTPOINT 查看磁盘使用率 1 df -H | grep -vE '^Filesystem|tmpfs|cdrom|loop|udev' | awk '{ print $5 "/" $2 " " $1 }' |grep " "/ 查看磁盘速度 1 hdparm -t /dev/sda3 查看硬盘温度等 1 apt install smartmontools 1 (for disk in /dev/sd?; do sudo smartctl

常用 GPU 运维及故障处理
· ☕ 10 分钟
处理故障时,参考或者记录下的内容,持续更新中 1. XID 错误事件 XID 是 NVIDIA 的错误码,可以通过命令: 1 dmesg -T | grep -i "NVRM: Xid" 或者 1 journalctl --since `date -d "10 days ago" "+%Y-%m-%d"`|grep Xid 根据 XID 可以定位故障,下面是一些常见的 XID 事件 XID 说明 13 Graphics Engine Exception。通常是数组越界、指令错误,小概率是硬件问