51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

在佳都科技的云原生部署中,如何设计一个容器化应用(如AI推理服务)的部署方案,确保高可用和弹性伸缩?

佳都科技工程交付工程师/计划管控专员/运维技术工程师难度:中等

答案

1) 【一句话结论】针对AI推理服务的容器化部署,核心是通过Kubernetes的Deployment管理多副本、Service实现负载均衡、Horizontal Pod Autoscaler(HPA)根据负载自动扩缩容Pod,配合Cluster Autoscaler动态调整节点数量,结合持久化存储确保数据不丢失,从而实现高可用与弹性伸缩。

2) 【原理/概念讲解】老师口吻,解释关键组件:

  • Deployment:用于管理无状态应用的Pod副本,自动重启故障Pod,保证服务连续性。类比:班级里的学生,Deployment负责安排多个学生(Pod)同时上课(服务),若某个学生(Pod)生病(故障),其他学生(Pod)继续上课(服务)。
  • Service:提供稳定的访问入口,通过负载均衡将请求分发到多个Pod,实现高可用。类比:教室的入口(Service),学生(Pod)通过入口进入教室(服务),入口自动将学生引导到空闲座位(Pod)。
  • Horizontal Pod Autoscaler(HPA):根据CPU、内存等指标自动调整Pod副本数,负载增加时扩容,减少时缩容,实现弹性伸缩。类比:教室的座位数量,根据学生数量(负载)自动增加或减少座位。
  • Cluster Autoscaler:根据节点负载自动调整节点数量,节点资源紧张时增加节点,缓解压力,确保集群资源充足。类比:教室的数量,根据学生数量(集群负载)自动增加或减少教室,避免拥挤。

3) 【对比与适用场景】

特性DeploymentStatefulSetHPACluster Autoscaler
定义管理无状态应用的Pod副本,自动重启故障Pod管理有状态应用的Pod,保证Pod有序,持久化存储水平扩缩容Pod数量,根据指标(CPU、内存)水平扩缩容节点数量,根据节点负载
特性Pod无唯一标识,可随意扩缩容Pod有唯一标识(如序号),有序部署,持久化存储调整Pod副本数,影响服务处理能力调整节点数量,影响集群资源总量
使用场景AI推理服务(无状态,模型文件通过PVC持久化)数据库、消息队列(有状态,需有序和持久化)AI推理服务(根据负载调整处理能力)集群资源紧张时,自动增加节点
注意点需结合PVC实现数据持久化需配置持久化存储,保证数据不丢失需定义指标(CPU、QPS等)需配置最小/最大节点数,节点选择器

4) 【示例】(K8s部署文件示例)

  • Deployment与Service:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ai-inference-service
  labels:
    app: ai-inference
spec:
  replicas: 2
  selector:
    matchLabels:
      app: ai-inference
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: ai-inference
    spec:
      containers:
      - name: ai-inference
        image: my-ai-inference:latest
        ports:
        - containerPort: 5000
        resources:
          requests:
            cpu: "500m"
            memory: "1Gi"
          limits:
            cpu: "1"
            memory: "2Gi"
        env:
        - name: MODEL_PATH
          value: "/models"
        volumeMounts:
        - name: model-volume
          mountPath: /models
      volumes:
      - name: model-volume
        persistentVolumeClaim:
          claimName: ai-model-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: ai-inference-service
spec:
  type: ClusterIP
  selector:
    app: ai-inference
  ports:
  - protocol: TCP
    port: 80
    targetPort: 5000
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: ai-inference-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: ai-inference-service
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70
  • PersistentVolumeClaim(数据持久化):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ai-model-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

5) 【面试口播版答案】(约90秒)
“面试官您好,针对AI推理服务的容器化部署,确保高可用和弹性伸缩,核心方案是利用Kubernetes的Deployment、Service、Horizontal Pod Autoscaler(HPA)和Cluster Autoscaler。首先,通过Deployment管理多个Pod副本,每个Pod运行AI推理服务容器,并配置自动重启策略,保证单个Pod故障时服务不中断。然后,用Service(ClusterIP模式)提供稳定的访问入口,实现负载均衡,即使某个Pod故障,其他Pod继续响应请求。接着,部署Horizontal Pod Autoscaler,根据CPU使用率等指标,自动增加或减少Pod副本数,比如当CPU使用率超过80%时,自动扩容到3个副本,低于50%时缩容到1个,确保资源利用率最优。同时,配合Cluster Autoscaler,根据节点负载自动调整节点数量,比如当节点CPU使用率超过70%时,自动增加节点,避免资源瓶颈。另外,如果AI推理服务需要持久化数据(比如模型文件),通过PersistentVolumeClaim绑定持久化存储(如NFS),确保模型文件不丢失,Pod重启或故障转移后数据可用。这样,整体方案实现了高可用(多副本、自动故障转移)和弹性伸缩(根据负载自动调整资源),满足业务需求。”

6) 【追问清单】

  1. 如何保证AI模型等数据的持久化?
    • 回答:通过PersistentVolumeClaim(PVC)绑定持久化存储(如NFS、云盘),确保模型文件不丢失,Pod重启或故障转移后数据可用。
  2. HPA的指标除了CPU,还可以用哪些?
    • 回答:内存、QPS(请求速率),根据业务需求选择,比如对于I/O密集型服务,可能关注I/O等待时间。
  3. Cluster Autoscaler如何配置节点扩缩容策略?
    • 回答:通过Kubernetes的Cluster Autoscaler配置,设置最小节点数和最大节点数,以及节点选择器(如节点标签),根据集群负载自动调整节点数量。
  4. 如果AI推理服务有状态(比如需要会话保持),如何处理?
    • 回答:如果是有状态,可能需要用StatefulSet,保证Pod有序,持久化存储,而Service用Headless Service(无负载均衡),或结合SessionAffinity实现会话保持。
  5. 高可用具体如何实现?比如多个Pod部署在多个节点,Service的负载均衡策略?
    • 回答:Service的ClusterIP模式,结合NodePort或LoadBalancer,确保请求分发到多个Pod,即使某个Pod故障,其他Pod继续服务。

7) 【常见坑/雷区】

  1. 忽略持久化存储导致数据丢失:若AI模型是关键数据,未配置PVC,Pod重启后模型丢失,影响服务。
  2. HPA指标选择不当:仅看CPU,但AI推理服务I/O密集,资源分配不合理,或缩容过快导致服务卡顿。
  3. 节点扩缩容策略不合理:最小节点数过高导致资源浪费,最大节点数不足无法应对突发流量。
  4. Service类型选择错误:用NodePort未考虑端口冲突,或用ClusterIP未配置负载均衡器,导致外部访问失败。
  5. 部署时未考虑资源配额:Pod的CPU/内存请求设置不当,导致HPA无法正确判断负载,或资源竞争。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1