更新时间:2025-09-08 GMT+08:00
分享

LoadBalancer类型K8s service创建(可选)

当前在部署kubeinfer实例时我们默认创建了NodePort类型的K8s service,这是K8s最简单、最基础的一种service,通常我们建议仅用于功能联调时访问推理服务使用,如果您需要有更好的负载均衡能力,我们建议创建LoadBalancer类型的service。

注意:创建LoadBalancer类型的K8s service依赖于您的K8s所在的云平台,如果您是直接用开源K8s搭建的,可能无法直接使用云厂商提供的LB服务。

基于华为云CCE上创建LoadBalancer类型K8s service的步骤如下:

  1. 购买独享型ELB,并获取购买好的ELB的ID。
  2. 准备好lb_service.yaml用于创建service,参考样例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: svc-infer-vllm-2p1d
      annotations:
        kubernetes.io/elb.id: ${your_elb_id}          # ELB ID,替换为实际值
        kubernetes.io/elb.class: performance          # 负载均衡器类型
        kubernetes.io/elb.lb-algorithm: ROUND_ROBIN   # 负载均衡器算法
    spec:
      selector:
        app.modelarts.huaweicloud/role: role-0
        app.model: deepseek-r1                        # 创建实例时添加的自定义label,替换为实际值
      ports:
        - protocol: TCP
          port: 9000
          targetPort: 9000
      type: LoadBalancer
    
    1. 自定义label需要在生成部署推理服务yaml时添加,需要替换为实际值,参考表1,样例如下:
      python3 gen_pd_deploy_kubeinfer_yaml.py \
          --custom-labels="{\"app.model\": \"deepseek-r1\"}" \
          ...
    2. 部署ELB适配的服务,用户调用请求需要访问EXTERNAL-IP。

  3. 执行如下命令创建K8s service

    kubectl apply -f lb_service.yaml

相关文档