
1) 【一句话结论】容器化通过标准化环境封装AI应用,确保部署一致性;Kubernetes作为容器编排平台,实现服务自动扩缩容(如根据负载动态调整Pod数量)和故障自愈(自动重启/替换故障Pod),显著提升AI服务的可靠性与可扩展性。
2) 【原理/概念讲解】
容器化(Docker)是将应用、依赖(如Python环境、模型文件)打包为轻量级镜像,通过容器引擎(如Dockerd)启动,实现“环境隔离+资源隔离”,类比“软件包+运行时容器”,避免“环境不一致导致的问题”。
Kubernetes(K8s)是容器编排工具,核心功能包括:
3) 【对比与适用场景】
| 部署方式 | 定义 | 关键特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 传统部署 | 手动配置服务器、安装依赖 | 环境依赖多、部署慢、扩展性差 | 小规模、简单应用 | 环境不一致,维护成本高 |
| 容器化部署(Docker+K8s) | 打包应用为容器镜像,K8s管理 | 环境标准化、快速部署、弹性扩展 | 大规模、复杂AI服务(如模型推理服务) | 需容器化基础,学习成本中等 |
4) 【示例】
以部署TensorFlow图像分类模型为例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-model-service
spec:
replicas: 3
selector:
matchLabels:
app: ai-model-service
template:
metadata:
labels:
app: ai-model-service
spec:
containers:
- name: ai-model
image: ai-model-service:latest
ports:
- containerPort: 5000
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "1Gi"
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: ai-model-service-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: ai-model-service
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
apiVersion: v1
kind: Service
metadata:
name: ai-model-service
spec:
selector:
app: ai-model-service
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: ClusterIP
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ai-model-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: ai-service.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: ai-model-service
port:
number: 80
5) 【面试口播版答案】
“在部署AI模型服务时,选择容器化(Docker)是因为它能将应用、依赖和模型文件打包成镜像,确保不同环境(开发、生产)的部署一致性,避免环境差异导致的问题;而Kubernetes作为容器编排工具,通过Deployment管理Pod,Service实现服务发现,Ingress处理外部路由,核心优势是支持自动扩缩容(比如根据CPU负载动态调整Pod数量,当请求增加时自动增加副本,减少响应时间)和故障自愈(比如Pod故障时自动重启或替换,保证服务持续可用)。比如我们部署一个图像分类模型,用Deployment定义3个副本,配置HPA根据CPU使用率调整,当负载超过70%时自动增加副本,同时Service暴露内部服务,Ingress配置外部访问,这样能快速响应流量变化,保证服务稳定。”
6) 【追问清单】
7) 【常见坑/雷区】