关键词:Docker、无服务器、Serverless、TKE、SCF、CloudBase、TCR、CI/CD、成本优化
适合读者:想把"本地能跑"的容器快速搬上云,又不想买 EC2 的开发者、DevOps、CTO
1. 故事开场:为什么我们还要"买服务器"?
很多团队把 Dockerfile 写完,下一步却卡在"得先买台 CVM(云服务器)"------配网络、装 kubelet、拉镜像、调监控,时间嗖地过去 3 天。
腾讯云给出的思路是:镜像即交付件 ,剩下的让平台帮你做。
本文把"无服务器"与"容器服务"两条路线拆成 4 个落地场景,手把手带你 10 分钟完成迁移,再送一份"省 70% 账单"的隐藏秘籍。
2. 路线总览:一张图看懂 4 种姿势
路线 | 产品 | 运维粒度 | 最小计费单元 | 适合场景 |
---|---|---|---|---|
无服务器 | 云函数 SCF(镜像模式) | 函数 | 1 ms | 事件触发、轻量 API |
无服务器 | CloudBase 云托管 | 容器 | 100 ms | Web、小程序后端 |
Serverless 容器 | TKE Serverless | Pod | 1 s | 微服务、弹性 Job |
传统容器 | TKE 标准集群 | Node | 包年包月 | 复杂网络、混合云 |
3. 无服务器极速体验:代码到域名只需 3 步
3.1 云函数 SCF:把 Docker 镜像当成"压缩包"上传
- 本地构建(示例 Python)
bash
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY app.py .
EXPOSE 9000
CMD ["python", "app.py"]
注意:SCF 强制监听 9000 端口,否则健康检查失败。
- 推送至腾讯云容器镜像服务 TCR
bash
docker tag myapp:latest ccr.ccs.tencentyun.com/myrepo/myapp:v1
docker push ccr.ccs.tencentyun.com/myrepo/myapp:v1
- 控制台创建函数
选择「镜像部署」→ 填入刚推送的地址 → 内存 512 MB → 完成。
平台会自动生成公网域名,支持 HTTPS、日志、监控、告警开箱即用。
计费示例
华北地域 512 MB 内存,每次调用 100 ms,100 万次/月 ≈ 15 元,
公网出流量走 CDT 阶梯,<10 GB 免费。
3.2 CloudBase 云托管:自动扩缩到 0
如果你的镜像是标准 Web 服务(监听 80/8080),CloudBase 更友好:
- 在 CloudBase 控制台新建「云托管」服务;
- 填镜像地址、端口 80,勾选「最小副本 0」;
- 平台分配
*.app.tcloudbase.com
域名,支持自定义域名、证书、灰度。
冷启动优化小贴士
- 使用
distroless
或alpine
把镜像压到 <100 MB,冷启动可缩短 60%。 - 把
CMD
写成exec
格式,避免 shell 进程残留。
4. Serverless 容器:既要 Kubernetes 又要按秒计费
当业务需要多 Pod 协同、服务发现、配置中心,又不想管节点,用 TKE Serverless。
4.1 30 秒创建"无节点"集群
控制台 → 新建集群 → 选择「Serverless」→ 选 VPC 和子网 → 完成。
整个集群 0 节点,但可立即调度 Pod。
4.2 一键部署 YAML 示例
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 2
selector:
matchLabels: { app: myapp }
template:
metadata:
labels: { app: myapp }
spec:
containers:
- name: app
image: ccr.ccs.tencentyun.com/myrepo/myapp:v1
ports:
- containerPort: 80
resources:
requests:
cpu: 250m
memory: 512Mi
平台按 Pod 实际 CPU、内存使用量秒级计费,
华北 250 mCPU + 512 MB ≈ 0.004 元/分钟,业务低峰缩容到 0 不再花钱。
4.3 HPA 弹性伸缩:流量高峰自动加副本
yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 0
maxReplicas: 50
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
结合 CLB + QPS 监控,曾支持客户春晚活动 0→5k Pod 秒级扩容,活动结束后回归 0,成本节省 80%。
5. 大规模迁移:TB 级镜像仓库如何"一键搬家"
5.1 image-transfer:跨云并发迁移利器
腾讯云开源工具,支持
- 阿里云 ACR ⇄ 腾讯云 TCR
- Harbor ⇄ TCR
- Docker Hub ⇄ TCR
特性:
- 并发 worker 可调,单 worker 速度 100 MB/s;
- 断点续传、失败重试、QPS 限速,不给源仓库打爆。
使用示例(迁移阿里云 ACR):
bash
# config.yaml
src:
type: acr
region: cn-shanghai
access_key: xxx
secret_key: xxx
dst:
type: tcr
region: ap-beijing
access_key: xxx
secret_key: xxx
namespaces: ["ns1", "ns2"]
bash
docker run --rm -v $(pwd):/data tencentcloud/image-transfer \
--config /data/config.yaml --worker 10
1 TB 镜像 2 小时完成,全程无需写脚本。
5.2 虚拟机无代理迁移:HyperMotion
若旧业务还在 VMware,可直接把虚拟机磁盘转成容器镜像,
平台自动注入 qemu-guest-agent 与 cloud-init,
最终输出符合 OCI 规范的镜像推送到 TCR,
平均 1 台 100 GB 虚拟机 15 分钟完成"VM→容器"。
6. CI/CD 全链路自动化:从 git push 到灰度上线
CODING DevOps + TCR + TKE 三件套,一条流水线搞定:
- 代码提交 → Webhook 触发;
- CI 阶段:
- Dockerfile 多阶段构建,缓存 node_modules;
- 集成 TCR 漏洞扫描,高危 CVE 直接阻断;
- CD 阶段:
- 镜像推送到 TCR 个人版/企业版;
- 自动更新 TKE Serverless 工作负载镜像版本;
- 灰度发布:按 5%→20%→100% 流量逐步切流,支持一键回滚。
整个流程平均 3 分钟,开发早上提交的 PR,午休前已经在生产跑 100% 流量。
7. 成本优化 5 个隐藏开关
开关 | 操作 | 节省幅度 |
---|---|---|
① 内网拉镜像 | SCF/TKE 与 TCR 同 VPC,走内网,免公网流量费 | 100% |
② 镜像瘦身 | alpine/distroless + 多阶段构建,800 MB→150 MB | 拉取时间↓70% |
③ 抢占式 Spot | TKE 标准集群使用 Spot 节点,单价 30% | 计算成本↓50% |
④ 弹性缩容 | TKE Serverless 最小副本设为 0 | 闲时成本↓100% |
⑤ 包月套餐 | Serverless Pod 长期跑,选 1 核 2 GB 套餐 7.2 元/月 | 比按量↓60% |
真实案例:某 SaaS 服务商月活 50 万,
原来 20 台 CVM 包年约 3500 元/月,
迁到 TKE Serverless + Spot + 镜像瘦身,
同样并发量账单 980 元/月,节省 72%。
8. 选型决策树:一张流程图帮你 10 秒做决定
text
业务需不需要 K8s 特性(CRD、Operator、Istio)?
├─ 是 → 流量是否稳定?
│ ├─ 稳定 → TKE 标准集群 + Spot 节点
│ └─ 不稳定 → TKE Serverless + HPA
└─ 否 → 有没有事件触发(定时任务、API Gateway)?
├─ 有 → 云函数 SCF 镜像部署
└─ 无 → CloudBase 云托管
9.费用比较
1,个人开发者 / 小团队 腾讯云 TCR + SCF 免费额度高、套餐灵活,附加服务(如安全扫描)免费
2,中大规模企业 阿里云 ACR + FC 支持全球分发、高级安全功能(需付费),适合复杂业务需求
3,国际业务 腾讯云 TCR + SCF 国际节点覆盖广,跨地域同步免费,国际流量费用较低
4,成本敏感型业务 腾讯云 TCR + TKE 按量计费、套餐包灵活,镜像存储和流量费用更低
10. 结语:把服务器"丢掉"的那一刻
云计算的终极浪漫,是让开发者忘记服务器存在。
腾讯云通过 SCF、CloudBase、TKE Serverless 三级火箭,
把"本地 Docker 能跑"直接等价于"线上能扩",
再配合 TCR + CODING 的自动化流水线,
镜像一旦推上去,扩容、监控、告警、灰度、回滚全托管。
下次当你 docker build -t myapp:latest
完成,
只需 10 分钟,就能把笔记本里的容器送上云,
然后------
关掉 SSH,合上电脑,去海边喝杯咖啡吧。