6月 06

Kubernetes节点维护脚本

Kubernetes Node 节点上,可能有一些基于 docker 命令的维护需求,可以通过脚本调用 docker inspect 等获取到更易读的信息。 列出所有业务容器 docker ps 列出的容器名称很长,不容易看出是哪个业务。通过 docker inspect,将获取到的容器输出为以下格式: 查看业务容器日志 查看容器TCP状 … Continue reading

6月 05

程序员词典

很多年前去美团面试,内容基本忘完,但有一个情节至今仍然历历在目,我把 Ruby 念成了 /ˈrʌːbi/,面试官接过话来,发音是 /ˈruːbi/,顿觉脸上发热,太丢人了。 如今,我已经不会念错 Ruby 了,但是 IT 行业还有很多容易读错的单词,也有很多新造的轮子可能会用到生造词,因此,我决定做一个项目,搜集这样的单词,标注音标,并提 … Continue reading

6月 04

DokuWiki容器化实践

DokuWiki 使用 Docker 做容器化,主要解决以下问题。 插件和模板的安装 插件和模板的默认配置和配置文件的传递 持久化存储 插件模板安装 使用容器之后就不能在使用插件管理器来安装插件了,否则容器重启后插件将丢失。需要将插件代码打包到镜像里。基本思路是使用多段构建,在 builder 过程中下载并解压插件和模板代码,然后复制到运 … Continue reading

6月 03

运维的价值

运维是什么 运维到底是什么呢?只看招聘 JD,市场上对运维的要求和定位五花八门,除了基本的 Linux 系统,有的要求 DevOps,有的要求熟悉各种分布式系统,有的要求熟悉前端,有的要求熟悉数据结构算法,有的要求精通数据库,有的要熟悉 ITSM,ITIL 理论的,有的要熟悉网络架构的,还有的要求熟悉多种开源软件源码的,等等,当然也有全都 … Continue reading

6月 02

基于iTop的Kubernetes工作流

当面向很多用户时,Kubernetes 的使用方式是一个需要考虑的问题。如果直接让用户写 yaml,一方面是要求每个用户都学 Kubernetes,这对研发人员来说是一个不必要的负担,另一方面 yaml 的管理以及权限分配对运维人员来说也是一个不必要的负担,平添很多琐事。因此,使用一个管理系统来屏蔽 Kubernetes 细节,管理权限等 … Continue reading

6月 01

容器进程树

使用 Docker 运行程序时,需要注意进程数是否正确,能否正确处理退出信号。本文记录几个我遇到过的案例。 Zabbix进程树错误 容器化 Zabbix 后运行不到1分钟就退出,日志如下。 pstree看到进程树不对: cron.sh用于发报警,发完就退出,不应该是zabbix_server的子进程 需要引入init程序,比如dumb-i … Continue reading

5月 31

Harbor镜像仓库笔记

提供界面的镜像仓库可以选择 SUSE 的 Portus 和 VMware 的 Harbor。我选择的是 Harbor。其实一开始是倾向于 Portus 的,因为 Application tokens 功能看起来很有用,但是尝试部署时总是报错,Ruby 程序就是这么难搞。只好去尝试 Harbor。用 OIDC 登录时,有个 CLI 密码,类 … Continue reading

5月 30

使用kubedb管理数据库

kubedb 是一个在 Kubernetes 上管理数据库的开源工具,支持 MySQL,Postgres,Redis 等常用数据库。本文记录使用 0.13 版本部署 Postgres 及 Redis 的过程。 安装 使用 helm v3 安装。 安装 kubedb,设置 enableAnalytics=false 关闭信息采集。 安装 k … Continue reading