文档

应用分发概述

更新时间:

应用的多集群分发面临很多挑战,例如维护多个集群的KubeConfig入口不唯一,同应用在不同集群的差异化配置,缺少统一的视图查看应用在多集群的部署情况,同应用同时部署多个集群风险高等,您可以通过ACK One舰队管理的应用分发来解决以上问题。本文介绍ACK One舰队管理应用分发的原理和功能。

背景信息

ACK One舰队的应用分发功能通过托管开源社区项目KubeVela实现,KubeVela是一个现代化应用交付与管理平台,简化了面向多集群的应用交付过程。ACK One舰队的应用分发提供了统一标准的Kubernetes API接口,实现了Kubernetes原生资源在多集群间的分发,支持不同集群部署的差异化配置,支持基于工作流的集群间灰度发布。通过ACK One Fleet实例,您可以体验到开源社区项目KubeVela的丰富应用交付能力,同时免除您自建以及后期运维工作量。

应用分发原理

基于角色扮演的应用分发

用户(User A)在创建或修改应用后,Fleet实例会将应用所引用的资源下发到关联集群中,此时应用分发会扮演应用创建者或修改者的身份(User A),向关联集群发起资源创建或修改请求,在关联集群上看到的应用相关资源的创建者或修改者为用户User A。满足关联集群独立审计要求,并提升多集群安全水位。基于角色扮演的应用分发原理如下图所示。

实现阶段

ACK One Fleet实例的应用分发功能实现包含以下两个阶段:

image
  1. 在Fleet实例中创建应用相关的Kubernetes原生资源,由第二阶段定义分发规则,分发到关联集群。目前应用分发支持的资源如下:

    说明

    Fleet实例不会监视资源的创建,所以不会触发相应的资源创建,例如Deployment不会触发Pod的创建,Service不会触发Endpoint的创建。

    Kind

    apiVersion

    Deployment

    apps/v1

    Service

    v1

    Ingress

    networking.k8s.io/v1

    ConfigMap

    v1

    Secret

    v1

    StatefulSet

    apps/v1

    PersistentVolumeClaim

    v1

    ServiceExport

    multicluster.x-k8s.io/v1alpha1

    ServiceImport

    multicluster.x-k8s.io/v1alpha1

    HorizontalPodAutoscaler

    autoscaling/v1

  2. 在Fleet实例上创建分发规则,包括引用第一阶段创建的Kubernetes资源、选择分发目标集群、差异化配置、工作流和实现应用的多集群分发。

功能介绍

功能

描述

参考文档

应用复制分发

您可以通过访问ACK One Fleet实例,向多个集群下发Deployment、Service和Ingress等Kubernetes原生资源,包括创建应用相关的Kubernetes原生资源、创建应用部署目标、创建应用等,实现多集群复制部署和查看应用状态。

应用复制分发

应用分发差异化配置

您可以在ACK One舰队管理的Fleet实例上进行多集群应用分发差异化配置,实现同一个应用在不同目标关联集群上的配置不同,例如副本数量、镜像、环境变量等。

应用分发差异化配置

应用集群间灰度分发

在应用的多集群分发部署中,您可以使用ACK One应用发布的工作流功能,实现应用在集群之间分批发布。例如,您可以将应用先发布到测试集群,经验证后再发布到生产集群,用来控制发布风险。

应用集群间灰度分发

选择分发目标集群

您通过访问ACK One Fleet实例使用应用分发功能时,需要定义应用分发的目标集群。ACK One支持通过关联集群名称和给关联集群打标的方式选择目标集群。

选择分发目标集群

差异化规则

您可以在ACK One Fleet实例上进行多集群应用分发差异化配置,实现同一个应用在不同目标集群上的配置不同。

差异化规则

应用容器水平伸缩(HPA)

您可以在ACK One应用分发中使用容器水平伸缩(HPA)控制关联集群的应用副本数。

应用容器水平伸缩(HPA)

ACK One用户交流群

ACK One开放了Kubevela的下列能力,如果您需要更多能力,欢迎使用钉钉搜索群号35688562加入钉钉交流群获得支持。

  • 本页导读 (1)
文档反馈