【问题标题】:Eclipse che - volume mount error while launching workspace by 5 users at same timeEclipse che - 5 个用户同时启动工作区时出现卷挂载错误
【发布时间】:2021-06-20 23:23:58
【问题描述】:

配置:

  • Google Kubernetes 引擎 (GKE) 版本 - 1.18.12-gke.1210
  • 节点数 - 2
  • 节点配置 - 2 核 8 GB 内存机器和 30 GB 硬盘
  • AutoScale 已启用

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 个用户能够成功启动工作区,对于剩余的用户在挂载卷中出现超时错误,一些用户继续加载工作区并且日志窗口中没有初始化任何内容。

错误截图:

  • 用户 1 出错:

无法运行工作区:“发生不可恢复的事件:'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]: 等待条件超时', 'workspacep72ony0ucs0pqa5c.maven-d5476444f-6tcgg'"

  • 用户 2 出错:

运行工作区失败:“等待Kubernetes环境'default'工作区'workspaceo6i4zoqzs1xym88w'达到超时”

【问题讨论】:

标签: docker kubernetes google-kubernetes-engine eclipse-che


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    引用文档:

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

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

    默认情况下,当您使用GKE 创建PVC 时,您实际上是在创建一个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
    

    其他资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      相关资源
      最近更新 更多