4.5. 在全局配置工作区


本节描述了管理员如何全局配置工作区。

4.5.1. 限制用户可以保留的工作区数

默认情况下,用户可以在仪表板中保留无限数量的工作区,但您可以限制这个数量来减少对集群的需求。

此配置是 CheCluster 自定义资源的一部分:

spec:
  devEnvironments:
    maxNumberOfWorkspacesPerUser: <kept_workspaces_limit>
1
Copy to Clipboard Toggle word wrap
1
设置每个用户的最大工作区数。默认值为 -1,允许用户保留无限数量的工作区。使用正整数来设置每个用户的最大工作区数。

流程

  1. 获取 OpenShift Dev Spaces 命名空间的名称。默认为 openshift-devspaces

    $ oc get checluster --all-namespaces \
      -o=jsonpath="{.items[*].metadata.namespace}"
    Copy to Clipboard Toggle word wrap
  2. 配置 maxNumberOfWorkspacesPerUser:

    $ oc patch checluster/devspaces -n openshift-devspaces \
    1
    
    --type='merge' -p \
    '{"spec":{"devEnvironments":{"maxNumberOfWorkspacesPerUser": <kept_workspaces_limit>}}}'
    2
    Copy to Clipboard Toggle word wrap
    1
    您在第 1 步中获取的 OpenShift Dev Spaces 命名空间。
    2
    您选择 < kept_workspaces_limit> 值。

4.5.2. 限制所有用户可以同时运行的工作区数

默认情况下,所有用户都可以运行无限数量的工作区。您可以限制所有用户可以同时运行的工作区数量。此配置是 CheCluster 自定义资源的一部分:

spec:
  devEnvironments:
    maxNumberOfRunningWorkspacesPerCluster: <running_workspaces_limit>
1
Copy to Clipboard Toggle word wrap
1
在整个 Kubernetes 集群中同时运行的最大工作区数。这适用于系统中的所有用户。如果值设为 -1,这表示运行工作区的数量没有限制。

步骤

  1. 配置 maxNumberOfRunningWorkspacesPerCluster:

    oc patch checluster/devspaces -n openshift-devspaces \
    --type='merge' -p \
    '{"spec":{"devEnvironments":{"maxNumberOfRunningWorkspacesPerCluster": <running_workspaces_limit>}}}'
    1
    Copy to Clipboard Toggle word wrap
    1
    您选择的 < running_workspaces_limit> 值。

4.5.3. 允许用户同时运行多个工作区

默认情况下,用户可以一次只运行一个工作区。您可以让用户同时运行多个工作区。

注意

如果使用默认存储方法,如果用户在多节点集群中的节点间分布 pod,则并发运行工作区时可能会遇到问题。从每个用户 通用 存储策略切换到 per-workspace 存储策略,或 使用临时存储 类型可能会避免或解决这些问题。

此配置是 CheCluster 自定义资源的一部分:

spec:
  devEnvironments:
    maxNumberOfRunningWorkspacesPerUser: <running_workspaces_limit>
1
Copy to Clipboard Toggle word wrap
1
设置每个用户同时运行工作区的最大数量。通过 -1 值,用户可以运行无限数量的工作区。默认值为 1

流程

  1. 获取 OpenShift Dev Spaces 命名空间的名称。默认为 openshift-devspaces

    $ oc get checluster --all-namespaces \
      -o=jsonpath="{.items[*].metadata.namespace}"
    Copy to Clipboard Toggle word wrap
  2. 配置 maxNumberOfRunningWorkspacesPerUser:

    $ oc patch checluster/devspaces -n openshift-devspaces \
    1
    
    --type='merge' -p \
    '{"spec":{"devEnvironments":{"maxNumberOfRunningWorkspacesPerUser": <running_workspaces_limit>}}}'
    2
    Copy to Clipboard Toggle word wrap
    1
    您在第 1 步中获取的 OpenShift Dev Spaces 命名空间。
    2
    您选择的 < running_workspaces_limit> 值。

4.5.4. 带有自签名证书的 Git

您可以配置 OpenShift Dev Spaces,以支持使用自签名证书的 Git 供应商上的操作。

先决条件

  • 具有 OpenShift 集群管理权限的活跃的 oc 会话。请参阅 OpenShift CLI 入门
  • Git 版本 2 或更高版本

流程

  1. 创建一个新的 ConfigMap,其中包含 Git 服务器的详情:

    $ oc create configmap che-git-self-signed-cert \
      --from-file=ca.crt=<path_to_certificate> \  
    1
    
      --from-literal=githost=<git_server_url> -n openshift-devspaces  
    2
    Copy to Clipboard Toggle word wrap
    1
    自签名证书的路径。
    2
    指定 Git 服务器 URL 的可选参数,如 https://git.example.com:8443。如果省略时,自签名证书用于通过 HTTPS 用于所有存储库。
    注意
    • 证书文件通常存储为 Base64 ASCII 文件,例如:.pem,.crt,.ca-bundle.保存证书文件的所有 ConfigMap 都应使用 Base64 ASCII 证书而不是二进制数据证书。
    • 需要信任证书链。如果 ca.crt 由证书颁发机构(CA)签名,则必须将 CA 证书包含在 ca.crt 文件中。
  2. 在 ConfigMap 中添加所需的标签:

    $ oc label configmap che-git-self-signed-cert \
      app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspaces
    Copy to Clipboard Toggle word wrap
  3. 配置 OpenShift Dev Spaces 操作对象,将自签名证书用于 Git 存储库。请参阅 第 4.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”

    spec:
      devEnvironments:
        trustedCerts:
          gitTrustedCertsConfigMapName: che-git-self-signed-cert
    Copy to Clipboard Toggle word wrap

验证步骤

  • 创建并启动新的工作区。工作区使用的每个容器都会挂载一个特殊卷,其中包含带有自签名证书的文件。容器的 /etc/gitconfig 文件包含有关 Git 服务器主机(its URL)的信息,以及 http 部分中证书的路径(请参阅 Git 文档有关 git-config)。

    例 4.20. /etc/gitconfig 文件的内容

    [http "https://10.33.177.118:3000"]
    sslCAInfo = /etc/config/che-git-tls-creds/certificate
    Copy to Clipboard Toggle word wrap

4.5.5. 配置工作区 nodeSelector

本节论述了如何为 OpenShift Dev Spaces 工作区的 Pod 配置 nodeSelector

步骤

  1. 使用 NodeSelector

    OpenShift Dev Spaces 使用 CheCluster 自定义资源来配置 nodeSelector

    spec:
      devEnvironments:
        nodeSelector:
          key: value
    Copy to Clipboard Toggle word wrap

    本节必须包含 每个节点标签 的一组 key=value 对,以组成 nodeSelector 规则。

  2. 使用 Taints 和 Tolerations

    这的工作方式与 nodeSelector 相反。您可以指定 Pod 无法调度到哪些节点上,而不指定将 Pod 调度到哪些节点上。如需更多信息,请参阅 :https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration。

    OpenShift Dev Spaces 使用 CheCluster 自定义资源来配置 容限

    spec:
      devEnvironments:
        tolerations:
          - effect: NoSchedule
            key: key
            value: value
            operator: Equal
    Copy to Clipboard Toggle word wrap
重要

必须在 OpenShift Dev Spaces 安装过程中配置 nodeSelector。这可防止现有工作区因为现有工作区 PVC 和 Pod 被调度到不同区中造成的卷关联性冲突而运行失败。

为了避免在大型多区集群上的不同区中调度 Pod 和 PVC,请创建一个额外的 StorageClass 对象(请注意 allowedTopologies 字段),它将协调 PVC 创建过程。

通过 CheCluster 自定义资源将这个新创建的 StorageClass 的名称传递给 OpenShift Dev Spaces。如需更多信息,请参阅:第 4.9.1 节 “配置存储类”

4.5.6. 为云环境配置允许的 URL

允许 URL 在保护云环境(CDE)启动方面扮演重要角色,确保它们只能从授权来源启动。通过使用通配符支持,如 *,组织可以实施灵活的 URL 模式,允许跨域中的不同路径启动动态和安全 CDE。

  1. 配置允许的源:

    oc patch checluster/devspaces \
        --namespace openshift-devspaces \
        --type='merge' \
        -p \
    '{
       "spec": {
         "devEnvironments": {
           "allowedSources": {
             "urls": ["url_1", "url_2"] 
    1
    
           }
         }
       }
     }'
    Copy to Clipboard Toggle word wrap
    1
    用于启动云环境(CDE)的批准 URL 数组。CDE 只能从这些 URL 启动。URL 中支持通配符 *。例如: https://example.com/* 允许从 example.com 中的任何路径启动 CDE。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat