查看kubernetes节点的硬件配置
kubectl describe node 可以查看到信息, 这里使用 jq 进行一下数据处理格式化. 1kubectl get node -o json | jq '.items[] | "===========================================", "机器名: \(.metadata.labels."kubernetes.io/hostname") ", "CPU: \(.status.capacity.cpu) 核", "内存大小: \(.status.capacity.memory)"' 输出结果类似于:
爷的青春结束了
前言回忆是抓不到的月光握紧就变黑暗,回忆是美好的,但不要沉迷于回忆,不要尝试安装模拟器去回忆之前的老游戏啦,会浪费现在的时间,童年是找不回来了,过好当下吧。一个在线体验老游戏的网址: https://zaixianwan.app 为啥写这篇文章时间过的太快, 看着身边的东西都变了样,有时候突然想起很久以前玩过的游戏,但是怎么也想不起名字,就算想起来了,搜索引擎都搜不到相关的文章,只能勉强搜到一些包浆了的图,所以还是记录下来,对自己的过去做个记录。 俄罗斯方块机FC 游戏机FC 游戏机指的是任天堂的红白机, 但是在中国普及开来的时候已经是盗版遍地了, 不仅仅是机器盗版, 还有很多盗版游戏, 还记得外星科技等等开发的那些塞尔达? 模拟器网上到处都是, 很多都是在线玩的. 比如 https://zaixianwan.app 一个背景音乐下载网站: https://www.zophar.net/music/ NSFPlay 播放器:https://bbbradsmith.github.io/nsfplay/ 开源 nfs 编辑器:...
找出占用Kubernetes节点磁盘的Pod
有部分开发不规范导致日志写入容器, 在 k8s 环境下导致节点磁盘空间占用过高, 解决方案有: 通过监控告警来提前预防 挂载磁盘, 容器日志写入磁盘 使用自动清理脚本 kubectl 查询每个 pod 占用磁盘空间1kubectl get --raw /api/v1/nodes/10.20.20.12/proxy/stats/summary | jq '.pods[] | "PodName: \(.podRef.name)", "usedBytes: \(.containers[].rootfs.usedBytes)", "======================================================"' 输出结果如图: Docker 相关操作查看容器磁盘占用12345# 节点上查看磁盘使用情况,并安装从大到小排序,可以看到各个容器的占用磁盘空间。docker ps -a --format "table...
Linux里安装crontab并运行
常见的 linux 发行版都自带了 crontab 服务, 但是我们常用的容器镜像是没有的, 不要问我为什么要在容器里运行 crontab…Linux定时执行任务crontabLinux的crontab无法执行的一些问题 CentOS/RedHat 系列安装1yum install -y cronie 配置文件位置后面的 root 是用户名 1/var/spool/cron/root 启动命令12345# 后台运行crond# 前台运行crond -f Ubuntu/Debian 系列安装1sudo apt-get install -y cron 配置文件位置后面的 root 是用户名 1/var/spool/cron/crontabs/root 启动命令12345# 后台运行cron# 前台运行cron -f Alpine安装官方镜像自带了 配置文件位置后面的 root 是用户名 1/etc/crontabs/root 启动命令12345# 前台运行crond -f# 后台运行crond
自动清理日志脚本
公司的业务服务会打日志到磁盘, 程序已经做了日志切割, 时间一长磁盘占满会导致业务异常, 普通的清理逻辑是使用 crontab 定时删除文件, 比如每天 1 点删除创建日期超过 30 天的日志文件, 大部分情况下工作是 OK 的, 但是执行周期太长, 如果当天日志暴增, 不能及时删除文件. 也会有隐患, 优化版脚本如下: 日志清理分以下几种: 历史日志, 并且未在写入的日志, 这种可以直接删除掉. 当前正在写入的日志, 需要清理, 这种不能删除, 可以通过清空文件的方式来释放空间 set -euo pipefail 的作用:set -e: 脚本中有任何一条命令执行失败, 整个脚本就失败set -u: 脚本中的变量有任何一个变量为空, 整个脚本执行失败-o pipefail: 脚本中的管道中任何一条命令执行失败, 也会认为脚本执行失败 脚本内容: 123456789101112131415161718192021222324252627282930313233#!/bin/bashset -uo pipefail# 磁盘的文件系统(df...
快速安装Prometheus监控组件
复制粘贴就能用,适用于非容器化安装, k8s 环境看这个, 更方便 Kubernetes中使用Prometheus对集群节点做监控 安装方式为二进制安装,使用 systemd 来管理(也可以使用 supervisor 等进程管理工具) 安装 node_exporter123456789101112131415161718192021[ -d /data/src ] || mkdir -p /data/srccd /data/src/curl -OL -C - https://file.babudiu.com/f/rRi2/node_exporter-1.6.1.linux-amd64.tar.gztar xf node_exporter-1.6.1.linux-amd64.tar.gzln -sf /data/src/node_exporter-1.6.1.linux-amd64 ../node_exportercat >/etc/systemd/system/node_exporter.service...
Dockerfile中ADD文件的路径问题
首先看一个案例 当前目录的文件如下: 12345678[root@devops_build watcher_svr]# tree.├── 1├── 2│ └── 3└── Dockerfile1 directory, 3 files Dockerfile 文件内容如下: 123FROM node:14.20.1-busterADD * /code/WORKDIR /code 本意是想把当前目录下的所有文件放到容器内的 /code 目录, 这个时候使用 docker build 后无法启动, 进入容器, 打开 /code 一看: 123456789[root@devops_build watcher_svr]# docker run -it test bashroot@cb7543054ef2:/code# ls -altotal 12drwxr-xr-x 2 root root 4096 Sep 22 08:47 .drwxr-xr-x 1 root root 4096 Sep 22 08:47 ..-rw-r--r-- 1 root root 0 Sep 22...
Windows下使用bat脚本来新增环境变量
自己创建了一个 bin 目录用于存放一些 exe 或者 bat 用于快速调用, 把它加到 PATH 环境变量中就可以在任意路径来调用了. 查看环境变量1set PATH 设置环境变量1setx PATH "%PATH%;%USERPROFILE%\bin" 这里需要注意把原有的 %PATH% 带上, 不然就会覆盖掉 PATH 变量, %USERPROFILE% 指的是个人文件夹, 我的就是 C:\Users\iuxt 完整脚本首先判断一下有没有环境变量, 没有的话就增加, 有的话什么都不做. 123456set path | findstr "%USERPROFILE%\bin" >nul && ( echo 环境变量已存在) || ( echo 环境变量不存在 setx PATH "%PATH%;%USERPROFILE%\bin")
k8s解除service端口限制
我自己写了一个 svc 的 yaml 文件,部署的时候报错,不在默认的范围内,默认范围是: 30000-32767 kubectl apply -f nginx-src.yaml 报错: 1The Service "nginx" is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range. The range of valid ports is 30000-32767 如果是 kubeadm 部署修改配置文件 vim /etc/kubernetes/manifests/kube-apiserver.yaml 在启动参数里面添加如下一行 1- --service-node-port-range=1-65535 重启 kube-apiserver 1kubectl delete pod -n kube-system kube-apiserver-xxx
使用RedisShake进行Redis迁移
对于自建的 redis, 我们可以将 rdb/aof 文件拷贝到目的 redis, 启动恢复, 但是云 redis 或者某些特殊情况, 比如没有云平台的权限等等情况, 可以使用工具来进行迁移. RedisShake 是阿里云 Tair 团队 积极维护的一个项目。它的演变可以追溯到其初始版本,该版本是从 redis-port 分支出来的。官方文档https://tair-opensource.github.io/RedisShake/zh/guide/introduction.html 安装12wget https://github.com/tair-opensource/RedisShake/releases/download/v4.0.0/redis-shake-linux-amd64.tar.gztar xf redis-shake-linux-amd64.tar.gz 同步迁移创建一个配置文件 redis_sync.toml 12345678910111213[sync_reader]cluster = false #...