Hyperf官方提供了容器镜像,配置选项又非常开放,将Hyperf部署于云端本身并不复杂。我们以Kubernetes为例,对Hyperf默认的骨架包进行一些改造,使它可以优雅的运行于Kubernetes上。
请参阅这篇博客:https://guxi.me/posts/cloudnative-hyperf/
- 增加Kubernetes健康检查路由(具体内容仍需用户自主实现)
- 按照Docker容器习惯,将日志输出到stdout
- 在生产环境时输出JSON格式便于集成FluentBit、ELK等收集工具。
- 根据环境变量设置不同的日志等级
- 默认集成Tracing和Metric组件
- 默认使用Base模式,只开启1进程。此模式可配合Kubernetes HPA实现进程级别的扩容与缩容。
- 由于上述原因,Metric组件默认不开启独立进程,直接从路由输出
- Worker终止时进行Timer清理,实现在Kubernetes下优雅退出
- Tracing默认使用Jaeger
- 集成league/flysystem,开发环境默认使用本地文件系统,其他环境默认使用S3驱动。
- 开启Error监听器
- 新增helm chart,一键部署到k8s
- 集成APIDOG
#helm 2
helm install .helm
#helm 3
helm install hyperf .helm