Laravel 10 在 Kubernetes 中稳定运行的关键是适配容器化契约:DB_HOST 必须用 Service 名(如 mysql-service)而非 localhost,APP_ENV=production,敏感信息走 Secret,健康检查用 /healthz 路由并设 initialDelaySeconds=30,Dockerfile 构建前清理 storage/ 和 bootstrap/cache/,Ingress 配置重写规则适配 Laravel 前端控制器模式。

在 Kubernetes 中部署 Laravel 10,关键不是“能不能跑起来”,而是让应用真正适应容器化、服务发现和声明式运维的运行契约。Laravel 10 在传统服务器上依赖的本地环境(如 localhost 数据库、固定文件权限、.env 直接读取)在 K8s 中全部失效,必须重构配置逻辑。
环境变量与数据库连接必须用 Service DNS
Laravel 10 的 .env 不能写 DB_HOST=127.0.0.1 或 localhost——K8s Pod 内没有本机 MySQL。必须通过 Kubernetes Service 名解析:
- MySQL 部署后,Service 的
metadata.name(比如mysql-service)会自动注册到 CoreDNS - Laravel Deployment 的
env中设为DB_HOST: mysql-service(不是 Pod 名、不是 ClusterIP) - 同时确保
APP_ENV=production:否则缓存不生效、调试信息泄露、甚至报Class 'App\Http\Controllers\Controller' not found - 敏感值如
APP_KEY、DB_PASSWORD必须通过 Secret 挂载,绝不可硬编码在 YAML 的env.value中
健康检查必须轻量且可靠
别用首页或 / 做 livenessProbe——加载慢或 DB 抖动会导致 Pod 被反复重启:
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 在 Laravel 10 中加一行路由:
Route::get('/healthz', fn() => response()->json(['status' => 'ok'], 200)); - Deployment 中配置:
livenessProbe.httpGet.path: /healthz,initialDelaySeconds: 30(给 config 加载、opcache 初始化留足时间) - 避免用
exec: php-fpm -t:PHP-FPM 进程活着 ≠ Laravel 应用能响应 HTTP 请求 - readinessProbe 可设为同一路由,但建议比 livenessProbe 更宽松(如
failureThreshold: 6)
Dockerfile 必须清理 storage 和 cache 再构建
宿主机残留的 storage/framework/cache 或 bootstrap/cache/config.php 会因 UID/GID 不一致(Alpine vs Debian 的 www-data 用户 ID 不同)导致容器启动失败:
- 在
COPY . /var/www/html前加:RUN rm -rf storage/* bootstrap/cache/* - 不要依赖
chown -R www-data:www-data:initContainer 权限受限,不同基础镜像 UID 不统一,容易失败 - 运行时用
emptyDir挂载storage/logs和storage/app,但storage/framework必须是容器内可写路径(不可只读挂载)
Ingress 和路由重写要适配 Laravel
Kubernetes Ingress 默认不处理 Laravel 的前端控制器模式(所有请求经 index.php):
- Nginx Ingress 需启用重写:
nginx.ingress.kubernetes.io/rewrite-target: /$2 - 配合路径规则,例如
path: /(.*)→ 转发到/index.php/$1 - 或者使用
nginx.ingress.kubernetes.io/use-regex: "true"+ 自定义 annotation 实现更精准控制 - 确认
APP_URL设为 Ingress 暴露的域名(如https://app.example.com),影响生成链接、CSRF token 等

















