Kubernetes节点维护脚本
Kubernetes Node 节点上,可能有一些基于 docker 命令的维护需求,可以通过脚本调用 docker inspect 等获取到更易读的信息。 列出所有业务容器 docker ps 列出的容器名称很长,不容易看出是哪个业务。通过 docker inspect,将获取到的容器输出为以下格式: 查看业务容器日志 查看容器TCP状 … Continue reading
Kubernetes Node 节点上,可能有一些基于 docker 命令的维护需求,可以通过脚本调用 docker inspect 等获取到更易读的信息。 列出所有业务容器 docker ps 列出的容器名称很长,不容易看出是哪个业务。通过 docker inspect,将获取到的容器输出为以下格式: 查看业务容器日志 查看容器TCP状 … Continue reading
制作 PHP 7 + Nginx 的基础镜像,要求能够通过环境变量修改 PHP 和 Nginx 的部分常用配置。并且支持自定义启动脚本。 Dockerfile --rewrite 15:3 意思是把 SIGTERM 重写为 SIGQUIT,因为对 Nginx 来说,SIGQUIT 是 优雅退出。 Nginx default.conf: 自 … Continue reading
使用 Docker 运行程序时,需要注意进程数是否正确,能否正确处理退出信号。本文记录几个我遇到过的案例。 Zabbix进程树错误 容器化 Zabbix 后运行不到1分钟就退出,日志如下。 pstree看到进程树不对: cron.sh用于发报警,发完就退出,不应该是zabbix_server的子进程 需要引入init程序,比如dumb-i … Continue reading
提供界面的镜像仓库可以选择 SUSE 的 Portus 和 VMware 的 Harbor。我选择的是 Harbor。其实一开始是倾向于 Portus 的,因为 Application tokens 功能看起来很有用,但是尝试部署时总是报错,Ruby 程序就是这么难搞。只好去尝试 Harbor。用 OIDC 登录时,有个 CLI 密码,类 … Continue reading
我最早接触的持续集成工具是大名鼎鼎的 Jenkins,接手同事留下的一个单节点 Jenkins。由于没有太强烈的使用需求,体会不到 Jenkins 的强大,印象停留在 “麻烦” 两个字:需要给研发同事手动添加账号,然后用一个有很多很多方框的表单来设置权限。而 Drone CI 在账号权限方面就给人眼前一亮的感觉,直接集成代码仓库,和 Gi … Continue reading
Harbor 镜像仓库可以添加描述信息,像 Docker Hub 那样,浏览镜像仓库,就能大致了解镜像的用途及使用方法。但是手动维护描述信息会很麻烦,更好的方案是直接将代码仓库的 README.md 文件自动更新到描述信息。本文记录了一种在 Drone CI 中通过定制 kaniko 插件来自动更新 Harbor 仓库描述信息的方案。 方 … Continue reading