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 在多节点集群中的节点间分布,用户可能会在同时运行工作区时遇到问题。从每个用户的 通用 存储策略切换到 每个工作区 存储策略,或 使用临时存储 类型来避免或解决这些问题。

此配置是 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 供应商的操作。

先决条件

流程

  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 连接的主机和端口(可选)。
    注意
    • 如果没有指定 githost,则给定证书将用于所有 HTTPS 存储库。
    • 证书文件通常存储为 Base64 ASCII 文件,例如:.pem, .crt, .ca-bundle.此外,它们也可以编码为二进制数据,例如 .cer。保存证书文件的所有 Secret 都应该使用 Base64 ASCII 证书,而不是二进制数据证书。
  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 服务器主机(it 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.