是否有一种方法可以强制使用(托管在GKE上)将服务部署到具有GPU的节点池中?
我通过访问Kubernetes -> Create Cluster -> GPU Accelerated Computing创建了一个Kubernetes集群。这创建了一个带有gpu-pool-1节点池的Kubernetes集群,其中包含带有GPU的节点,以及包含没有GPU的节点的standard-pool-1节点池。
是否有办法将云运行容器部署到具有GPU的节点?也许是通过配置自定义命名空间什么的?
请注意,大约一年前有一个相似问题,但我不认为接受的答案(“不支持GPU”)是完全正确的。
发布于 2020-01-22 09:51:00
这是一个关于本机服务开发的热门话题。
现在不可能有节点选择器和容忍时,当您的豆荚是生成的,以K本地服务,但团队正在努力解决方案。
发布于 2020-01-22 18:54:32
像这里所描述的那样,似乎确实有一种方法可以让它发挥作用,至少是一种讨厌的方式。
关联的Service配置文件似乎确实接受并尊重limits: nvidia.com/gpu: 1参数。虽然Cloud接口不允许我们自己指定这个参数,但是我们可以使用kubectl CLI手动部署由包含这个参数的yaml文件定义的附加服务。
首先,我们需要创建一个GKE集群,其中包含一个cpu节点池、一个gpu节点池,以及启用了Anthos的云运行。这可以通过转到Kubernetes Engine -> Create Cluster -> Selecting "GPU Accelerated Computing" on the left cluster templates bar -> Checking the "Enable Cloud Run for Anthos"来实现。创建集群后,我们可以单击"connect“按钮并启动一个云外壳。在这里,我们可以创建一个service.yaml文件来定义我们的附加服务。例如,我们可以调整来自service.yaml的编织文献文件,但指定此服务需要一个GPU:
# service.yaml
apiVersion: serving.knative.dev/v1 # Current version of Knative
kind: Service
metadata:
name: helloworld-go # The name of the app
namespace: default # The namespace the app will use
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go # The URL to the image of the app
env:
- name: TARGET # The environment variable printed out by the sample app
value: "Go Sample v1"
resources:
limits:
nvidia.com/gpu: 1 # The service must be run on a machine with at least one GPU我们可以使用以下方法部署此服务:
kubectl apply -f service.yaml并使用以下方法检查其状态:
kubectl get ksvc helloworld-gohelloworld-go服务只应安排在包含GPU的节点上。该服务应该显示在云运行仪表板上,就像为Anthos服务运行的其他云运行一样。
https://stackoverflow.com/questions/59850010
复制相似问题