部署模型
部署模型可帮助您了解跨集群的应用程序部署过程。
基于推送的部署
基于推送的部署模型将应用程序部署在单个集群上。 部署管道会连接到集群,并应用部署文件。 该模型无需在您的集群上安装任何操作员或代理。
您可以使用任何能够从部署管道中运行并针对目标集群执行操作的部署工具,例如:
- 使用 kubectl (或 Red Hat OpenShift on IBM Cloud 上的
oc)来应用 Kubernetes 中的清单。 - Helm 安装或升级图表版本。 该图表可以像其他任何部署资产一样,存储在库存存储库中。
部署脚本是部署存储库的一部分,您可以根据应用程序和集群的要求对其进行自定义。 DevSecOps 提供了被称为 “commons 库”的辅助脚本,涵盖了部署操作。
基于拉取的部署
基于拉取的部署模型适用于多集群应用程序部署。 此模型使用 IBM Cloud Satellite 配置作为跨多个集群部署的部署工具。 有关更多信息,请参阅 了解 Satellite 配置。
部署管道并未连接到每个集群。 相反,它会将部署文件发布到 Satellite Config,然后由在每个集群上运行的代理程序将其检索下来。 接收相同部署的集群会被归入一个 Satellite 集群组中。
Satellite 该配置会部署 Kubernetes 资源定义。 如果您的应用程序打包为 Helm 图表或 Kustomize 覆盖层,请先将其渲染为 Kubernetes 清单(例如使用 helm template 或 kustomize build ),然后将渲染后的清单作为配置版本上传。
对于基于拉取的部署,请完成以下步骤:
- 为部署文件创建或更新所需的 Satellite 配置及其版本。
- 使用 Satellite 配置以及需要部署的版本,创建或更新 Satellite 配置订阅。
- 订阅更新后,安装在集群上的 Razee 代理会从 Satellite Config 获取最新的部署,并将其部署到各个集群中。
选择部署模式
| 对价 | 基于推送的部署 | 基于拉取的部署 |
|---|---|---|
| 目标 | 单个集群 | 一组簇 |
| 部署工具 | kubectl, oc, Helm, Kustomize,或任何可在管道中运行的工具 |
Satellite 配置 |
| 集群中的组件 | 无 | Satellite 配置代理 |
| 集群访问 | 该管道需要集群的凭据 | 集群上的代理会检索该部署,而管道只需访问 Satellite Config |
| Helm 图 | 直接通过以下方式安装或升级:Helm | 在上传前已转换为清单 |
有关选择部署目标的更多信息,请参阅“在目标上部署应用程序”。