OpenKruise请教个问题?按照这个最佳实践
https://openkruise.io/zh/kruisegame/best-practices/pve-game
创建gs挂载obs,pvc创建存在绑定pv了,桶里文件夹及配置已经创建了。为什么一直pod创建失败报错找不到pvccreate Pod gameserver-0 in StatefulSet gameserver failed error: Pod "gameserver-0" is invalid: spec.containers[0].volumeMounts[0].name: Not found: "gs-cluster-pvc-oss"
apiVersion: game.kruise.io/v1alpha1
kind: GameServerSet
metadata:
name: gameserver
namespace: kruise-game
spec:
replicas: 5
updateStrategy:
rollingUpdate:
podUpdatePolicy: InPlaceIfPossible
gameServerTemplate:
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/acs/minecraft-demo:1.12.2
imagePullPolicy: IfNotPresent
name: minecraft
env:
- name: POD_NAME #把pod name作为环境变量传入
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
volumeMounts:
- name: gs-cluster-pvc-oss #挂载oss对应pvc
mountPath: "/app/sgame.config" #容器中的目录及文件
subPathExpr: $(POD_NAME)/sgame.config #对应oss目录及文件
volumes:
- name: gs-cluster-pvc-oss
persistentVolumeClaim:
claimName: gs-cluster-pvc-oss
这个我创建gs的yaml nm是kruise-game
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
应该是缩进的问题。volumes应该是在与containers同级,volumeMounts应该在container里。我们后面修复下文档。此回答整理自钉群“OpenKruise 社区交流群”
根据你提供的 YAML 配置片段,看起来你在尝试通过 OpenKruise 创建一个 GameServerSet,并挂载一个名为 gs-cluster-pvc-oss
的 PersistentVolumeClaim (PVC) 到游戏服务器的容器中。Pod 创建失败并报错 "spec.containers[0].volumeMounts[0].name: Not found: "gs-cluster-pvc-oss" 表明 Kubernetes 无法在 Pod 的 volumes 中找到与 volumeMounts 中引用的同名 PVC。
以下是可能的原因和解决步骤:
kubectl describe pvc -n kruise-game gs-cluster-pvc-oss
确保 PVC 存在并位于正确的命名空间中 (kruise-game
),且名字 (claimName
) 与 GameServerSet YAML 中的 claimName
相匹配。
如果 PVC 已经存在且已绑定 PV,还需要检查 PV 是否配置正确,包括存储类、访问模式等是否能满足 Pod 的需求。
检查 YAML 中 volumes
部分的配置,确保正确设置了 PersistentVolumeClaim 字段。以下是完整的 Volume 示例:
volumes:
- name: gs-cluster-pvc-oss
persistentVolumeClaim:
claimName: gs-cluster-pvc-oss
如果以上所有步骤都没有问题,那可能是 Kubernetes API 服务器在处理请求时遇到了问题。你可以尝试删除并重新创建 GameServerSet 或 PVC,或者查看更详细的 Pod 事件信息以获取更多错误细节:
kubectl describe pod gameserver-0 -n kruise-game
根据事件信息来进一步排查问题。