1.3. 管理应用程序资源
通过控制台,您可以使用 Git 仓库、Helm 仓库和对象存储库创建应用程序。
重要: Git 频道可以与所有其他频道类型共享命名空间: Helm、对象存储和其他 Git 命名空间。
请参阅以下主题以开始管理应用程序:
1.3.1. 使用 Git 存储库管理应用程序
当您使用应用程序部署 Kubernetes 资源时,这些资源位于特定的存储库中。了解如何在以下流程中从 Git 存储库部署资源。如需了解更多有关应用程序模型的信息,请参阅应用程序模型和定义:
用户需要访问权限: 可以创建应用程序的用户角色。您只能执行分配了相关角色的操作。如需更多关于访问要求的信息,请参阅基于角色的访问控制文档。
- 在控制台导航菜单中点 Manage application。
点 Create application。
对于以下步骤,选择 YAML: On 在创建应用程序时在控制台中查看 YAML。请参阅后面的 YAML 示例。
在正确的字段中输入以下值:
- Name:输入应用程序的有效 Kubernetes 名称。
- Namespace:从列表中选择一个命名空间。如果分配了正确的访问角色,您还可以使用有效的 Kubernetes 名称创建命名空间。
- 从可以使用的存储库列表中选择 Git。
输入所需的 URL 路径或选择现有路径。
如果选择了现有的 Git 存储库路径,则不需要指定连接信息(如果这是私有存储库)。连接信息是预先设置的,您不需要查看这些值。
如果输入了新的 Git 存储库路径,则可以选择性地输入 Git 连接信息(如果这是一个私有 Git 存储库)。
- 输入可选字段的值,如分支、路径和提交散列(commit hash)。Optional 字段在字段或鼠标文本中定义。
请注意协调选项。
merge
选项是默认选择,这代表要添加新字段,并在资源中更新现有字段。您可以选择replace
。使用replace
选项,现有资源被替换为 Git 源。-
当订阅协调率被设置为
low
时,订阅的应用程序资源最多可能需要一小时才能完成协调。在单个应用程序视图的卡上,单击 Sync 以手动协调。如果设为off
,则永远不会协调。
-
当订阅协调率被设置为
设置任何可选的部署前和部署后的任务。
如果您有要在订阅部署应用程序资源之前或之后运行的 Ansible Tower 作业,则设置 Ansible Tower secret。定义 Ansible 作业的 Ansible Tower 任务必须放置在此存储库的
prehook
和posthook
文件夹中。在控制台的 Credential 部分中,单击下拉菜单以选择 Ansible 凭据。如果需要添加凭证,请参阅管理凭证概述。
在 Select clusters to deploy 中,您可以更新应用程序的放置规则信息。从中选择:
- 在本地集群中部署
- 部署到所有在线集群和本地集群
- 仅在与指定标签匹配的集群上部署应用程序资源
- 如果在现有的、并已定义了放置规则的命名空间中创建应用程序,则可以选择 Select existing placement configuration 选项。
- 在 Settings 中,您可以指定应用程序的行为。要在指定时间窗内阻止或激活对部署的更改,为 Deployment window 和您的 Time window configuration 选择一个选项。
- 您可以选择另一个存储库或点 Save。
- 您会被重定向到 Overiew 页,可以在其中查看详情和拓扑。
1.3.1.1. GitOps pattern
了解规划 Git 存储库以管理集群的最佳实践。
1.3.1.1.1. GitOps 示例
本例中的文件夹已定义并命名,每个文件夹包含在受管集群中运行的应用程序或配置:
-
根文件夹
managed-subscriptions
:包含以common-managed
文件夹为目标的 订阅。 -
子文件夹
apps/
:用来订阅common-managed
文件夹中的应用程序,并将放置到managed-clusters
。 -
子文件夹
config/
:用于订阅common-managed
文件夹中的配置,并将放置到managed-clusters
。 -
子文件夹
policies/
:用于将放置策略应用到managed-clusters
。 -
文件夹
root-subscription/
:订阅managed-subscriptions
文件夹的 hub 集群的初始订阅。
请查看目录示例:
common-managed/ apps/ app-name-0/ app-name-1/ config/ config001/ config002/ managed-subscriptions apps/ config/ policies/ root-subscription/
1.3.1.1.2. GitOps 流
为以下订阅流创建的目录结构:root-subscription
> managed-subscriptions
> common-managed
。
-
root-subscription/
中的单个订阅从 CLI 终端应用到 hub 集群。 订阅和策略会从
managed-subscription
文件夹下载并应用到 hub 集群。-
然后,
managed-subscription
文件夹中的订阅和策略根据放置在受管集群上执行工作。 -
放置(Placement)决定每个订阅或策略会影响哪个
managed-cluster
。 - 订阅或策略定义了与放置匹配的集群中的内容。
-
然后,
-
订阅将
common-managed
文件夹中的内容应用到与放置规则匹配的managed-clusters
。这也适用于所有与放置规则匹配的managed-clusters
。
1.3.1.1.3. 更多示例
-
有关
root-subscription/
示例,请参阅 application-subscribe-all。 - 有关指向同一仓库中其他文件夹的订阅示例,请参阅 subscribe-all。
-
请参阅 nginx-apps 存储库中带有应用程序工件的
common-managed
文件夹的示例。 - 请参阅策略 集合中的策略示例。