3.4. 全局配置工作区


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

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

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

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

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

流程

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

    $ oc get checluster --all-namespaces \
      -o=jsonpath="{.items[*].metadata.namespace}"
  2. 配置 maxNumberOfWorkspacesPerUser

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

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

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

注意

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

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

spec:
  devEnvironments:
    maxNumberOfRunningWorkspacesPerUser: <running_workspaces_limit>1
1
设置每个用户同时运行工作区的最大数量。-1 值允许用户运行无限数量的工作区。默认值为 1

流程

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

    $ oc get checluster --all-namespaces \
      -o=jsonpath="{.items[*].metadata.namespace}"
  2. 配置 maxNumberOfRunningWorkspacesPerUser

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

3.4.3. 带有自签名证书的 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=<host:port> -n openshift-devspaces  2
    1
    自签名证书的路径。
    2
    在 Git 服务器上指定 HTTPS 连接的 https:// 主机和端口的可选参数。在省略时,通过 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
  3. 配置 OpenShift Dev Spaces 操作对象,以将自签名证书用于 Git 存储库。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”

    spec:
      devEnvironments:
        trustedCerts:
          gitTrustedCertsConfigMapName: che-git-self-signed-cert

验证步骤

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

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

    [http "https://10.33.177.118:3000"]
    sslCAInfo = /etc/config/che-git-tls-creds/certificate

3.4.4. 配置工作区 nodeSelector

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

流程

OpenShift Dev Spaces 使用 CHE_WORKSPACE_POD_NODE__SELECTOR 环境变量来配置 nodeSelector。此变量可以包含一组以逗号分隔的 key=value 对,以组成 nodeSelector 规则,或 NULL 来禁用它。

CHE_WORKSPACE_POD_NODE__SELECTOR=disktype=ssd,cpu=xlarge,[key=value]
重要

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

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

通过 CHE_INFRA_KUBERNETES_PVC_STORAGE__CLASS__NAME 环境变量将这个新创建的 StorageClass 的名称传递给 OpenShift Dev Spaces。此变量的默认空值指示 OpenShift Dev Spaces 使用集群的默认 StorageClass

3.4.5. 打开 VSX registry URL

要搜索和安装扩展,Visual Studio Code 编辑器使用嵌入的 Open VSX registry 实例。您还可以将 OpenShift Dev Spaces 配置为使用另一个 Open VSX registry 实例,而不是嵌入的 registry 实例。

流程

  • 在 CheCluster 自定义资源 spec.components.pluginRegistry.openVSXURL 字段中设置 Open VSX registry 实例的 URL。

    spec:
       components:
    # [...]
         pluginRegistry:
           openVSXURL: <your_open_vsx_registy>
    # [...]
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.