SuperAPI AI 工具集

k8s-deployment

部署与运维

查看项目

更新于 10-15 17:29

技能介绍

用途:面向将服务部署到 Kubernetes 的场景,提供 Docker 多阶段构建、kustomize overlays 与 Makefile 自动化组合的参考范式,适用于创建 Dockerfile、编写 k8s 清单以及执行发布。

目录结构:根目录含 Dockerfile、Makefile,并按服务拆分目录,例如 server/k8s/prod 下放置 server.yaml、ingress.yaml、kustomization.yaml,worker/k8s/prod 下放置 worker.yaml 与 kustomization.yaml。

主要能力:Makefile 中定义 build-push-cli 目标,用 git rev-parse --short HEAD 生成镜像标签、docker build 与 docker push 推送镜像;deploy-server 与 deploy-worker 目标调用 setup_env 加载环境文件,先执行 build-push-cli,再用 kustomize build --load-restrictor=LoadRestrictionsNone 渲染,并通过 sed 替换 {{DOCKER_REPO}} 与 {{GIT_COMMIT_SHA}} 占位符后交给 kubectl apply -f -。

关键模式:以 git hash 作为镜像标签便于追溯;用 kustomize overlays 加 sed 替换实现环境区分部署;多阶段构建分离 builder 与 runtime 以获得精简镜像;先复制依赖文件再复制源码以利用层缓存;前端建议部署到 Vercel,仅后端进入 k8s。

Dockerfile 示例:Go 使用 golang:1.24-alpine 作为 builder,CGO_ENABLED=0 构建后复制到 alpine:latest;Python 使用 python:3.13-slim,安装 uv,执行 uv sync --frozen --no-dev,以 uvicorn 启动。

限制:资料未提供具体收费、价格、平台兼容性或效果数据;示例中的 your-registry/your-app 与 .env 文件需按实际情况替换,暂未提供更多说明。