22.9. 带有 SiteConfig 资源的高级受管集群配置
您可以使用 SiteConfig 自定义资源 (CR) 在安装时在受管集群中部署自定义功能和配置。
22.9.1. 在 GitOps ZTP 管道中自定义额外的安装清单 复制链接链接已复制到粘贴板!
您可以定义一组额外的清单,以包含在 GitOps Zero Touch Provisioning (ZTP) 管道的安装阶段。这些清单链接到 siteConfig 自定义资源(CR),并在安装过程中应用到集群。在安装时包括 MachineConfig CR 可提高安装过程的效率。
先决条件
- 创建一个 Git 存储库,在其中管理自定义站点配置数据。该存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源仓库。
流程
- 创建 GitOps ZTP 管道用于自定义集群安装的一组额外清单 CR。
在自定义
/siteconfig目录中,为您的额外清单创建一个子目录/custom-manifest。以下示例演示了一个带有/custom-manifest文件夹的/siteconfig示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意整个使用的子目录名称
/custom-manifest和/extra-manifest只是示例名称。不需要使用这些名称,并且对如何命名这些子目录没有限制。在本例中,/extra-manifest是指从ztp-site-generate容器存储/extra-manifest的内容的 Git 子目录。-
将自定义额外清单 CR 添加到
siteconfig/custom-manifest目录中。 在
SiteConfigCR 中,在extraManifests.searchPaths字段中输入目录名称,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
SiteConfig、/extra-manifest和/custom-manifestCR,并将它们推送到站点配置存储库。
在集群置备过程中,GitOps ZTP 管道会将 /custom-manifest 目录中的 CR 附加到存储在 extra-manifest/ 中的默认额外清单集合中。
从版本 4.14 extraManifestPath 开始,会受弃用警告。
虽然 extraManifestPath 仍然被支持,但我们建议您使用 extraManifests.searchPaths。如果您在 SiteConfig 文件中定义 extraManifests.searchPaths,GitOps ZTP 管道不会在站点安装过程中从 ztp-site-generate 容器获取清单。
如果您在 Siteconfig CR 中定义 extraManifestPath 和 extraManifests.searchPaths,则为 extraManifests.searchPaths 定义的设置具有优先权。
强烈建议您从 ztp-site-generate 容器中提取 /extra-manifest 的内容,并将它推送到 GIT 存储库。
22.9.2. 使用 siteConfig 过滤器过滤自定义资源 复制链接链接已复制到粘贴板!
通过使用过滤器,您可以轻松地自定义 SiteConfig 自定义资源 (CR),使其包含或排除其他 CR,以便在 GitOps Zero Touch Provisioning (ZTP) 管道的安装阶段使用。
您可以为 SiteConfig CR 指定一个 inclusionDefault 值(include 或 exclude),以及您要包含或排除的特定 extraManifest RAN CR 列表。将 inclusionDefault 设置为 include 可使 GitOps ZTP 管道在安装过程中应用 /source-crs/extra-manifest 中的所有文件。将 includeDefault 设置为 exclude 的作用相反。
您可以从 /source-crs/extra-manifest 文件夹中排除默认会被包括的 CR。以下示例配置了自定义单节点 OpenShift SiteConfig CR,以在安装时排除 /source-crs/extra-manifest/03-sctp-machine-config-worker.yaml CR。
另外还介绍了一些额外的可选过滤场景。
先决条件
- 配置了 hub 集群来生成所需的安装和策略 CR。
- 您创建了 Git 存储库,用于管理自定义站点配置数据。该存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源仓库。
流程
要防止 GitOps ZTP 管道应用
03-sctp-machine-config-worker.yamlCR 文件,请在SiteConfigCR 中应用以下 YAML:Copy to Clipboard Copied! Toggle word wrap Toggle overflow GitOps ZTP 管道在安装过程中跳过
03-sctp-machine-config-worker.yamlCR。应用/source-crs/extra-manifest中的所有其他 CR。保存
SiteConfigCR,并将更改推送到站点配置存储库。GitOps ZTP 管道监控并调整根据
SiteConfig过滤器指令所应用的 CR。可选: 要防止 GitOps ZTP 管道在集群中应用所有
/source-crs/extra-manifestCR,请在SiteConfigCR 中应用以下 YAML:- clusterName: "site1-sno-du" extraManifests: filter: inclusionDefault: exclude- clusterName: "site1-sno-du" extraManifests: filter: inclusionDefault: excludeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要排除所有
/source-crs/extra-manifestRAN CR,并在安装过程中包括自定义 CR 文件,编辑自定义SiteConfigCR 来设置自定义清单文件夹和include文件,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下示例演示了自定义文件夹结构:
siteconfig ├── site1-sno-du.yaml └── user-custom-manifest └── custom-sctp-machine-config-worker.yamlsiteconfig ├── site1-sno-du.yaml └── user-custom-manifest └── custom-sctp-machine-config-worker.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
22.9.3. 使用 SiteConfig CR 删除节点 复制链接链接已复制到粘贴板!
通过使用 SiteConfig 自定义资源(CR),您可以删除并重新创建节点。这个方法比手动删除节点更高效。
先决条件
- 您已将 hub 集群配置为生成所需的安装和策略 CR。
- 您已创建了 Git 存储库,您可以在其中管理自定义站点配置数据。存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源存储库。
流程
更新
SiteConfigCR,使其包含bmac.agent-install.openshift.io/remove-agent-and-node-on-delete=true注解,并将更改推送到 Git 存储库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证
BareMetalHost对象是否已注解:oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
true
trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过更新
SiteConfigCR 使其包含crSuppression.BareMetalHost注解来抑制BareMetalHost CR的生成:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将更改推送到 Git 存储库并等待取消置备启动。
BareMetalHostCR 的状态应更改为deprovisioning。等待BareMetalHost完成取消置备,并完全删除。
验证
运行以下命令,验证 worker 节点的
BareMetalHost和AgentCR 已从 hub 集群中删除:oc get bmh -n <cluster-ns>
$ oc get bmh -n <cluster-ns>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get agent -n <cluster-ns>
$ oc get agent -n <cluster-ns>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证节点记录是否已从 spoke 集群中删除:
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果使用 secret,删除 secret 太早可能会导致问题,因为 ArgoCD 需要 secret 在删除后完成重新同步。只有在当前 ArgoCD 同步完成后,仅在节点清理后删除 secret。
后续步骤
要重新置备节点,请删除之前添加到 SiteConfig 中的更改,将更改推送到 Git 存储库,并等待同步完成。这会重新生成 worker 节点的 BareMetalHost CR,并触发重新安装节点。