17.4. 创建部署集合


在创建集合时,您必须命名它并为集合定义规则。

流程

  1. 在 Collections 页面中,点 Create collection
  2. 输入集合的名称和描述。
  3. Collection rules 部分中,必须至少执行以下操作之一:

    • 定义集合的规则:如需更多信息,请参阅"创建集合规则"部分。
    • 将现有集合附加到集合:如需更多信息,请参阅"添加附加集合"部分。
  4. 在您的规则配置或选择附加集合的结果包括在 Collection 结果 实时预览面板中。单击 Hide 结果,将此面板从显示中删除。
  5. Save

17.4.1. 创建集合规则

在创建集合时,必须至少配置一个规则,或将另一个集合附加到您要创建的新集合中。

注意

目前,集合仅适用于部署。

配置规则以选择要包含在集合中的资源。在配置时,使用 preview 面板查看集合规则的结果。您可以按任何顺序配置规则。

流程

  1. Deployments 部分中,从下拉列表中选择以下选项之一:

    • 无部署指定 :如果您不想在搜索中使用部署条件,请选择这个选项。
    • 名称与名称匹配的部署 :选择这个选项以按名称选择,然后选择以下选项之一:

      • 确切的值 :输入部署的确切名称。
      • 正则表达式值 :您可以使用正则表达式来搜索部署。如果您不知道部署的确切名称,此选项很有用。正则表达式是定义特征的字母、数字和符号的字符串。RHACS 使用此模式匹配字符或一组字符和返回结果。对于正则表达式,RE2 语法 受支持。不支持 Perl 语法。要选择 所有部署,请选择这个选项并输入 198.51.100.0/24。如需更多信息和示例,请参阅"使用正则表达式"。
    • 具有与标签完全匹配 的部署:选择这个选项来选择与您输入的确切文本匹配的标签的部署。标签必须是有效的 Kubernetes 标签,格式为 key=value
  2. 可选: 要添加更多部署,其名称或标签与包含的额外条件匹配,请点 OR,并配置另一个准确或正则表达式值。

17.4.1.1. 使用正则表达式

RHACS 在门户的一些区域中使用正则表达式,包括在将集合配置为包含或排除部署时。

例如,在配置集合时,您可以使用正则表达式来搜索部署。如果您不知道部署的确切名称,此选项很有用。正则表达式是定义特征的字母、数字和符号的字符串。RHACS 使用此模式匹配字符或一组字符和返回结果。对于正则表达式,请注意以下准则:

  • 支持 RE2 语法
  • 不支持 Perl 语法。
  • 测试您的正则表达式语法很有用,例如,使用 https://regex101.com/ 等站点。选择 Golang 作为类别。
注意

以下示例假定命名约定如下,其中 production 集群在名称中包含 prod 一词。

创建生产集群的集合的正则表达式示例

  1. 集合规则 中,选择名称与匹配的集群
  2. 从下拉列表中选择 A regex value 并输入以下文本:

    ^prod.*
    Copy to Clipboard Toggle word wrap

创建非生产集群的集合的正则表达式示例

使用 RE2 语法时,您无法使用负的 lookahead 匹配,这意味着如果某一元素 不存在,您无法直接匹配正则表达式。作为临时解决方案,当集群名称中没有出现 prod 一词时,您可以使用正则表达式匹配;也就是说,如果字母 prod 和 d 不匹配。

  1. 集合规则 中,选择名称与匹配的集群
  2. 从下拉列表中选择 A regex value 并输入以下文本:

    ^[^p]*(p([^r]|$|r([^o]|$|o([^d]|$))))*[^p]*$
    Copy to Clipboard Toggle word wrap

正则表达式示例,创建与集群、命名空间和部署层次结构中的所有实体匹配的集合

  1. 集合规则 中,选择与名称匹配的 Deployment。

    1. 从下拉列表中,选择 A regex 的值并输入 ://[
  2. 选择 名称与名称匹配的 命名空间。

    1. 从下拉列表中,选择 A regex 的值并输入 ://[
  3. 选择 名称与名称匹配的 集群。

    1. 从下拉列表中,选择 A regex 的值并输入 ://[

正则表达式示例,创建包含命名部署、数据库和特定标签的集合

以下示例提供了为医疗应用配置集合的步骤。在本例中,您希望集合包含 报告 部署、名为 patient-db 的数据库,并且您想要选择带有标签的命名空间,其中 key = kubernetes.io/metadata.namevalue = medical。在本例中,执行以下步骤:

  1. 集合规则 中,选择与名称匹配的 Deployment。
  2. 单击 的 An exact 值 并输入 报告
  3. 单击 OR
  4. A regex value of,并输入 React -db,以选择名称以 db 结尾的所有部署。regex value 选项使用正则表达式进行模式匹配。对于正则表达式,RE2 语法 受支持。不支持 Perl 语法。右侧的面板可能会显示您不想包含的数据库。您可以使用额外的过滤器排除这些数据库。例如:

    1. Namespaces with labels matching exactly 并输入 kubernetes.io/metadata.name=medical 来只包括被标记为 medical 命名空间中的部署来根据命名空间进行过滤。
    2. 如果您知道命名空间的名称,点 Namespaces with name matching name 并输入名称。

17.4.2. 添加附加的集合

如果要基于部署创建小集合,则对集合进行分组并将其添加到其他集合中很有用。您可以重复使用这些较小的集合并将其组合成更大的分层集合。在您要创建的集合中添加额外的集合:

  1. 执行以下操作之一:

    • Filter by name 字段中输入文本,然后按 查看匹配的结果。
    • Available collections 列表中的集合名称,以查看有关集合的信息,如集合的名称和规则,以及与该集合匹配的部署。
  2. 查看集合信息后,关闭窗口以返回到 附加集合 页面。
  3. 单击 +AttachAttached collections 部分列出了您附加的集合。

    注意

    添加附加的集合时,附加的集合会根据配置的选择规则包含结果。例如,如果附加的集合包含根据父集合中使用的规则过滤的资源,则这些项目仍然会添加到父集合中,因为附加的集合中的规则仍会添加到父集合中。附加的集合使用 OR 运算符扩展原始集合。

  4. Save
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat