微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Eclipse che - 5 个用户同时启动工作区时出现卷挂载错误

如何解决Eclipse che - 5 个用户同时启动工作区时出现卷挂载错误

配置:

  • Google Kubernete 引擎 (GKE) 版本 - 1.18.12-gke.1210
  • 节点数 - 2
  • 节点配置 - 2 核 8 GB 内存机器,30 GB 硬盘
  • 启用自动缩放

Eclipse che 高级配置:

server:
  CHE_WORKSPACE_POOL_EXACT__SIZE: "60"
  CHE_WORKSPACE_STORAGE_PREFERRED__TYPE: ephemeral
  allowUserDefinedWorkspaceNamespaces: false
  cheDebug: "false"
  cheFlavor: che
  cheHost: che-eclipse-che.domain.com
  cheLogLevel: INFO
  cheServerIngress: {}
  cheServerRoute: {}
  devfileRegistryIngress: {}
  devfileRegistryRoute: {}
  externalDevfileRegistry: false
  externalPluginRegistry: false
  gitSelfSignedCert: false
  pluginRegistryIngress: {}
  pluginRegistryRoute: {}
  selfSignedCert: true
  tlsSupport: true
  useInternalClusterSVCNames: true
  workspaceNamespaceDefault: all-che-workspace
storage:
  preCreateSubPaths: true
  pvcclaimsize: 128Gi
  pvcStrategy: common
  preferred_type: persistent

错误描述:

同时登录 10 个不同的用户,每次启动每个用户的 10 个工作区。 3 - 5 个用户能够成功启动工作区,对于剩余用户在安装卷中出现超时错误,一些用户继续加载工作区并且日志窗口中没有任何初始化。

错误截图:

无法运行工作区:“发生不可恢复的事件:'FailedMount'、'无法附加或装入卷:未装入的卷=[claim-che-workspace]、未附加的卷=[gitconfigvolume remote-endpoint che-workspace-token] -dmn68 workspacep72ony0ucs0pqa5c-sshprivatekeys che-ca-certs broker-config-volume5iwa24 ssshkeyconfigvolume claim-che-workspace che-jwtproxy-config-volume]: 等待条件超时','workspacep72ony0ucs0pqa4tcs0pqa4dgf4'6"6 >

无法运行工作区:“正在等待工作区‘workspaceo6i4zoqzs1xym88w’的Kubernetes环境‘认’达到超时”

解决方法

尝试在调试模式下运行 Che Workspace。 见https://www.eclipse.org/che/docs/che-7/end-user-guide/investigating-failures-at-a-workspace-start-using-the-verbose-mode/ 它可能会为您提供有关问题所在的一些信息。

,

问题中出现问题的最可能原因(我已设法重现)可能与所使用的存储配置有关。

引用文档:

使用 common PVC 策略时,用户定义的 PVC 将被忽略,引用这些用户定义的 PVC 的卷将替换为引用公共 PVC 的卷。在此策略中,所有 Che 工作区都使用相同的 PVC。 当用户运行一个工作区时,它一次只绑定到集群中的一个节点。

-- Eclipse.org: Che: Docs: Configuring storage strategies: The common PVC strategy

默认情况下,当您使用 PVC 创建 GKE 时,您实际上是在创建一个 Persistent Disk,它可以以 RWO 访问模式安装到单个节点。如果 workspace 被调度到 PVC 没有挂载到的节点上,创建过程将失败,您将收到以下消息:

Unable to attach or mount volumes: unmounted volumes=[claim-che-workspace],unattached volumes=[che-ca-certs che-workspace-token-5tb9b broker-config-volumeavmw4x claim-che-workspace workspacebgnsca7mkryv3s3m-sshprivatekeys ssshkeyconfigvolume gitconfigvolume]: timed out waiting for the condition
Failed to run the workspace: "Plugins installation process failed. Error: Unrecoverable event occurred: 'FailedMount','Unable to attach or mount volumes: unmounted volumes=[claim-che-workspace],unattached volumes=[che-ca-certs che-workspace-token-5tb9b broker-config-volumeavmw4x claim-che-workspace workspacebgnsca7mkryv3s3m-sshprivatekeys ssshkeyconfigvolume gitconfigvolume]: timed out waiting for the condition','workspacebgnsca7mkryv3s3m.che-plugin-broker'"

我认为你可以(未测试)避免这个问题:

  • 使用 RWX 存储解决方案。
  • 更改 unique 的存储配置。
  • 使用单个节点。

要更深入地了解该问题,您可以在创建工作区时监控 Pods 的状态。它可以告诉您有关该过程的更多信息:

  • $ kubectl get pods -n kruk-che
NAMESPACE       NAME                                                        READY   STATUS              RESTARTS   AGE    IP            NODE                 NOMINATED NODE   READINESS GATES
kruk-che        workspace4pfd7goxamv8vvs4.maven-5d9c59746f-swfdd            5/5     Running             0          29m    10.4.0.58     gke-name-pool-9530   <none>           <none>
kruk-che        workspacebgnsca7mkryv3s3m.che-plugin-broker                 0/1     ContainerCreating   0          105s   <none>        gke-name-pool-qhns   <none>           <none>
kruk-che        workspacezo0l50kaa2zvm4lv.maven-8644fbf959-45xjd            5/5     Running             0          12m    10.4.0.62     gke-name-pool-9530   <none>           <none>

在上面的示例中,您可以看到 Pods 处于 ContainerCreating 状态。您可以检查它们以获取有关其状态的更多信息,例如:

$ kubectl describe pod -n kruk-che workspacebgnsca7mkryv3s3m.che-plugin-broker

Events:
  Type     Reason              Age   From                     Message
  ----     ------              ----  ----                     -------
  Normal   Scheduled           83s   default-scheduler        Successfully assigned kruk-che/workspacebgnsca7mkryv3s3m.che-plugin-broker to gke-name-pool-qhns
  Warning  FailedAttachVolume  83s   attachdetach-controller  Multi-Attach error for volume "pvc-869bc565-4dd1-4362-8d63-f3b1fde6f246" Volume is already used by pod(s) workspacezo0l50kaa2zvm4lv.maven-8644fbf959-45xjd,workspace4pfd7goxamv8vvs4.maven-5d9c59746f-swfdd
  Warning  FailedMount         10s   kubelet                  Unable to attach or mount volumes: unmounted volumes=[claim-che-workspace],unattached volumes=[che-ca-certs che-workspace-token-5tb9b broker-config-volumeavmw4x claim-che-workspace workspacebgnsca7mkryv3s3m-sshprivatekeys ssshkeyconfigvolume gitconfigvolume]: timed out waiting for the condition

其他资源:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。