部署应用工作台可插拔组件¶
应用工作台中的一些功能借助了开源组件的能力,从应用工作台 v0.21.0 版本开始,采取可插拔的设计模式,解藕了相关的功能组件, 所以在部署应用工作台时,您可以在安装器的 manifest.yaml 文件中选择是否开启。如果安装时没有开启,您也可以通过下文指导进行启用。
关于每个组件的对应的功能如下:
组件 | 功能 | 备注 | |
---|---|---|
argo-cd | 持续部署 | 安装时默认安装 | |
argo-rollouts | 灰度发布 | 安装时默认不安装 |
vela-core | OAM 应用 | 安装时默认不安装 |
Note
如果需要在安装 DCE 5.0 时开启或关闭应用工作台的相关组件,可以在部署时设置 manifest.yaml 中的 enable 关键字来通过设置 true 或者 fasle 选择是否启用。
部署 argo-cd 组件¶
如果部署 DCE 5.0 时选择不启用,则按照下述步骤进行部署,从而使用应用工作台提供的持续部署能力。
-
在 DCE 5.0 产品模块,进入 容器管理 -> 集群列表,进入 kpanda-global-cluster 集群详情页面。
-
在集群详情中左侧菜单栏的 Helm 应用 -> Helm 模板 -> 选择全部仓库。搜索 argo-cd,点击进入详情页面并安装。
-
在安装界面,填写所需要的安装参数
参数说明:
- 名称:请填写 argocd,建议。
- 版本:默认选择为 5.34.6,addon 仓库目前仅有该版本。
- 命名空间:选择 argocd,建议。
Note
其余参数均使用默认值即可。
-
点击右下角确定按钮即可完成安装。可以查看 argocd 命名空间下的 argocd 相关的负载是否均处于 运行中 状态判断。
-
确认上述的负载成功部署后,在当前集群切换到 amamba-system 命名空间并点击左侧菜单栏的 配置项与密钥 -> 配置项,搜索 amamba-config,点击 编辑 YAML。
-
在 data -> amamba-config.yaml 中添加如下参数:
- argocd 的服务地址,格式为:argocd-server 的服务名。命名空间.svc.cluster.local:80
- argocd 安装的命名空间
-
修改完成后,在当前集群详情左侧菜单栏的 工作负载 -> 容器组,分别搜索 amamba-apiserver、amamba-syncer,并依次进行重启。
-
重启成功后,即可前往 应用工作台 模块使用持续部署能力。
注意事项¶
对于 Addon 中的 argo-cd 组件,我们基于开源版本做了一些配置,主要更改如下:
- 修改 helm template 中的 image 改为
registry:repository:tag
的三段式结构,可以通过 global.imageRegistry 来设置全局的仓库地址 - 修改了 argo-cd 的下面两个 configmap,用以鉴权,这部分直接安装 addon 中的 argo-cd 即可,不需要手动操作
apiVersion: v1
data:
accounts.amamba: apiKey
admin.enabled: "true"
kind: ConfigMap
metadata:
name: argocd-cm
[root@demo-dev-master1 ~]# kubectl get cm -n argocd argocd-rbac-cm -o yaml
apiVersion: v1
data:
policy.csv: |
g, amamba, role:admin
policy.default: ""
scopes: '[groups]'
kind: ConfigMap
metadata:
name: argocd-rbac-cm
部署 vela-core 组件¶
如果部署 DCE 5.0 时选择不启用,则按照下述步骤进行部署,从而使用应用工作台提供的 OAM 应用能力。
-
在 DCE 5.0 产品模块,进入 容器管理 -> 集群列表,进入 kpanda-global-cluster 集群详情页面。
-
在集群详情中左侧菜单栏的 helm 应用 -> helm 模板 -> 选择 addon 仓库。搜索 vela-core,点击进入详情页面并安装。
-
在安装界面,填写所需要的安装参数
参数说明:
- 名称:请填写 kubevela
- 版本:默认选择为 1.7.7,addon 仓库目前仅有该版本
- 命名空间:请选择 vela-system
Note
- 其余参数均使用默认值即可。
- 注意:applicationRevisionLimit 这个参数表示 OAM 应用版本的数量限制,默认是 10,可根据选择是否更改。
-
点击右下角确定按钮即可完成安装。可以查看 vela-system 命名空间下的相关的负载是否均处于 运行中 状态判断。
-
确认上述的负载成功部署后,在当前集群详情左侧菜单栏的 配置项与密钥 -> 配置项, 搜索 amamba-config,点击 编辑 YAML。
-
在 data->amamba-config.yaml 中添加如下参数:
- kubevela 安装的命名空间
-
修改完成后,在当前集群详情左侧菜单栏的 工作负载 -> 容器,分别搜索 amamba-apiserver、 amamba-syncer,并依次进行重启。
-
重启成功后,即可前往 应用工作台 模块使用 OAM 应用能力。
部署 argo-rollouts¶
如果部署 DCE 5.0 时选择不启用,则按照下述步骤进行部署,从而使用应用工作台提供的灰度发布能力。
-
在 DCE 5.0 产品模块,进入 容器管理 -> 集群列表,进入 kpanda-global-cluster 集群详情页面(选择部署在应用进行灰度发布的集群中)。
-
在集群详情中左侧菜单栏的 helm 应用 -> helm 模板 -> 选择 addon 仓库。 搜索 argo-rollouts,点击进入详情页面并安装。
-
在安装界面,填写所需要的安装参数
参数说明:
- 名称:请填写 argorollout,建议。
- 版本:默认选择为 2.32.0,addon 仓库目前仅有该版本。
- 命名空间:请选择 argo-rollouts-system,建议。
开启 contour
应用工作台在新版本 v0.24.0 支持了基于 contour 的流量控制的灰度发布策略,如果需要使用该能力,需要执行如下事项:
-
定义
value.yaml
中的initContainers
字段下的参数:argo-rollouts: controller: initContainers: - name: copy-contour-plugin image: release.daocloud.io/skoala/rollouts-plugin-trafficrouter-contour:v0.3.0 # (1)! command: ["/bin/sh", "-c"] args: - cp /bin/rollouts-plugin-trafficrouter-contour /plugins volumeMounts: - name: contour-plugin mountPath: /plugins trafficRouterPlugins: trafficRouterPlugins: |- - name: argoproj-labs/contour location: "file:///plugins/rollouts-plugin-trafficrouter-contour" volumes: - name: contour-plugin emptyDir: {} volumeMounts: - name: contour-plugin mountPath: /plugins
- 离线化时需要在镜像地址前增加离线化镜像仓库地址
-
在argo-rollouts 安装完成后,还需要执行一下命令去修改clusterRole:
Rollout 部署成功后,可以创建金丝雀发布界面选择 contour 作为流量控制。
-
点击右下角确定按钮即可完成安装。可以查看 argo-rollouts-system 命名空间下的相关的负载是否均处于 运行中 状态判断。
-
部署成功后,即可前往 应用工作台 模块在当前集群使用
基于云原生网关
的灰度发布能力。
Note
- argo-rollout 是一个用于 Kubernetes 应用的灰度发布和流量管理的工具,它专注于应用程序的部署和更新过程。
- 在使用过程中,需要在应用的所在集群部署。如果需要在多个集群中使用灰度发布能力,需要在所对应的集群一一部署 argo-rollout 组件。