其他应用功能#
在应用程序中多次使用相同的微服务组件#
自 UCS 2.5.0 起,应用程序清单可以多次指定相同的微服务。例如,下面我们有一个应用程序,它使用微服务 A 两次,微服务 B 一次
specVersion: '2.5.0' version: 0.0.1 doc: README.md name: multiple-same-ms-example description: MS A is used twice dependencies: - ucf.svc.microserviceA:0.0.1 - ucf.svc.microserviceB:0.0.1 components: - name: microserviceA one type: ucf.service.microserviceA parameters: paramA1: 100 paramA2: - name: tango imagePullSecrets: - name: ngc-docker-reg-secret - name: microserviceA two type: ucf.service.microserviceA parameters: paramA1: 200 paramA2: - name: waltz imagePullSecrets: - name: ngc-docker-reg-secret - name: microserviceB type: ucf.service.microserviceB parameters: paramB1: false secrets: some-secret-name: some-secret connections: microserviceA one/http: microserviceB/http microserviceA two/http: microserviceB/http
此功能使用 Helm Chart 别名 实现,生成的 Chart.yaml 如下所示
apiVersion: v2 name: multiple-same-ms-example description: MS A is used twice type: application version: 0.1.0 appVersion: '' dependencies: - name: ucf.svc.microserviceB version: 0.0.1 - name: ucf.svc.microserviceA version: 0.0.1 alias: microserviceA one - name: ucf.svc.microserviceA version: 0.0.1 alias: microserviceA two
当前的限制是,在 MicrosrviceA 的第一个实例中指定的任何参数也将应用于第二个实例(或第三个和第四个等)。如果您不希望出现此行为,则需要为同一微服务的任何实例指定相同的参数以及所需的值,否则默认值将不适用。
与 NVIDIA K8s RAG Operator 交互#
自 UCS Tools 2.5 起,提供了一个名为 ucf.svc.rag-operator-external
的新的内置组件,它代表 NVIDIA K8s Operator。这允许 UCS 应用程序中的微服务隐式连接到由 RAG Operator 管理和部署的 NeMo 微服务,从而简化了 UCS Tools 中 RAG 应用程序的开发。
RAG Operator 需要在部署使用它的 UCS 应用程序之前部署到目标 K8s 平台。NVIDIA GPU Operator 是一个依赖项,必须在安装 RAG Operator 之前运行。有关部署 RAG Operator 的说明,请参见该项目的主页。简而言之,您需要执行以下操作
helm repo add nemollm-ea-rag-examples https://helm.ngc.nvidia.com/ohlfw0olaadg/ea-rag-examples
helm install rag-operator nemollm-ea-rag-examples/rag-operator -n rag-operator --create-namespace
您还可以选择配置 GPU 时间切片
请参阅我们 UCS-Tools GitLab 存储库中的 示例 UCS RAG 应用程序。