1.4. 管理应用程序资源
通过控制台,您可以使用 Git 仓库、Helm 仓库和对象存储库创建应用程序。
重要: Git 频道可以与所有其他频道类型共享命名空间: Helm、对象存储和其他 Git 命名空间。
请参阅以下主题以开始管理应用程序:
1.4.1. 使用 Git 存储库管理应用程序
当您使用应用程序部署 Kubernetes 资源时,这些资源位于特定的存储库中。了解如何在以下流程中从 Git 存储库部署资源。如需了解更多有关应用程序模型的信息,请参阅应用程序模型和定义。
用户需要访问权限: 可以创建应用程序的用户角色。您只能执行分配了相关角色的操作。了解 基于角色的访问控制文档中的访问要求。
- 在控制台导航菜单中点 Applications 来查看列出的应用程序并创建新应用。
- 可选: 在选择要创建的应用程序类型后,您可以选择 YAML: On 在控制台上按照创建和编辑应用程序查看 YAML。请参阅后面的 YAML 示例。
- 从可以使用的存储库列表中选择 Git,并在正确的字段中输入值。按照控制台中的指南,根据您的输入查看 YAML 编辑器更改值。 - 备注: - 如果选择了现有的 Git 存储库路径,则不需要指定连接信息(如果这是私有存储库)。连接信息是预先设置的,您不需要查看这些值。
- 如果输入了新的 Git 存储库路径,则可以选择性地输入 Git 连接信息(如果这是一个私有 Git 存储库)。
- 
									请注意协调选项。merge选项是默认选择,这代表要添加新字段,并在资源中更新现有字段。您可以选择replace。使用replace选项,现有资源被替换为 Git 源。当订阅协调率被设置为low时,订阅的应用程序资源最多可能需要一小时才能完成协调。在单个应用程序视图的卡上,单击 Sync 以手动协调。如果设为off,则永远不会协调。
 
- 
							设置任何可选的部署前和部署后的任务。如果您有要在订阅部署应用程序资源之前或之后运行的 Ansible Tower 作业,则设置 Ansible Tower secret。定义 Ansible 作业的 Ansible Tower 任务必须放置在此存储库的 prehook和posthook文件夹中。
- 如果需要使用控制台添加凭证,可以点 Add credential。按照控制台中的指示进行操作。请参阅管理凭证概述。
- 点 Create。
- 您会被重定向到 Overiew 页,可以在其中查看详情和拓扑。
1.4.1.1. GitOps pattern
了解规划 Git 存储库以管理集群的最佳实践。
1.4.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 集群的初始订阅。
请查看目录示例:
1.4.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.4.1.1.3. 更多示例
- 
									有关 root-subscription/的示例,请参阅 application-subscribe-all。
- 有关指向同一仓库中其他文件夹的订阅示例,请参阅 subscribe-all。
- 
									请参阅 nginx-apps 存储库中带有应用程序工件的 common-managed文件夹示例。
- 请参阅策略集合中的策略示例。
1.4.2. 使用 Helm 仓库管理应用程序
当您使用应用程序部署 Kubernetes 资源时,这些资源位于特定的存储库中。了解如何在以下流程中从 Helm 仓库部署资源。如需了解更多有关应用程序模型的信息,请参阅应用程序模型和定义。
用户需要访问权限: 可以创建应用程序的用户角色。您只能执行分配了相关角色的操作。了解 基于角色的访问控制文档中的访问要求。
- 在控制台导航菜单中点 Applications 来查看列出的应用程序并创建新应用。
- 可选: 在选择要创建的应用程序类型后,您可以选择 YAML: On 在控制台上按照创建和编辑应用程序查看 YAML。请参阅后面的 YAML 示例。
- 从可以使用的存储库列表中选择 Helm,并在正确的字段中输入值。按照控制台中的指南,根据您的输入查看 YAML 编辑器更改值。
- 点 Create。
- 您会被重定向到 Overiew 页,可以在其中查看详情和拓扑。
1.4.2.1. YAML 示例
以下示例频道定义将 Helm 仓库抽象为频道:
						注: 对于 Helm,Helm chart 中包含的所有 Kubernetes 资源都必须具有标签发行版本。{{ .Release.Name }}` 用于正确显示应用程序拓扑。
					
以下频道定义显示了 Helm 仓库频道的另一个示例:
注: 要查看 REST API,使用 API。
1.4.3. 使用对象存储存储库管理应用程序
当您使用应用程序部署 Kubernetes 资源时,这些资源位于特定的存储库中。如需了解更多有关应用程序模型的信息,请参阅应用程序模型和定义:
用户需要访问权限: 可以创建应用程序的用户角色。您只能执行分配了相关角色的操作。了解 基于角色的访问控制文档中的访问要求。
- 在控制台导航菜单中点 Applications 来查看列出的应用程序并创建新应用。
- 可选: 在选择要创建的应用程序类型后,您可以选择 YAML: On 在控制台上按照创建和编辑应用程序查看 YAML。请参阅后面的 YAML 示例。
- 从可以使用的存储库列表中选择 Object store,并在正确的字段中输入值。按照控制台中的指南,根据您的输入查看 YAML 编辑器更改值。
- 点 Create。
- 您会被重定向到 Overiew 页,可以在其中查看详情和拓扑。
1.4.3.1. YAML 示例
以下示例频道定义将对象存储抽象为频道:
注: 要查看 REST API,使用 API。
1.4.3.2. 创建 Amazon Web Services (AWS) S3 对象存储存储桶
您可以设置订阅来订阅在 Amazon Simple Storage Service (Amazon S3) 对象存储服务中定义的资源。请参见以下步骤:
- 使用您的 AWS 帐户、用户名和密码登录到 AWS 控制台。
- 进入 Amazon S3 > Buckets 到存储桶主页。
- 点击 Create Bucket 创建存储桶。
- 选择 AWS region,这对连接 AWS S3 对象存储桶至关重要。
- 创建存储桶访问令牌。
- 导航到导航栏中的用户名,然后从下拉菜单中选择 My Security Credentials。
- 进入 AWS IAM credentials 标签页中的 Access keys for CLI, SDK, & API access,点 Create access key。
- 保存您的 Access key ID、Secret access key。
- 将对象 YAML 文件上传到存储桶。
1.4.3.3. 订阅 AWS 存储桶中的对象
- 创建一个带有 secret 的对象存储桶类型频道,以指定用于连接 AWS bucket 的 AccessKeyID、SecretAccessKey 和 Region。创建 AWS 存储桶时会创建这三个字段。
- 添加 URL。如果 URL 包含 - s3://或- s3 and aws关键字,则 URL 用来标识 AWS S3 存储桶中的频道。例如,请查看以下所有存储桶 URL 都有 AWS s3 存储桶标识符:- https://s3.console.aws.amazon.com/s3/buckets/sample-bucket-1 s3://sample-bucket-1/ https://sample-bucket-1.s3.amazonaws.com/ - https://s3.console.aws.amazon.com/s3/buckets/sample-bucket-1 s3://sample-bucket-1/ https://sample-bucket-1.s3.amazonaws.com/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 注: 不需要 AWS S3 对象存储桶 URL 来将存储桶与 AWS S3 API 连接。 
1.4.3.4. AWS 订阅示例
请参阅以下完整的 AWS S3 对象存储桶频道示例 YAML 文件:
						您可以继续创建其他 AWS 订阅和放置规则对象,如以下带有添加了 kind: PlacementRule 和 kind: Subscription 的示例 YAML 所示:
					
						您还可以订阅对象存储桶中特定子文件夹内的对象。将 subfolder 注解添加到订阅中,它会强制对象存储桶订阅仅应用子文件夹路径中的所有资源。
					
						请参阅带有 subfolder-1 的注解作为 bucket-path:
					
annotations: apps.open-cluster-management.io/bucket-path: <subfolder-1>
annotations:
  apps.open-cluster-management.io/bucket-path: <subfolder-1>有关子文件夹,请参见以下完整示例: