如何在Kubernetes中配置每个实例的最大并发请求数为1?
在Kubernetes中实现单VM单用户的Unreal Engine部署方案
要实现每台VM(Kubernetes节点)专用于单个用户的Unreal Engine环境,核心是让每个用户的Pod独占整个节点,避免其他Pod调度上来,具体可以通过以下配置组合实现:
节点标签+亲和性绑定
给每个节点打上专属用户的标签,比如给节点node-user-01打标签:kubectl label nodes node-user-01 dedicated-user=user01然后在用户的Unreal Engine Pod配置里,通过节点亲和性强制Pod只调度到对应标签的节点:
spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: dedicated-user operator: In values: - user01节点污点+Pod容忍度
为防止其他Pod意外抢占专属节点,给节点添加污点,只有对应用户的Pod能容忍这个污点:kubectl taint nodes node-user-01 dedicated=user01:NoSchedule同时在Pod配置里添加容忍度:
spec: tolerations: - key: "dedicated" operator: "Equal" value: "user01" effect: "NoSchedule"资源独占配置
将Pod的资源请求和限制设置为节点的全部可用资源(包括CPU、内存、GPU),确保Kubernetes不会在该节点上调度其他Pod。比如节点有8核CPU、32Gi内存、1块GPU,Pod配置如下:spec: containers: - name: unreal-engine image: your-unreal-image:latest resources: requests: cpu: "8" memory: "32Gi" nvidia.com/gpu: 1 limits: cpu: "8" memory: "32Gi" nvidia.com/gpu: 1独立实例管理
每个用户对应一个独立的Pod(可通过Deployment或StatefulSet管理),每个Pod绑定到专属节点。如果需要动态适配新用户,可结合Cluster Autoscaler,当有新用户请求时自动创建带对应标签和污点的节点,再调度专属Pod上去。
通过以上配置,就能保证每台VM(节点)只运行单个用户的Unreal Engine环境,完全满足你环境不可共享的需求。
内容的提问来源于stack exchange,提问作者A J
相关产品推荐
相关产品推荐

