Kubernetes自定义Endpoint健康检查
场景描述 Kubernetes 的 Service 可以添加自定义的 Endpoints,这样通过 Ingress Nginx 就可以给集群外部的 Web 服务做负载均衡,但是会有一个问题,Ingress Nginx 用 Lua 来处理 upstream,已经移除了以下两个 annotation: there is no support … Continue reading
场景描述 Kubernetes 的 Service 可以添加自定义的 Endpoints,这样通过 Ingress Nginx 就可以给集群外部的 Web 服务做负载均衡,但是会有一个问题,Ingress Nginx 用 Lua 来处理 upstream,已经移除了以下两个 annotation: there is no support … Continue reading
Kubernetes Node 节点上,可能有一些基于 docker 命令的维护需求,可以通过脚本调用 docker inspect 等获取到更易读的信息。 列出所有业务容器 docker ps 列出的容器名称很长,不容易看出是哪个业务。通过 docker inspect,将获取到的容器输出为以下格式: 查看业务容器日志 查看容器TCP状 … Continue reading
DokuWiki 使用 Docker 做容器化,主要解决以下问题。 插件和模板的安装 插件和模板的默认配置和配置文件的传递 持久化存储 插件模板安装 使用容器之后就不能在使用插件管理器来安装插件了,否则容器重启后插件将丢失。需要将插件代码打包到镜像里。基本思路是使用多段构建,在 builder 过程中下载并解压插件和模板代码,然后复制到运 … Continue reading
当面向很多用户时,Kubernetes 的使用方式是一个需要考虑的问题。如果直接让用户写 yaml,一方面是要求每个用户都学 Kubernetes,这对研发人员来说是一个不必要的负担,另一方面 yaml 的管理以及权限分配对运维人员来说也是一个不必要的负担,平添很多琐事。因此,使用一个管理系统来屏蔽 Kubernetes 细节,管理权限等 … Continue reading
提供界面的镜像仓库可以选择 SUSE 的 Portus 和 VMware 的 Harbor。我选择的是 Harbor。其实一开始是倾向于 Portus 的,因为 Application tokens 功能看起来很有用,但是尝试部署时总是报错,Ruby 程序就是这么难搞。只好去尝试 Harbor。用 OIDC 登录时,有个 CLI 密码,类 … Continue reading
kubedb 是一个在 Kubernetes 上管理数据库的开源工具,支持 MySQL,Postgres,Redis 等常用数据库。本文记录使用 0.13 版本部署 Postgres 及 Redis 的过程。 安装 使用 helm v3 安装。 安装 kubedb,设置 enableAnalytics=false 关闭信息采集。 安装 k … Continue reading
我最早接触的持续集成工具是大名鼎鼎的 Jenkins,接手同事留下的一个单节点 Jenkins。由于没有太强烈的使用需求,体会不到 Jenkins 的强大,印象停留在 “麻烦” 两个字:需要给研发同事手动添加账号,然后用一个有很多很多方框的表单来设置权限。而 Drone CI 在账号权限方面就给人眼前一亮的感觉,直接集成代码仓库,和 Gi … Continue reading
前些年自建 Git 的首选应该是 Gitlab,印象中 Gitlab 是非常臃肿的,对内存的需求比较大,最好是 4G 以上内存的机器。相比之下,Gitea 就很轻量级了,能够很好的节约系统资源。另外 Go 程序部署起来也更方便。还有一个比较实用的功能是,Gitea 支持全文搜索,而 Gitlab 社区版本不支持。和 Gerrit 对比,G … Continue reading