From c11b6d3181ea2fbbfc3ef6c30fe7d9fd2ba9d9d9 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Tue, 31 Jan 2023 00:23:14 +0800 Subject: [PATCH] feat: add video Signed-off-by: Qi Zhang --- docs/devops/app-deploy/react-vue.md | 4 + docs/devops/app-deploy/springboot.md | 4 + docs/devops/code-repository/index.md | 4 + docs/devops/continuous-deploy/auto-build.md | 4 + docs/devops/continuous-deploy/gitops.md | 4 + docs/devops/env-version/index.md | 4 + docs/devops/overview/index.md | 4 + docs/quick-start/quick-install.mdx | 12 +- .../app-manage/overview/add-service.md | 24 -- .../app-manage/overview/app-topology.md | 4 +- docs/use-manual/app-manage/overview/index.md | 28 +-- .../component-manage/other/index.md | 22 +- .../overview/basic-operation.md | 106 +++----- .../component-manage/overview/index.md | 26 +- .../overview/operation-log.md | 13 - .../overview/service-properties.md | 12 +- .../enterprise-manage/cluster-manage/index.md | 12 - .../enterprise-manage/overview/overview.md | 39 --- .../team-manage/app-manage/app-create.md | 30 --- .../team-manage/app-manage/index.md | 12 - .../team-manage/app-manage/overview.md | 22 -- .../team-manage/overview/overview.md | 31 --- .../team-manage/team-manage/dynamic.md | 18 -- .../app-manage/overview/add-service.md | 32 --- .../app-manage/overview/app-topology.md | 73 ------ .../use-manual/app-manage/overview/index.md | 35 --- .../app-manage/overview/model/deploy-istio.md | 134 ---------- .../overview/model/governance-model.md | 70 ------ .../app-manage/overview/operation.md | 20 -- .../component-manage/other/index.md | 228 ------------------ .../overview/basic-operation.md | 148 ------------ .../component-manage/overview/index.md | 25 -- .../overview/operation-log.md | 13 - .../overview/service-properties.md | 33 --- .../enterprise-manage/cluster-manage/index.md | 12 - .../enterprise-manage/overview/overview.md | 39 --- .../team-manage/app-manage/app-create.md | 30 --- .../team-manage/app-manage/index.md | 12 - .../team-manage/app-manage/overview.md | 22 -- .../team-manage/overview/overview.md | 31 --- .../team-manage/team-manage/dynamic.md | 18 -- sidebars.js | 45 +--- src/components/Bvideo/index.js | 10 +- 43 files changed, 84 insertions(+), 1385 deletions(-) delete mode 100644 docs/use-manual/app-manage/overview/add-service.md delete mode 100644 docs/use-manual/component-manage/overview/operation-log.md delete mode 100644 docs/use-manual/enterprise-manage/cluster-manage/index.md delete mode 100644 docs/use-manual/enterprise-manage/overview/overview.md delete mode 100644 docs/use-manual/team-manage/app-manage/app-create.md delete mode 100644 docs/use-manual/team-manage/app-manage/index.md delete mode 100644 docs/use-manual/team-manage/app-manage/overview.md delete mode 100644 docs/use-manual/team-manage/overview/overview.md delete mode 100644 docs/use-manual/team-manage/team-manage/dynamic.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/add-service.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/app-topology.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/index.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/deploy-istio.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/governance-model.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/operation.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/other/index.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/basic-operation.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/index.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/operation-log.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/service-properties.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/cluster-manage/index.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/overview/overview.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/app-create.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/index.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/overview.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/overview/overview.md delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/team-manage/dynamic.md diff --git a/docs/devops/app-deploy/react-vue.md b/docs/devops/app-deploy/react-vue.md index 351734e666..8e20ad7c5e 100644 --- a/docs/devops/app-deploy/react-vue.md +++ b/docs/devops/app-deploy/react-vue.md @@ -6,6 +6,10 @@ keywords: - Vue React 前端项目部署 --- +import Bvideo from '/src/components/Bvideo'; + + + ## 概述 在基于源码构建时,Rainbond 会识别项目根目录的 **package.json** 让你选择为 Node 前端项目,并选择使用 NPM 还是 YARN 构建项目。 diff --git a/docs/devops/app-deploy/springboot.md b/docs/devops/app-deploy/springboot.md index a3c5b773ed..b1cb96b96b 100644 --- a/docs/devops/app-deploy/springboot.md +++ b/docs/devops/app-deploy/springboot.md @@ -6,6 +6,10 @@ keywords: - SpringBoot 项目部署 --- +import Bvideo from '/src/components/Bvideo'; + + + Rainbond 支持构建 SpringBoot 单模块和多模块的项目,并自动识别其模块。 Maven 项目是根据 `pom.xml` 文件来划分的, Rainbond 对它的识别也是建立在 `POM` 的基础上的. 主. 是识别出具体`模块(module)` 的构建命令和启动命令. 构建命令的作用是指定需要构建的模块, 是类似于 **mvn install -pl 'module name' -am** 的 mvn 命令. 启动命令的作用是在构建完成后, 指定需要执行的 Jar 包, 是类似于 **web: java $JAVA_OPTS -jar *.jar** 的命令. diff --git a/docs/devops/code-repository/index.md b/docs/devops/code-repository/index.md index 2dd489f905..42dc080831 100644 --- a/docs/devops/code-repository/index.md +++ b/docs/devops/code-repository/index.md @@ -6,6 +6,10 @@ keywords: - Rainbond Git 仓库对接 --- +import Bvideo from '/src/components/Bvideo'; + + + Rainbond 支持对接 Git 代码仓库,从源代码仓库直接创建组件。 目前 Rainbond 支持 `GitHub GitLab Gitee` 三种支持 Git 仓库对接的 Oauth 类型。Rainbond 所有支持的 OAuth 类型需要正常配置权限才能正常使用,比如 `Github GitLab Gitee` 需要授予获取代码仓库列表等权限。 diff --git a/docs/devops/continuous-deploy/auto-build.md b/docs/devops/continuous-deploy/auto-build.md index 7154c648b6..f9bf19a93e 100644 --- a/docs/devops/continuous-deploy/auto-build.md +++ b/docs/devops/continuous-deploy/auto-build.md @@ -6,6 +6,10 @@ keywords: - Rainbond 自动部署 --- +import Bvideo from '/src/components/Bvideo'; + + + 通过自动构建的功能,可以实现代码或镜像提交后组件自动触发构建和部署,Rainbond 提供了基于代码仓库 Webhooks、镜像仓库 Webhooks 和自定义 API 三种方式触发组件自动部署。自动构建的功能可以辅助开发者便捷的实现敏捷开发。 ## 前提条件 diff --git a/docs/devops/continuous-deploy/gitops.md b/docs/devops/continuous-deploy/gitops.md index d65bc7c85a..5fc105fa7e 100644 --- a/docs/devops/continuous-deploy/gitops.md +++ b/docs/devops/continuous-deploy/gitops.md @@ -6,6 +6,10 @@ keywords: - 持续部署 --- +import Bvideo from '/src/components/Bvideo'; + + + 本文介绍 Rainbond 如何和 GitLab 进行 OAuth 对接,并实现对 GitLab 中项目的快速部署和利用 Webhook 实现自动构建。 ## 前提条件 diff --git a/docs/devops/env-version/index.md b/docs/devops/env-version/index.md index 1cf13b3eaa..d7b46703dc 100644 --- a/docs/devops/env-version/index.md +++ b/docs/devops/env-version/index.md @@ -4,6 +4,10 @@ describe: 本文介绍通过应用复制功能快速进行多个开发环境的 # keywords: 组件复制 应用复制 组件快速部署 应用快速部署 --- +import Bvideo from '/src/components/Bvideo'; + + + ## 开发、测试环境管理 应用开发过程中,同一个业务系统开发者可能需要重复多次的进行开发环境搭建。比如以下几类情况: diff --git a/docs/devops/overview/index.md b/docs/devops/overview/index.md index 12491d720f..4cd3f0502a 100644 --- a/docs/devops/overview/index.md +++ b/docs/devops/overview/index.md @@ -6,6 +6,10 @@ keywords: - Rainbond DevOps --- +import Bvideo from '/src/components/Bvideo'; + + + DevOps 是文化理念、技术实践和工具的组合,可促进技术运维和软件开发团队之间的集成、协作、沟通和自动化,从而提高软件交付的质量和速度。 ## 了解 Rainbond DevOps diff --git a/docs/quick-start/quick-install.mdx b/docs/quick-start/quick-install.mdx index e9369472c8..64a60b6632 100644 --- a/docs/quick-start/quick-install.mdx +++ b/docs/quick-start/quick-install.mdx @@ -43,13 +43,17 @@ curl -o install.sh https://get.rainbond.com && bash ./install.sh 在 Windows CMD 中执行以下命令 ```bash -docker run --privileged -d -p 7070:7070 -p 80:80 -p 443:443 -p 6060:6060 -p 8443:8443 ^ ---name=rainbond-allinone --restart=on-failure ^ +docker run --privileged -d -p 7070:7070 --name=rainbond-allinone --restart=on-failure ^ +-p 80:80 -p 443:443 -p 6060:6060 -p 8443:8443 -p 10000-10010:10000-10010 ^ -v rainbond-data:/app/data ^ -v rainbond-opt:/opt/rainbond ^ -e EIP=<你的IP地址> ^ -registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v5.10.1-dind-allinone ^ -&& docker logs -f rainbond-allinone +registry.cn-hangzhou.aliyuncs.com/goodrain/rainbond:v5.10.1-dind-allinone +``` + +查看 Rainbond 启动日志 +```bash +docker logs -f rainbond-allinone ``` **执行完上述命令后,耐心等待 3-5 分钟,可以看到如下日志输出,表示 Rainbond 已启动完成** diff --git a/docs/use-manual/app-manage/overview/add-service.md b/docs/use-manual/app-manage/overview/add-service.md deleted file mode 100644 index 0f52249717..0000000000 --- a/docs/use-manual/app-manage/overview/add-service.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 添加组件 -description: 讲解为应用便捷的添加组件说明文档 ---- - -## 添加服务组件说明 - -应用由一个或多个服务组件组成,一般在 [创建第一个服务组件](/docs/use-manual/component-create/language-support/java/java-maven) 的过程中创建了应用。后续的应用组装过程中,直接为应用添加组件将是最便捷的途径。添加服务组件分为两类: - -- 添加内置组件 - -添加组件的流程与 [组件创建流程](/docs/use-manual/component-create/creation-process) 完全一致,同样支持基于源代码、Docker 镜像和云市应用三种途径。唯一的不同是不提供基于 DockerCompose 创建多个服务的方式。 - -- 添加第三方组件 - -添加 [第三方组件](/docs/use-manual/component-create/thirdparty-service/thirdparty-create) 便捷的添加运行于 rainbond 集群外的服务,同样支持添加静态组件和动态组件。 - -## 处理依赖关系 - -添加的组件一般需要被其组件务依赖或依赖其他组件,只需要进入 [拓扑图](/docs/use-manual/app-manage/overview/app-topology) 的 [编辑模式](/docs/use-manual/app-manage/overview/app-topology/#编辑模式) ,将服务直接单向连线即可快捷建立依赖关系。 - -## 开启外网访问 - -如果添加的组件需要被外网访问,添加成功后有几种方式,常见的方式第一种是通过拓扑图的编辑模式将外网云朵模型与组件建立连线即可;第二种是通过组件管理界面 `端口` 添加访问策略。 diff --git a/docs/use-manual/app-manage/overview/app-topology.md b/docs/use-manual/app-manage/overview/app-topology.md index bf7843b575..3ff97a43d8 100644 --- a/docs/use-manual/app-manage/overview/app-topology.md +++ b/docs/use-manual/app-manage/overview/app-topology.md @@ -38,11 +38,11 @@ description: 展现应用包含的所有组件的网络关系、业务关系和 ## 编辑模式 -编辑拓扑图目前支持:服务组件连接建立或取消依赖关系、打开或关闭服务组件对外端口,方便快捷; +编辑拓扑图目前支持:服务组件连接建立或取消依赖关系、打开或关闭服务组件对外端口 * 删除动作 -点击连接线按下 `delete` 键快速删除组件依赖关系、关闭服务组件所有对外端口,方便快捷; +点击连接线按下 `delete` 键快速删除组件依赖关系、关闭服务组件所有对外端口 * 增加动作 diff --git a/docs/use-manual/app-manage/overview/index.md b/docs/use-manual/app-manage/overview/index.md index 21c873044f..8a77e2d124 100644 --- a/docs/use-manual/app-manage/overview/index.md +++ b/docs/use-manual/app-manage/overview/index.md @@ -3,35 +3,9 @@ title: 应用总览 description: 应用总览 --- -## 应用总览介绍 - -应用总览视图包含了整个应用的基本信息,使应用管理人员更方便的查阅应用内的状态等。 - -![](https://static.goodrain.com/docs/5.6/use-manual/app-manage/overview/overview.png) - -应用总览详细信息如下: - -| | 介绍 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [应用名称](#应用名称修改) | 展示应用名称 | -| 应用资源监控 | 展示应用内所有组件使用的 CPU、内存、磁盘 | -| [应用生命周期](/docs/use-manual/app-manage/overview/operation) | 应用生命周期管理,批量启动、停用、更新、构建等 | -| [应用拓扑图](/docs/use-manual/app-manage/overview/app-topology) | 应用拓扑图管理,管理组件之间的依赖,添加、删除 | -| [添加组件](/docs/use-manual/app-manage/overview/add-service) | 在应用内添加组件,与团队视图添加组件效果一致 | -| [操作组件](/docs/use-manual/app-manage/overview/app-topology#拓扑图组件操作) | 通过拓扑图对组件进行基础操作以及展示基本信息等。 | - - - - ```mdx-code-block import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; -``` - - - -## 应用名称修改 - -点击应用名称即可修改,英文名称不可修改。 \ No newline at end of file +``` \ No newline at end of file diff --git a/docs/use-manual/component-manage/other/index.md b/docs/use-manual/component-manage/other/index.md index 169642d424..6798aa3a4a 100644 --- a/docs/use-manual/component-manage/other/index.md +++ b/docs/use-manual/component-manage/other/index.md @@ -55,24 +55,4 @@ description: 组件其他设置功能模块介绍 2.启用/禁用健康检测 -特殊情况下开发者可能需要临时禁用健康检测使组件一直处于健康状态。可以使用启用/禁用健康检测功能。修改后需要更新组件即可生效。 - -## 常见问题 - -- 组件滚动更新过程中出现请求故障 - -> 出现此问题强烈建议设置更加精确的健康检测规则,比如选用 HTTP 模式。 - -- 其他协议的组件如何设置健康检测 - -> Mysql,Redis 等更多的应用层协议目前不支持精确检测,请选用 TCP 模式。后续我们将增加使用 `cmd` 的方式进行检测,可以对不同类型的组件进行较好的支持。 - - -## 组件特性管理 - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` \ No newline at end of file +特殊情况下开发者可能需要临时禁用健康检测使组件一直处于健康状态。可以使用启用/禁用健康检测功能。修改后需要更新组件即可生效。 \ No newline at end of file diff --git a/docs/use-manual/component-manage/overview/basic-operation.md b/docs/use-manual/component-manage/overview/basic-operation.md index 29721d6451..648296b109 100644 --- a/docs/use-manual/component-manage/overview/basic-operation.md +++ b/docs/use-manual/component-manage/overview/basic-operation.md @@ -3,9 +3,7 @@ title: 组件基础操作 description: Rainbond组件基础生命周期操作说明文档 --- -### 组件基本操作 - -先就组件可进行的操作进行基础说明: +## 组件基本操作 | 基础操作 | 说明 | | ---------------- | ---------------------------------------------------------------------------------------------------------------- | @@ -21,8 +19,6 @@ description: Rainbond组件基础生命周期操作说明文档 ### 构建操作 -> 适用场景:组件的任何状态 - 针对不同类型的组件,触发 `构建` 操作后,有着不同的含义,下表针对不同类型的组件加以说明: | 组件类型 | 说明 | @@ -35,92 +31,56 @@ description: Rainbond组件基础生命周期操作说明文档 - 构建后,如果一切顺利,组件会自动切换为新版本并上线,构建操作默认并更新升级,也可在其他设置中去设置构建后不升级流程。 - 滚动升级过程对于多节点的组件理论上无影响,对于单节点的组件如果正常配置了业务级的 [健康检测](/docs/use-manual/component-manage/other/) 也可以做到无影响升级。 - 处于关闭状态的组件,触发构建操作后,如果构建正常,平台会将组件运行起来。 - -#### 云市组件升级支持的属性 - -在对云市组件进行升级的时候, 并不是所有的属性都支持升级; 在升级的时候, 各种属性的处理方式又会有所区别. 具体如下表所示: - -| 属性 | 是否支持升级 | 元数据(升级方式) | 说明 | -| ------------ | ------------ | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| 实例可选项 | 是 | 更新 | | -| 内存可选项 | 是 | 更新 | | -| 依赖关系 | 是 | 增加 | 如果依赖的组件在同一个应用内, 则增加依赖关系; 否则不进行处理 | -| 端口 | 是 | 更新, 增加 | 对于端口的升级, 可以更新已有的端口信息, 也可以增加新的端口; 但是不能删除已有的端口 | -| 存储 | 是 | 增加 | 对于存储的升级, 只能增加新的存储; 不能对已有的存储进行删除, 或修改 | -| 健康检测 | 是 | 更新 | 对于健康检测的升级, 修改已有的健康检测信息, 不能删除, 或增加(一个组件只能有一个健康检测信息) | -| 镜像 | 是 | 更新 | 直接更改为新的镜像 | -| 环境变量 | 是 | 增加 | 对环境变量的升级, 只支持增加新的环境变量; 不能修改, 或删除已有的环境变量 | -| 启动参数 | 是 | 更新 | | -| 依赖存储 | 是 | 如果依赖的存储所在的组件在同一个应用内, 则增加依赖关系; 否则不进行处理 | -| 有无状态类型 | 否 | | -| 标签 | 否 | | - ### 更新操作 -> 使用场景:运行中组件 - -当组件的依赖、存储、环境变量、特性、健康监测等运行属性发生改变以后, 必须通过手工触发更新操作来将最新的属性配置应用的组件的运行环境中,在这更新过程中默认采用滚动升级的策略对组件实例进行升级。 +当组件的依赖、存储、环境变量、特性、健康监测等运行属性发生改变以后,必须通过手工触发更新操作来将最新的属性配置应用的组件的运行环境中,在这更新过程中默认采用滚动升级的策略对组件实例进行升级。 对于滚动升级有两类控制策略: +* 无状态组件: 对无状态组件采用的是无序的先启动后停止的策略,即先启动新版本的运行实例,当其处于健康运行状态后关闭旧版本运行实例。需要注意的是,此过程会出现多版本同时工作的情况,若你的业务组件无法容忍多版本同时工作,请使用重启策略。 -- 无状态组件 - -对无状态组件采用的是无序的先启动后停止的策略,即先启动新版本的运行实例,当其处于健康运行状态后关闭旧版本运行实例。需要注意的是,此过程会出现多版本同时工作的情况,若你的业务组件无法容忍多版本同时工作,请使用重启策略。 - -- 有状态组件 - -对于有状态组件采用的是有序的先关闭后停止策略,即根据运行实例编号,从第一个实例开始先关闭实例然后启动新版本实例。 - -这种控制对于像数据库类的组件至关重要,因此请勿将数据库类组件部署为无状态组件。 +* 有状态组件: 对于有状态组件采用的是有序的先关闭后停止策略,即根据运行实例编号,从第一个实例开始先关闭实例然后启动新版本实例。这种控制对于像数据库类的组件至关重要,因此请勿将数据库类组件部署为无状态组件。 ### 启动操作 -> 使用场景:构建成功,并处于关闭状态的组件 - 启动操作会启动上一次成功构建的组件版本,启动后可以在组件概览页面的 `操作日志` 看到平台调度与处理组件的详细操作日志,当调度完成后,组件就进入启动阶段,这时候可以通过 `日志` 页面查看组件的启动日志。 特别是对于第一次在 Rainbond 启动的组件,尤其需要关注如下几点: -1. 组件启动或更新超时怎么办? +**1.组件启动或更新超时怎么办?** -> 目前 Rainbond 对于异步任务确定了固定的超时时间,因此请注意,超时并不是失败,需要根据实际情况优化组件的配置,如果有超时,请按如下路径进行排查: -> -> - 查询 [组件日志](../service-log#组件运行日志) 确定组件的启动情况,若你的组件日志未输出到 stdout 或 stderr,请进入组件容器查询你的日志。比如一些 Java 类的组件,若分配的内存不足将导致启动非常缓慢, 亦或者从日志中发现组件运行环境是否正常,比如依赖了数据库,是否能够正常访问数据库等。 -> - 如果源码构建的组件在启动后很长时间才进入正常的业务启动过程,请优化代码忽略掉多余的源代码文件减少运行代码解压时间 参考 [slugignore 文件使用方式](/docs/use-manual/component-create/language-support/slugignore) -> - 确定组件监听的地址不是 127.0.0.1 或 localhost -> - 若组件监听地址正确且已正常监听,请查询 [组件健康检测](/docs/use-manual/component-manage/other/) 配置是否正确,一般若组件有多个端口时容易出现默认配置错误的问题。 -> - 以上组件可能的故障如都已排除还是启动超时且一直处于启动中状态,请通过运维工具 `grctl cluster` 和 `grctl service get -t ` 查询集群和组件运行实际状态。 +目前 Rainbond 对于异步任务确定了固定的超时时间,因此请注意,超时并不是失败,需要根据实际情况优化组件的配置,如果有超时,请按如下路径进行排查: +- 查询 [组件日志](../service-log#组件运行日志) 确定组件的启动情况,若你的组件日志未输出到 stdout 或 stderr,请进入组件容器查询你的日志。比如一些 Java 类的组件,若分配的内存不足将导致启动非常缓慢, 亦或者从日志中发现组件运行环境是否正常,比如依赖了数据库,是否能够正常访问数据库等。 +- 如果源码构建的组件在启动后很长时间才进入正常的业务启动过程,请优化代码忽略掉多余的源代码文件减少运行代码解压时间 参考 [slugignore 文件使用方式](/docs/use-manual/component-create/language-support/slugignore) +- 确定组件监听的地址不是 127.0.0.1 或 localhost +- 若组件监听地址正确且已正常监听,请查询 [组件健康检测](/docs/use-manual/component-manage/other/) 配置是否正确,一般若组件有多个端口时容易出现默认配置错误的问题。 +- 以上组件可能的故障如都已排除还是启动超时且一直处于启动中状态,请通过运维工具 `grctl cluster` 和 `grctl service get -t ` 查询集群和组件运行实际状态。 -1. 组件运行异常怎么办? +**2.组件运行异常怎么办?** -> 组件运行异常是指组件进程异常的退出了,一般有几下几种原因: -> -> - 组件代码故障,无法正常运行 -> - 组件使用了不支持的镜像,比如基础操作系统镜像,无法在前台守护运行。 -> - 组件内存分配不足导致 OOM -> - 组件健康检查配置错误,导致组件无法通过健康检查。 -> -> 若是上述情况,请处理你的组件配置,组件运行过程中如果异常退出 Rainbond 会自动守护并重新启动你的组件 +组件运行异常是指组件进程异常的退出了,一般有几下几种原因: -1. 组件无法访问怎么办? +- 组件代码故障,无法正常运行 +- 组件使用了不支持的镜像,比如基础操作系统镜像,无法在前台守护运行。 +- 组件内存分配不足导致 OOM +- 组件健康检查配置错误,导致组件无法通过健康检查。 -> 组件无法访问时请查看如下几类原因: -> -> - 组件未正常运行,根据运行状态和组件日志确认 -> - 组件端口配置不正确,组件端口配置务必与组件真实监听的端口一致 -> - 组件可访问端口未打开对外组件开关 -> - 组件未配置正确可访问的域名 +若是上述情况,请处理你的组件配置,组件运行过程中如果异常退出 Rainbond 会自动守护并重新启动你的组件 -### 关闭操作 +**3.组件无法访问怎么办?** -> 使用场景:运行中或运行异常的组件 +组件无法访问时请查看如下几类原因: + +- 组件未正常运行,根据运行状态和组件日志确认 +- 组件端口配置不正确,组件端口配置务必与组件真实监听的端口一致 +- 组件可访问端口未打开对外组件开关 +- 组件未配置正确可访问的域名 + +### 关闭操作 触发关闭操作后,组件将首先从应用网关或 ServiceMesh 网络下线,然后关闭所有运行实例,释放集群资源。 ### 重启操作 -> 使用场景:运行中或运行异常的组件 - 触发重启操作后,平台会将现有的组件运行实例全部关闭,待关闭完成后进行启动。若出现关闭超时时 重启操作将退出,组件启动的控制权交予用户。 - 重启组件并不会更新组件代码或镜像,需要和`构建`操作区分。 @@ -128,21 +88,9 @@ description: Rainbond组件基础生命周期操作说明文档 ### 访问操作 -> 使用场景:运行中的组件 && (打开了对外组件 | 对内组件的端口) - 针对不同协议的组件,点击访问按钮后所触发的命令也不一样: | 组件协议 | 点击访问按钮后的操作 | | -------- | ------------------------------------------------------------------------------ | | HTTP | 浏览器新开窗口,打开组件的默认域名,如果绑定多个域名,会显示域名列表供用户选择 | | TCP | 弹出访问信息窗口 | - -- HTTP 协议组件 - - - -- TCP 协议组件 - - - -复制推荐的访问地址到浏览器即可访问 diff --git a/docs/use-manual/component-manage/overview/index.md b/docs/use-manual/component-manage/overview/index.md index 865710c05b..b52dc05061 100644 --- a/docs/use-manual/component-manage/overview/index.md +++ b/docs/use-manual/component-manage/overview/index.md @@ -1,25 +1,11 @@ --- -title: 总览 +title: 组件总览 description: 组件总览 --- -## 组件总览 - -组件总览视图包含了组件的基本信息,是组件管理人员更方便的查看组件的状态。 - -![](https://static.goodrain.com/docs/5.6/use-manual/component-manage/overview/overview.png) - -组件总览展示信息如下: - -| | 介绍 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| 组件名称 | 组件名称可修改,组件英文名称不可修改 | -| [组件基本操作](/docs/use-manual/component-manage/overview/basic-operation) | 操作组件的启动、停止、更新、Web终端等 | -| [组件生命周期](/docs/use-manual/component-manage/overview/service-properties) | 展示组件的运行状态,以 `文字形态`/`方块动态` 展示 | -| 运行时间 | 展示组件运行的时长 | -| 内存 | 展示组件分配的内存大小 MB | -| 磁盘 | 展示组件占用的磁盘大小 | -| 版本号 | 组件的版本号,对应组件镜像的 tag | -| 构建源 | 不同的构建源展示不同的信息,例如来自镜像创建的组件会展示仓库地址、镜像名称、tag | -| [操作记录](/docs/use-manual/component-manage/overview/operation-log) | 记录操作日志、构建日志等。 | +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + +``` \ No newline at end of file diff --git a/docs/use-manual/component-manage/overview/operation-log.md b/docs/use-manual/component-manage/overview/operation-log.md deleted file mode 100644 index 1786f0d167..0000000000 --- a/docs/use-manual/component-manage/overview/operation-log.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: 组件操作记录 -description: 组件操作记录 ---- - -### 组件操作记录 - -在组件总览页面中呈现组件的操作历史情况以及每次操作的日志记录,特别是构建操作的日志需要注意,当出现构建失败时请查看日志输出的提醒内容以指导用户对代码的不规范性进行改进。 - -组件的操作日志也是对组件进行操作的记录,便于多个用户之间的协作和操作审查。 - -![运行记录日志界面](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.2/user-manual/app-service-manage/service-log/Operation%20log.png) - diff --git a/docs/use-manual/component-manage/overview/service-properties.md b/docs/use-manual/component-manage/overview/service-properties.md index 6d5efa774a..e6541322ac 100644 --- a/docs/use-manual/component-manage/overview/service-properties.md +++ b/docs/use-manual/component-manage/overview/service-properties.md @@ -20,14 +20,4 @@ description: Rainbond基础属性的说明文档 | 运行异常   | 服务组件运行正常的实例少于总实例即标识应用运行异常,**异常实例颜色呈红色**。对于多实例的服务组件,处于异常态的服务组件只要还有正常的实例即可提供服务。实例异常大多数情况是由于服务组件本身异常退出或因为内存不足发生 OOM 退出。平台会自动尝试重启异常的实例。可通过查看服务组件日志,或通过命令行工具查看更多应用信息 | | 升级中 | 服务组件正处于滚动更新过程中,**实例颜色呈黄色**。多个节点处于当前状态的服务组件可以正常访问。升级超时时间为 3分钟 * 实例数量。**升级超时不意味升级失败** | | 已关闭 | 服务组件已经停止运行,持久化数据依然存在。关闭超时时间为 40秒 * 实例数量。如长时间处于 **关闭中** 状态,**实例颜色呈黑色**,请联系运维同事。 | -| 未知 | **实例颜色呈淡蓝色**,服务组件处于此状态可能由于网络受阻,获取服务组件状态失败,或后端服务异常。可以尝试刷新页面,如果不能解决,请联系运维同事。 | - -### 应用的版本 - -针对不同类型的应用,版本的标示也有所不同: - -| 应用类型 | 版本信息 | 示例 | -| ----------- | ---------------------------------- | -------------- | -| 源码构建 | 从代码仓库拉取代码构建应用的时间戳 | 20180803171811 | -| Docker 镜像 | 镜像 tag 信息 | 1.15.2-alpine | -| 云市应用 | 应用版本 | 5.6.7 | +| 未知 | **实例颜色呈淡蓝色**,服务组件处于此状态可能由于网络受阻,获取服务组件状态失败,或后端服务异常。可以尝试刷新页面,如果不能解决,请联系运维同事。 | \ No newline at end of file diff --git a/docs/use-manual/enterprise-manage/cluster-manage/index.md b/docs/use-manual/enterprise-manage/cluster-manage/index.md deleted file mode 100644 index aedc843ce9..0000000000 --- a/docs/use-manual/enterprise-manage/cluster-manage/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: 集群管理 -description: 集群管理 ---- - -## 基于 dashboard 的运维 - -参考文档 [基于 dashboard 的运维](/docs/ops-guide/management/dashboard-op) - -## 添加集群 - -参考文档 [基于Web界面安装](/docs/installation/install-with-ui/) \ No newline at end of file diff --git a/docs/use-manual/enterprise-manage/overview/overview.md b/docs/use-manual/enterprise-manage/overview/overview.md deleted file mode 100644 index 18e2d8004a..0000000000 --- a/docs/use-manual/enterprise-manage/overview/overview.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: 企业总览 -description: 对于企业总览页面统计数据的说明 ---- - -## 企业视图页面 - -企业视图界面将会展示Rainbond平台中 `总览,应用市场,团队,集群,用户,设置` 信息,只有企业管理员可见,通过企业视图可以快速了解当前Rainbond平台基本信息。 - -![企业视图](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Overview.png) - -|功能|简介| -| ---- | --- | -|总览|展示`企业信息,应用,组件,团队,集群资源`等信息| -|应用市场|展示该企业下的应用模型,是企业数字资产的应用化产物,可以通过标准的方式安装到任何Rainbond平台或其他支持的云原生平台 ,参见 [应用市场](/docs/use-manual/enterprise-manage/appcenter/) | -|团队|在Rainbond中,团队是一个资源集合的概念,参见 [团队管理](/docs/use-manual/enterprise-manage/teams/create-team) | -|集群|在Rainbond企业版和公有云版本中,一个企业可以对接多个集群,参见 [集群管理](/docs/use-manual/enterprise-manage/cluster-manage/)| -|用户|展示企业用户信息,`添加,删除,修改用户,密码` 等,参见 [用户管理](/docs/use-manual/enterprise-manage/user-manage/)| -|设置|`平台基础设置`及`企业管理员管理`,参见 [企业设置](/docs/use-manual/enterprise-manage/enterprise-settings/)| - -## 收藏功能 - -> 收藏功能可以帮助您快捷的进入组件管理界面 - -下面以`测试团队`中的`测试应用`中`nginx组件`为例,演示如何通过收藏功能快速进入nginx组件。 - -目前所处的位置是nginx组件的管理界面,点击左上角的导航符,即可看到菜单栏的收藏功能,点击`+ `号添加收藏。 - -![收藏](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Collection.png) - -填写名称,点击确定,即可完成收藏 - -![收藏](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Add.png) - -添加完成以后在rainbond平台的任何页面点击左上角导航符找到收藏的组件,点击即可快速进入nginx组件管理界面。 - -![收藏](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Success.png) - -**对于已经不需要的收藏项,点击对应收藏项后面的`-`号即可删除** diff --git a/docs/use-manual/team-manage/app-manage/app-create.md b/docs/use-manual/team-manage/app-manage/app-create.md deleted file mode 100644 index e33bb76bc7..0000000000 --- a/docs/use-manual/team-manage/app-manage/app-create.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: 创建应用 -description: 带你进行应用创建 ---- - -跟随本文档结合你的业务场景进行合理的应用规划和创建。 - -## 前提条件 - -1. 已完成团队的规划和创建。 -2. 已了解Rainbond [应用](/docs/use-manual/get-start/concept/app) 相关概念和规划方式。 - -## 创建应用 - -应用的创建伴随开发者使用Rainbond的全过程,合理的划分应用对于开发者和运维人员有效的管理业务系统直观重要。 - -创建应用的流程如下: - -1. 进入 `团队视图/总览` 页面,点击新建应用。 -1. 填写应用名称、应用英文名称、Logo和备注信息完成应用创建。 - -> 应用的创建可以按需进行,即在从组件库安装、创建组件、复制应用、迁移应用等多个场景中编辑添加。 - -在 `V5.6.0` 版本中引入了 `应用英文名称`、`应用Logo`。 - -* 应用英文名称对应 控制体和Pod名称,例如: - * 应用英文名称为 `myapp` ,组件英文名称也为 `app1`,那么Pod则为 `myapp-app1-xxx` -* 应用Logo 则在团队总览页面展示各个应用的 `Logo`。 - - diff --git a/docs/use-manual/team-manage/app-manage/index.md b/docs/use-manual/team-manage/app-manage/index.md deleted file mode 100644 index 03eda020a5..0000000000 --- a/docs/use-manual/team-manage/app-manage/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: '应用管理' -description: '介绍团队视图应用总览以及应用的创建' ---- - - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` \ No newline at end of file diff --git a/docs/use-manual/team-manage/app-manage/overview.md b/docs/use-manual/team-manage/app-manage/overview.md deleted file mode 100644 index fc819235a0..0000000000 --- a/docs/use-manual/team-manage/app-manage/overview.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 应用总览 -description: 介绍应用总览基本信息 ---- - -## 应用管理总览 - -团队视图下的应用管理模块,展示了团队下所有应用的基本信息,方便团队管理员快速查看。 - - - -| | 介绍 | -| --------------------- | ------------------------------------------- | -| 应用名称 | 应用的名字,可在应用内进行修改 | -| 更新时间 | 应用内最后一次操作时间 | -| 创建时间 | 应用创建时的时间 | -| 组件(运行/总数) | 正在运行的组件数量/应用下所有组件的总数量 | -| 占用内存/分配内存(MB) | 组件占用的内存/分配给组件的内存,以MB为单位 | -| 备份记录 | 计算来源于应用内备份记录的数量 | -| 发布记录 | 计算来源于应用内发布记录的数量 | -| 备注 | 创建应用时的备注,也可以在应用内进行修改 | - diff --git a/docs/use-manual/team-manage/overview/overview.md b/docs/use-manual/team-manage/overview/overview.md deleted file mode 100644 index 3dfcc46e34..0000000000 --- a/docs/use-manual/team-manage/overview/overview.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "团队总览" -description: 介绍团队视图总览页面 ---- - -团队视图清晰的展现了当前团队下所拥有的的应用信息,通过团队视图可以快速进入应用管理界面,对应用内组件进行`构建删除添加`等操作。 - -## 总览视图 - -![](https://static.goodrain.com/docs/5.6/use-manual/team-manage/overview/team-overview.png) - -| 显示项 | 解释 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| 应用数量 | 当前团队下所拥有的应用数量(运行中/未运行) | -| 组件数量 | 当前团队下应用内组件的数量,包括第三方组件(运行中/未运行) | -| 使用资源 | 当前团队下所有应用组件运行所使用的内存大小 / 使用本地存储,共享存储持久化数据量的大小 | -| 用户数量 | 当前团队下用户数量 | -| 应用列表 | 展示当前团队的所有应用,一页展示12个应用,多出则分页 | -| [应用快速访问](#应用快速访问) | 可通过此按钮快速访问应用域名 | -| [新建应用](/docs/use-manual/team-manage/app-manage/app-create) | 在当前团队总览视图新建应用 | -## 应用快速访问 - -当应用中有组件开启了对外访问,可以在团队总览页面直接访问应用。 - - - -:::tip - -当应用内有多个组件开启了对外访问时,访问则按照网关策略中第一个进行访问。 - -::: diff --git a/docs/use-manual/team-manage/team-manage/dynamic.md b/docs/use-manual/team-manage/team-manage/dynamic.md deleted file mode 100644 index 82876160d9..0000000000 --- a/docs/use-manual/team-manage/team-manage/dynamic.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 动态 -description: 介绍团队内动态 ---- - - - -## 前提条件 - -* 拥有团队管理员权限 - -## 团队动态 - -动态展示团队内所有应用以及组件的操作记录,可用于操作审计。 - -审批用户加入团队,通过/拒绝。 - -![](https://static.goodrain.com/docs/5.6/use-manual/team-manage/team-manage/dynamic.png) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/add-service.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/add-service.md deleted file mode 100644 index c08b0eb540..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/add-service.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: add components -description: Explain how to easily add components to the application documentation ---- - -## Add service component description - -An application consists of one or more service components, and the application is generally created during the process of creating the - -In the subsequent application assembly process, adding components directly to the application will be the most convenient way.Adding service components is divided into two categories - -- Add built-in components - -The process of adding components is exactly the same as the [component creation process](/docs/use-manual/component-create/creation-process) , and also supports three approaches based on source code, Docker image and cloud market application.The only difference is that there is no way to create multiple services based on DockerCompose. - -- Add third-party components - -Add [third-party components](/docs/use-manual/component-create/thirdparty-service/thirdparty-create) Conveniently add services running outside the rainbond cluster, and also support adding static components and dynamic components. - - - -## handle dependencies - -The added components generally need to be depended on by their component services or depend on other components. You only need to enter the [editing mode](/docs/use-manual/app-manage/overview/app-topology/#编辑模式) of the [topology diagram](/docs/use-manual/app-manage/overview/app-topology) , and the service can be directly connected in one direction to quickly establish a dependency relationship. - -For why you need to establish dependencies, see Document [Inter-Component Communication](/docs/micro-service/service-mesh/regist_and_discover) - - - -## Enable extranet access - -If the added component needs to be accessed by the external network, there are several ways after the addition is successful. The common way is to establish a connection between the external network cloud model and the component through the editing mode of the topology map; the second is to use the component Add the management interface. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/app-topology.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/app-topology.md deleted file mode 100644 index fd57e0b3fe..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/app-topology.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Application topology -description: Show the network relationship, business relationship and business logic of all components contained in the application ---- - -## display mode - -The topology map graphically displays the real-time status of all service components of the application, and it will display information in the following dimensions: - -* Component network topology - -The figure can clearly show the direct network call relationship of the components and the openness of the public network. Combined with the traffic status, the communication status can be easily found. - -* Component overall business dependencies - -The connections between the components in the figure represent the business dependencies of the components, allowing users to know the business relationships of the complex business system at a glance. - -* Component Traffic Tracking Status - -Each line in the topology diagram will display the throughput rate and response time of each communication link in real time after the performance analysis plug-in is enabled. In the future, the error rate and distributed tracing will also be displayed in the link. - -* component running status - -The component displays the component status in color, and the corresponding relationship is as follows: - -| color | not built/not started | -| ----------- | --------------------- | -| black, grey | not built/not started | -| green | running | -| light green | during upgrade | -| red | closed | - -> If the component hex is superimposed, it means that the current component is running multiple instances. - - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.2/user-manual/app-manage/app-topology/Multiple%20instances.png) - - -## edit mode - -Editing the topology map currently supports: establishing or canceling dependencies for service component connections, opening or closing external ports of service components, which is convenient and fast; - -* delete action - -Click the connection line and press the `delete` button to quickly delete the component dependencies and close all external ports of the service component, which is convenient and quick; - -* add action - -Click and drag the focus from the start point to the end point to establish a dependency between two components or open external network access. - -## Aggregation mode - -In the actual use of the enterprise, the components of one application often depend on the components of other applications. At this time, the topology map information seen by the user will be large and cluttered, and it is impossible to quickly distinguish the applications to which other components belong.At this time, for the user, the dependencies between multiple applications are not clear.To address this issue, we have added a topology graph aggregation mode.In this case, the dependencies between multiple applications can be displayed more clearly. - -In normal mode, you can see that the application depends on multiple components, but we are not clear about the relationship between these components. - -![img](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/community/change/topology-normal.png) - -We switch to aggregation mode, and we can see that the relationship between components and other applications is clear. - -![img](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/community/change/topology-polymerization.png) - -Click on the topology map of the Gitlab application, we can know the running status of the application and the information of the dependent components. - -![img](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/community/change/topology-polymerization.png) - - - -## Topology Component Operations - -By clicking on the component, the user can perform cluster operations on the component in the pop-up component basic information box, including accessing the component, entering the Web terminal, updating the component, closing the component, and deleting the component.Users can quickly operate the component according to these buttons, and the container information in the component is displayed below. - -![img](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.6/community/change/topology-detail.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/index.md deleted file mode 100644 index 1ebd71e781..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Application overview -description: Application overview ---- - -## Application overview introduction - -The application overview view contains the basic information of the entire application, making it easier for application managers to check the status of the application. - -![](https://static.goodrain.com/docs/5.6/use-manual/app-manage/overview/overview.png) - -The application overview details are as: - -| | introduce | -| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| [Application Name](#应用名称修改) | Show app name | -| Application resource monitoring | Show the CPU, memory, and disk used by all components in the application | -| [application life cycle](/docs/use-manual/app-manage/overview/operation) | Application lifecycle management, batch activation, deactivation, update, build, etc. | -| [Application topology](/docs/use-manual/app-manage/overview/app-topology) | Apply topology map management, manage dependencies between components, add and delete | -| [add components](/docs/use-manual/app-manage/overview/add-service) | Adding components in the app has the same effect as adding components in the team view | -| [Operating components](/docs/use-manual/app-manage/overview/app-topology#拓扑图组件操作) | Perform basic operations on components and display basic information through topology diagrams. | - - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` - - - -## App name modification - -Click the application name to modify it, but the English name cannot be modified. \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/deploy-istio.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/deploy-istio.md deleted file mode 100644 index 1829b2d480..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/deploy-istio.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Istio Network Governance Model -description: Using the Istio Network Governance Model in Rainbond ---- - - -In Rainbond, users can set different governance modes for different applications, that is, users can manage applications on demand by switching the governance mode of the application. The advantage of this is that users can not be bound by a certain ServiceMesh framework. , and can quickly trial and error, can quickly find the most suitable ServiceMesh framework for the current business. - -In the current version of Rainbond, Istio exists in the "plug-in" mode. When the user needs to use the Istio governance mode, if the Istio control plane is not installed, a prompt will be prompted to install the corresponding control plane.Therefore, the Istio control plane needs to be deployed before use. The control plane only needs to be installed once in a cluster. It provides a unified upper-level operation and maintenance entry, which will be used to manage services working in the Istio governance mode, complete configuration distribution, etc. Function.Combined with Rainbond's existing helm installation method, we can easily install the corresponding components. - -## Deploy the Istio control plane - -### Preparation - -- Create a team - -In Rainbond v5.5.0, we support users to specify a namespace when creating a team. Since the default helm installation namespace is istio-system, in order to reduce user configuration, we first need to create a corresponding team.As shown in the figure below, the English name of the team corresponds to the namespace of the team in the cluster.Fill in `istio-system` here. - -![image-20211212203716453](https://ghproxy.com/https://raw.githubusercontent.com/yangkaa/images/main/works/image-20211212203716453.png) - -- Docking store - -Rainbond supports direct deployment of applications based on helm, so the next step is to connect to the official Rainbond helm warehouse, and then deploy Istio based on the Helm store. On the application market page, click Add store, select the helm store, and enter the relevant information to complete the connection. - -Store Address:https://openchart.goodrain.com/goodrain/rainbond - -![image-20211212203208140](https://ghproxy.com/https://raw.githubusercontent.com/yangkaa/images/main/works/image-20211212203208140.png) - - - -### Install the Istio control plane - -Currently, the Istio version provided by Rainbond's official Helm store is`1.11.4`According to [Istio official documentation](https://istio.io/latest/docs/releases/supported-releases/), the required Kubernetes cluster version for this version is:1.19, 1.20, 1.21, 1.22. If your cluster is based on Rainbond official documentation Deployments already meet the version requirements. - -- Install the base app - -Select the`base`application in the helm store to deploy, and select the previously created team. This application mainly deploys Istio-related cluster resources and CRD resources. - -![image-20211212204419466](https://ghproxy.com/https://raw.githubusercontent.com/yangkaa/images/main/works/image-20211212204419466.png) - -Click**to confirm**and then enter the base application interface. There is no need to modify the configuration. Just click the**Install**button at the bottom of the page. When the**Deployed**button appears at the top of the page, the installation is complete. - -![image-20211212204419466](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/base.png) - - - -- Install istio-discovery - -Like the above base applications, choose the right team and install the `istio-discovery`application. With these two applications, you can have the basic governance capabilities of Istio. - -- install prometheus - -In Istio, each component allows Prometheus to periodically capture data by exposing the HTTP interface (using the way of Exporters).Therefore, after the Istio control plane is installed, Prometheus needs to be deployed in the istio-system namespace, and the data source of each relevant indicator of the Istio component is configured in Prometheus by default. - -As with the base app above, select the correct team and install the `Prometheus`app. - - -- install kiali - -Istio provides a unified visual interface Kiali for us to view related services and configurations, which can display service topology relationships and configure services in the visual interface. - -As with the base application above, select the correct team and install the kiali-operator application. - - -The installation process will automatically create a Service, and the access port of kiali can be exposed in the form of a third-party component of the Rainbond platform.as shown below: - -![image-20211212212924071](https://ghproxy.com/https://raw.githubusercontent.com/yangkaa/images/main/works/image-20211212212924071.png) - -| configuration item | value | -| ----------------------------- | ------------ | -| component name | customize | -| Component English name | customize | -| Component registration method | Kubernetes | -| Namespace | istio-system | -| Service | kiali | - - -Add an access port in the port interface, after adding, open**external service**and use the generated gateway policy to access - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/port.jpg) - - -kiali requires an authentication token when logging in, use the following command to get token: - -``` -kubectl describe secret $(kubectl get secret -n istio-system | grep kiali-token | awk '{print $1}') -n istio-system -``` - -If there is no kubectl command, please refer to[Command Line Tools](/docs/ops-guide/tools/#kubectl)document to install. - -Obtain the token and log in to the kiali visualization interface. At this point, the deployment of the Istio control plane is completed. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/dashboard.jpg) - - - -### Using the Istio network governance model - -**1. Switch governance mode** - -Let's take the SpringBoot background management system[Ruoyi](https://gitee.com/y_project/RuoYi)as an example, as shown in the figure below, users can first install a`Ruoyi SpringBoot`application from the open source application store, select the version 3.6.0, click the governance mode switch, and select the Istio governance mode. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/network.jpg) - -After clicking to switch to the Istio governance mode, the user needs to manually set the internal domain name. The internal domain name here will be the service name of the component in the Kubernetes cluster, which is unique under the same team.Here we modify it to a more readable internal domain name. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/model.png) - -**2. Modify the configuration file** - -After this step is completed, we also need to go to `ruoyi-ui` to mount a new configuration file.This is mainly because by default, the backend service address in the nginx configuration file `web.conf` of`ruoyi-ui` is 127.0.0.1, which was available when Rainbond's built-in ServiceMesh mode was used. - -However, when the Istio governance mode is used, the components communicate through the internal domain name, so the corresponding proxy address needs to be modified by mounting the configuration file. The configuration file of`ruoyi-ui` can be accessed through the `Web terminal` on the upper right to access the container , copy the contents of the file `/app/nginx/conf.d/web.conf`.After modifying the proxy address, save it, as shown in the following figure.Earlier we set the internal domain name of the console to `ruoyi-admin`, so replace it with `ruoyi-admin`here. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/conf.jpg) - -**3. Restart the app** - -After completing the above two steps, we need to restart the entire application.After starting the application, go to the component page to view, you can see that each component has a similar sidecar container, which is the data plane of Istio. After the application is switched to the Istio governance mode, all components under the application will be automatically injected into the corresponding The Sidecar container does not require additional user setup. - -So far, the application has been included in the scope of Istio governance. If users need more configuration of the application, they can refer to [Istio official document](https://istio.io/latest/docs/setup/getting-started/#dashboard) for expansion. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/dataplane.png) - -**4. Service observability expansion** - -Access the kiali visualization interface, in the Applications column, select the namespace where the application is located, you can see the application we created before, click to enter, you can see the following traffic route. - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/overview.png) - -In the Graph column, you can also see the corresponding in-app traffic requests.For more configuration and related functions, please refer to [Kiali official documentation](https://kiali.io/docs/installation/quick-start/). - -![](https://grstatic.oss-cn-shanghai.aliyuncs.com/docs/5.5/user-manual/app-manage/deploy-istio/display.png) - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/governance-model.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/governance-model.md deleted file mode 100644 index c1e02d8f4d..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/model/governance-model.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Application governance mode switch -description: Switch between Rainbond built-in ServiceMesh mode and Kubernetes native service mode ---- - -### Governance Mode Switch - -Since the V5.3 version of Rainbond, the application management mode switching function has been added.The application governance mode mainly refers to the governance of the communication mode between components. Currently, it supports the built-in ServiceMesh mode and the Kubernetes native Service mode. - -- Built-in ServiceMesh mode (default) - -The built-in ServiceMesh mode requires dependencies between configuration components displayed by the user. The platform will automatically inject sidecar containers into downstream components to form a ServiceMesh microservice architecture. The communication addresses between services are unified in the localhost (127.0.0.1) mode.As the default application governance mode in Rainbond, governance functions such as A/B testing, intelligent routing, current limiting, and fusing between service components are implemented through sidecar.For more information, please refer to [Inter-service communication](/docs/use-manual/component-manage/component-connection/regist_and_discover), [Component A/B testing based on Rainbond](/docs/expand/practices/app-dev/ab_testing) - -- Kubernetes native service mode - -In this mode, the Kubernetes service name and domain name are used for communication between components. Users need to configure the service name registered by each component port, and the governance capability is limited. - - -### The effect of switching - -For users, when switching to different application governance modes, the most important thing to pay attention to is the change in the way components access each other.The newly added Kubernetes native Service mode means that users can access the corresponding service components by using the Service name in native Kubernetes. - -### How to switch - -The entry for switching the application governance mode is located in the application topology view.At **governance mode** , you can switch between the two application governance modes. - -![Switch governance mode](https://static.goodrain.com/docs/5.3/user-manual/governance-model/governance-model-1.png) - -If you switch from the built-in ServiceMesh mode to the Kubernetes native Service mode, you need to define the **internal domain name**of all ports that open inbound services under the current application. - -![Define internal domain names](https://static.goodrain.com/docs/5.3/user-manual/governance-model/governance-model-2.png) - -**The internal domain name** is the globally accessible address of the port. - -**Simply put, the domain name defined here will be resolved to the CLUSTER-IP address of the Service in the entire cluster.** - -```bash -$ kubectl get service -A -NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) -9dcf3ab241c445afad7a9a90b1b7c9a7 gr12238e-80-dbeb ClusterIP 10.43.234.35 80/TCP -``` - -### Changes to Communication Variables - -If you don't understand what a communication variable is, please read [Communication Variable Injection](/docs/use-manual/component-manage/component-connection/connection_env). - -Compared with the default built-in ServiceMesh mode, there are still communication variables in the Kubernetes native Service mode.The difference is that the value of the communication variable is no longer fixed to the local loopback address of 127.0.0.1, but becomes the internal domain name mentioned above.This change is for the convenience of users who use communication variables to determine dependencies. Without changing the configuration, they can still use communication variables to complete calls between components normally. - -```bash -# The 80 port of the APP2 component in the example, its communication variable becomes the following form -NGINX_HOST=gr12238e-80-dbeb -NGINX_PORT=80 -``` - -### Dependency changes - -Even though the Kubernetes native Service pattern no longer requires dependencies to provide sidecar plugins to communicate between components, dependencies still have their value. - -- The application topology diagram presented by dependencies is very intuitive and beautiful. - -- Dependencies can be used to pass communication variables, so that users can normally use communication variables to complete calls between components without changing the configuration. - -### Switch to istio governance mode - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/operation.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/operation.md deleted file mode 100644 index b40def3738..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/app-manage/overview/operation.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: application life cycle -description: Describe the basic operations of Rainbond applications ---- - -## Supported base operations - -| Operation type | condition | illustrate | -| -------------- | ----------------------------------------------------- | ---------------------------------------------------------------- | -| start up | The component is closed under the current application | Start the built-in component of the current application | -| stop | All current applications are running | Close all components of the current application | -| Construct | - | Build new versions and upgrades for all components under the app | - -Application-level basic operations differ from component batch operations as follows: - -| Contrast | Component batch operations | Apply basic operations | -| ------------------------- | -------------------------------------- | ------------------------------ | -| launch control | Batch out-of-order start | Start in order of dependencies | -| Operational target | user-specified components | All components under the app | -| Supported operation types | Shutdown, Restart, Start, Move, Delete | build, start, stop, | diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/other/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/other/index.md deleted file mode 100644 index 789cabf933..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/other/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Component other settings -description: Component other settings function module introduction ---- - -## Component deployment type - -- Stateless service (Deployment type) is generally used for components such as Web classes and API classes - -- Stateful service (Statefulset type) is generally used for DB classes, message middleware classes, and data class components - -- Task (Job type) is generally used for one-time tasks, and the container exits after completion -- Periodic tasks (Cronjob type) is generally used to process periodic tasks that need to be executed repeatedly - -## Component Health Check - -The health check is to actually reflect the running status of the component business.In the case of not configuring health detection, the running state of the component is determined by the state of the container (process), that is, the component is considered to be in the Ready state if the container is successfully started.Component instances in the Ready state are immediately added to traffic processing.However, we all know that most of the program business needs startup time. It takes a while from startup to ready to process business. Generally, the more complex the component, the longer it takes.Components that are not ready to accept business requests will cause some requests to fail.Especially during the rolling upgrade of components, for stateless components, the platform implements a mechanism to first start a new instance to receive traffic, and then close the old instance, if the health status of the component is not accurately reflected.The effect of rolling upgrades will be greatly reduced.Startup Therefore, we need a mechanism to verify the true state of the component as much as possible, which is the component health check. - -Currently, component health detection supports the following two mechanisms: - -- TCP port detection This detection method is to try to establish a TCP connection with the port configured by the component. If it is established normally, it is considered to be in a healthy state. -- HTTP service detection Port establishment and monitoring does not fully represent the normal service. Therefore, for HTTP services, you can request the specified route to judge the health status of components according to the status code.This mode is more precise. - -After a component is started, it must go through a health check to indicate the state of the component. When the component is unhealthy, there are two processing methods: - -- set component as unhealthy - -> When a component instance is set as unhealthy, it will be taken offline from the Application Gateway and ServiceMesh network.Wait for it to work properly and automatically go online again.But if the component has only one instance, Rainbond will not take it offline. - -- Restart the component instance - -> Some components may form a deadlock process due to code blocking and other reasons, and the components cannot be provided but the process still runs.The unhealthy state of such components can only be handled by restarting the instance. - -Therefore, the user can choose the appropriate processing method according to the business status. - -### Operating procedures - -Component health checks are configured on the _Component Control Panel/Other Settings_ page. - -1. Click the edit button of health check, the pop-up window will display the configuration items of health check. - -- Port:selects the port for the component to perform health detection. If the actual detection port of the component does not exist in the options, please go to the port management page to add it. -- Probe protocol: According to the above, the protocol selection supports TCP and HTTP, and the subsequent setting items are somewhat different for different protocols. -- Unhealthy processing mode: defaults to "offline", and "restart" can be selected. -- The setting item: corresponding to the HTTP protocol can set the detected path and request header after selecting the HTTP protocol (for example, a Token request is required). Note that the routing request must return a status code less than 400 to be considered healthy. -- The initialization wait time:refers to the time to wait for the component instance to start before starting the detection, and the default is 4 seconds. -- The detection interval time:refers to the time interval between two consecutive detection tasks. -- Detection timeout:If the request is blocked when a problem is encountered when detecting the request, the timeout will take effect. -- The number of consecutive successes of:refers to the number of consecutive successful detections when the component instance is marked as healthy. - -The above information is filled in according to the actual situation. After saving, the component health detection mechanism needs to be updated to take effect. - -2. Enable/disable health check - -In special cases, the developer may need to temporarily disable the health check to keep the component in a healthy state.Health detection can be enabled/disabled using.After the modification, you need to update the components to take effect. - -## kubernetes properties - - The difference from the attribute defined in kubenetes is that when the attribute is in yaml format, there is no need to fill in the attribute name at the beginning -### Attribute introduction -#### nodeSelector - Used to schedule the Pod to the Node that matches the Label. If there is no matching label, the scheduling will fail. - -#### labels - It is a key-value pair identifier attached to a k8s object, which supports efficient search and monitoring.The function is literally, to label the k8s object, we can use the label to select the object - -#### volumes - Persistent storage of data, the format of volumes defined in k8s is - ```yaml - volumes: - - name: config-vol - configMap: - name: log-config - items: - - key: log_level - path: log_level - ``` - When adding properties on the platform, you do not need to define volumes at the beginning, such as the following format - ```yaml - - name: config-vol - configMap: - name: log-config - items: - - key: log_level - path: log_level - ``` -#### volumeMounts - Mount volumes, the format of volumeMounts when it is defined in k8s is - ```yaml - volumeMounts: #mount point - in the container - mountPath: /data - name: redis-data #must have a name - ``` - When adding properties on the platform, you do not need to define volumeMounts at the beginning, as in the following format - ```yaml - - mountPath: /data - name: redis-data - ``` -#### affinity - For details, please refer to the official k8s documentation https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/ - - Affinity scheduling, the format of affinity defined in k8s is - - ```yaml - affinity: - nodeAffinity: # Scope:between Pod and Node - requiredDuringSchedulingIgnoredDuringExecution: # Node affinity-hard strategy - nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: NotIn - values: - - node3 - ``` - When adding properties on the platform, you do not need to define affinity at the beginning, such as the following format - ```yaml - nodeAffinity: # Scope:between Pod and Node - requiredDuringSchedulingIgnoredDuringExecution: # Node Affinity - Hard Policy - nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: NotIn - values: - - node3 - ``` -#### tolerations - For details, please refer to the official k8s documentation https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ - - Tolerance, the format of tolerances when they are defined in k8s is - ```yaml - tolerations: - - key: "key1" - operator: "Equal" - value: "value1" - effect: "NoSchedule" - tolerationSeconds: 3600 - - key: "key1" - operator: "Equal" - value: "value1" - effect: "NoExecute" - ``` - There is no need to define tolerations at the beginning when adding properties on the platform, such as the following format - ```yaml - - key: "key1" - operator: "Equal" - value: "value1" - effect: "NoSchedule" - tolerationSeconds: 3600 - - key: "key1" - operator: "Equal" - value: "value1" - effect: "NoExecute" - ``` - -#### serviceAccountName - Configure the service account. For details, please refer to the official k8s documentation https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-service-account/ - -#### privileged - Determines whether a container in a Pod can enable privileged mode. By default, containers cannot access any devices on the host, but a "privileged" container is granted access to all devices on the host. Such a container has almost all the access rights of a process running on the host. - -#### env - For details, please refer to the official k8s documentation https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/ - - Environment variables, the format of env when it is defined in k8s is - - ```yaml - env: - - name: Version - value: v5.8 - - name: NGINX_USERAEM - valueFrom: - secretKeyRef: - name: nginx-secret - key: username - optional: false - - name: NGINX_PASSWORD - valueFrom: - secretKeyRef: - name: nginx-secret - key: password - optional: false - - name: MY_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - ``` - When adding properties on the platform, you do not need to define env at the beginning, such as the following format - ```yaml - - name: Version - value: v5.8 - - name: NGINX_USERAEM - valueFrom: - secretKeyRef: - name: nginx-secret - key: username - optional: false - - name: NGINX_PASSWORD - valueFrom: - secretKeyRef: - name: nginx -secret - key: password - optional: false - - name: MY_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - ``` - - -## common problem - -- Request failure during component rolling update - -> When this problem occurs, it is strongly recommended to set more precise health detection rules, such as using HTTP mode. - -- How components of other protocols set up health checks - -> More application layer protocols such as Mysql and Redis currently do not support accurate detection. Please select TCP mode.In the future, we will add the method of `cmd` for detection, which can better support different types of components. - - -## Component feature management - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/basic-operation.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/basic-operation.md deleted file mode 100644 index 521f068d0a..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/basic-operation.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Component Basic Operations -description: Rainbond component basic life cycle operation instructions document ---- - -### Component Basic Operation - -First, a basic description of the operations that the component can perform: - -| Basic operation | illustrate | -| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Construct | The build action will trigger the component to fetch the latest code from the build source or mirror the new version of the build component, and by default a rolling upgrade will be triggered after a successful build. | -| Update (rolling upgrade) | The update operation will perform a rolling upgrade of the component instances running in the cluster with the latest component property configuration | -| start up | Components with at least one available build can start | -| stop | When the component stops, all cluster resources are released | -| access | The running component can be accessed. If it is an HTTP component, it will jump to the access URL. If it is not HTTP | -| web terminal | Enter the current component web terminal control page, select the container to be controlled to open the container control terminal | -| reboot | The running component can be restarted. Under normal circumstances, we recommend using the update operation to complete the component restart. If any properties of the component have not changed, the update cannot be used. | -| Modify the owning application | Components can be flexibly adjusted to the application they belong to | -| delete | Removing a component is a dangerous operation, please proceed with caution.Persistent data is retained for 7 days by default after a component is deleted. | - -### build operation - -> Applies to any state of the Scenario:component - -For different types of components, after triggering the `build` operation, they have different meanings. The following table explains the different types of components.: - -| component type | illustrate | -| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Components built from source | Pull the latest source code, build component versions based on pre-identified language types, and perform rolling upgrades | -| Components built from Docker images | Re-pull the mirror of the specified mirror address, build a new version of the component and perform a rolling upgrade | -| Components built from cloud market applications | If there is no updated version of the cloud market application, the build operation will remind the user that no operation is required. If there are multiple updated versions, the user will be prompted to select the version number to be obtained.Get component media to generate builds based on selected versions and perform rolling upgrades | - -- The Dockerfile source code component is a service created by placing the Dockerfile and the required files in the code repository (Git/Svn). -- After the build, if everything goes well, the component will automatically switch to the new version and go online. The build operation defaults to update and upgrade, or you can set the process of not upgrading after build in other settings. -- The rolling upgrade process has no effect on multi-node components in theory. For single-node components, if the business-level [health check](/docs/use-manual/component-manage/other/) is normally configured, the upgrade can be achieved without impact. -- For a component in a closed state, after triggering the build operation, if the build is normal, the platform will run the component. - -#### Attributes Supported by Cloud Market Component Upgrade - -When upgrading cloud market components, not all attributes support the upgrade; when upgrading, the processing methods of various attributes will be different. The details are shown in the following table: - -| Attributes | Whether to support upgrade | Metadata (upgrade method) | illustrate | -| -------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Instance options | Yes | renew | | -| memory options | Yes | renew | | -| dependencies | Yes | Increase | If the dependent components are in the same application, add the dependency; otherwise, do not process | -| port | Yes | update, increase | For port upgrade, existing port information can be updated, or new ports can be added; but existing ports cannot be deleted | -| storage | Yes | Increase | For storage upgrade, only new storage can be added; existing storage cannot be deleted or modified | -| Health check | Yes | renew | For the upgrade of health check, the existing health check information can be modified, but cannot be deleted or added (a component can only have one health check information) | -| mirror | Yes | renew | Change directly to the new mirror | -| environment variable | Yes | Increase | The upgrade of environment variables only supports adding new environment variables; cannot modify or delete existing environment variables | -| startup parameters | Yes | renew | | -| dependent storage | Yes | If the component where the dependent storage is located is in the same application, add the dependency; otherwise, do not process it | | -| With or without state type | no | | | -| Label | no | | | - -### update operation - -> Using Scenario:Runtime Components - -When the dependencies, storage, environment variables, features, health monitoring and other running properties of components are changed, you must manually trigger the update operation to configure the latest properties in the running environment of the applied components. In this update process, rolling upgrade is adopted by default. The strategy for upgrading component instances. - -There are two types of control strategies for rolling: - -- stateless components - -For stateless components, an out-of-order start-and-stop strategy is adopted, that is, the running instance of the new version is started first, and the running instance of the old version is shut down when it is in a healthy running state.It should be noted that in this process, multiple versions will work at the same time. If your business component cannot tolerate multiple versions working at the same time, please use the restart strategy. - -- stateful components - -For stateful components, an orderly shutdown and then stop strategy is adopted, that is, according to the running instance number, the first instance is closed first and then the new version instance is started. - -This control is critical for components like database, so do not deploy database-like components as stateless components. - -### start action - -> A component that is successfully built using scenario:and is in a closed state - -The startup operation will start the last successfully built component version. After startup, you can see the detailed operation log of the platform scheduling and processing components in the `operation log` of the component overview page. When the scheduling is completed, the component will enter the startup phase. View the startup log of the component through the `log` page. - -Especially for the components that are started in Rainbond for the first time, the following points should be paid attention to: - -1. What if the component startup or update times out? - -> At present, Rainbond has determined a fixed timeout for asynchronous tasks, so please note that the timeout is not a failure. You need to optimize the configuration of the components according to the actual situation. If there is a timeout, please check according to the following path: -> -> - Query [component log](../service-log#组件运行日志) to determine the startup status of the component. If your component log is not output to stdout or stderr, please enter the component container to query your log.For example, for some Java components, if the allocated memory is insufficient, the startup will be very slow, or it may be found from the log whether the component running environment is normal, such as depending on the database, and whether the database can be accessed normally. -> - If the component built from source code does not enter the normal business startup process for a long time after startup, please optimize the code and ignore the redundant source code files to reduce the time of running code decompression. Refer to [slugignore file usage method](/docs/use-manual/component-create/language-support/slugignore) -> - Make sure that the address the component is listening on is not 127.0.0.1 or localhost -> - If the component listening address is correct and has been monitored normally, please check whether the [component health check](/docs/use-manual/component-manage/other/) configuration is correct. Generally, if the component has multiple ports, the default configuration error is likely to occur. -> - If the possible faults of the above components have been eliminated or the startup has timed out and has been in the startup state, use the operation and maintenance tools `grctl cluster` and `grctl service get -t ` to query the actual running status of the cluster and components. - -1. What should I do if the component runs abnormally? - -> The abnormal operation of the component refers to the abnormal exit of the component process. Generally, there are several reasons.: -> -> - Component code failure, not functioning properly -> - The component uses an unsupported image, such as the base OS image, which cannot be daemonized in the foreground. -> - Insufficient memory allocation of components causes OOM -> - The component health check configuration is incorrect, causing the component to fail the health check. -> -> In the above case, please handle your component configuration. If Rainbond exits abnormally during the running of the component, it will automatically guard and restart your component. - -1. What if the component cannot be accessed? - -> When the component cannot be accessed, please check the following reasons: -> -> - The component is not running normally, confirm it according to the running status and the component log -> - The component port configuration is incorrect, the component port configuration must be consistent with the actual listening port of the component -> - The component accessible port is not open to the external component switch -> - The component is not configured with a properly accessible domain name - -### close operation - -> Use scenario:components that are running or running abnormally - -After the shutdown operation is triggered, the component will first go offline from the application gateway or ServiceMesh network, and then shut down all running instances to release cluster resources. - -### restart operation - -> Use scenario:components that are running or running abnormally - -After the restart operation is triggered, the platform will shut down all the existing component running instances, and start it after the shutdown is complete.If a shutdown timeout occurs, the restart operation will exit and control of the component startup will be passed to the user. - -- Restarting the component does not update the component code or image, which needs to be distinguished from the`build`operation. -- Restart operation breaks components - -### access operation - -> Use component && running in scenario:(outbound component | inbound component port open) - -For components of different protocols, the commands triggered after clicking the access button are also different: - -| Component Agreement | Action after clicking the access button | -| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| HTTP | Open a new window of the browser and open the default domain name of the component. If multiple domain names are bound, a list of domain names will be displayed for the user to choose. | -| TCP | Pop-up access information window | - -- HTTP protocol components - - - -- TCP protocol components - - - -Copy the recommended access address to the browser to access diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/index.md deleted file mode 100644 index 13575f1c39..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Overview -description: Component overview ---- - -## Component overview - -The component overview view contains the basic information of the component, which is more convenient for component managers to check the status of the component. - -![](https://static.goodrain.com/docs/5.6/use-manual/component-manage/overview/overview.png) - -The component overview display information is as: - -| | introduce | -| --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| component name | The component name can be modified, but the English name of the component cannot be modified | -| [Component Basic Operation](/docs/use-manual/component-manage/overview/basic-operation) | Operation component start, stop, update, web terminal, etc. | -| [component life cycle](/docs/use-manual/component-manage/overview/service-properties) | Display the running status of the component, in the form of `text,`/`block dynamic` | -| operation hours | Display component running time | -| Memory | Displays the memory size allocated by the component in MB | -| disk | The size of the disk occupied by the display component | -| version number | The version number of the component, corresponding to the tag of the component image | -| build source | Different build sources display different information, for example, components from image creation will display warehouse address, image name, tag | -| [Operation record](/docs/use-manual/component-manage/overview/operation-log) | Record operation logs, build logs, etc. | - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/operation-log.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/operation-log.md deleted file mode 100644 index bc1951c391..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/operation-log.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Component Operation Record -description: Component Operation Record ---- - -### Component Operation Record - -In the component overview page, the operation history of the component and the log records of each operation are presented, especially the log of the build operation. You need to pay attention to the log of the build operation. When the build fails, please check the reminder content of the log output to guide the user to correct the irregularity of the code. Improve. - -The operation log of a component is also a record of operations performed on the component, which facilitates collaboration and operation review among multiple users. - -![Running log interface](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/5.2/user-manual/app-service-manage/service-log/Operation%20log.png) - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/service-properties.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/service-properties.md deleted file mode 100644 index e5296ddcbf..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/component-manage/overview/service-properties.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: component life cycle -description: Documentation for Rainbond basic properties ---- - -This article explains the attributes and nouns related to applications, so that you can understand the concept of applications more clearly. - -### Status of service components - -Once the service component is created, it enters the life cycle of the service component. There will be a series of states in the entire life cycle, and each state will be explained below.Most states have a preset timeout period. Regardless of whether the timeout period is exceeded, after **3 minutes** , all life cycle operations can be performed on the service component again:: - -| state | illustrate | -| ------------------------------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| under creation   | A newly created service component, in the setup phase. | -| under construction   | The newly created service component setup is complete, and the first service component version build is in progress.The source code build time-out time is 1 hour, and the Dockerfile build time-out time is 30 minutes.**timeout does not mean the build failed**, refer to the build log to understand the current progress. | -| scheduling   | Once the service component is constructed, it will enter the scheduling state, and the color of the**instance is yellow**.In this process, the K8s assigns the host to schedule the instance.If it remains in this state for a long time, it may be because there are no host nodes to run the component. | -| starting   | Service component is starting,**instance color is yellow**.It cannot be accessed temporarily. The startup is divided into two stages, process startup and business startup. If the health check at startup is not configured, as long as the process startup is completed, the startup is considered successful.The startup timeout is 40 seconds * number of instances.**startup timeout does not mean startup failed** | -| wait to start | The waiting state and the starting state will not appear at the same time. Once the waiting state is entered, the color of the**instance is yellow**.Indicates that other service components that the current service component depends on have not been started.You need to wait for the other service components it depends on to start to complete before the current service component enters the starting state. | -| running   | All running instances of the service component are in the running state, and the color of**instances is green**.Normally, the running service components can be accessed, or the application may be temporarily unavailable due to slow business startup. | -| abnormal operation   | If the number of normal instances of the service component is less than the total instances, it indicates that the application is running abnormally, and the color of**abnormal instances is red**.For multi-instance service components, the service components in the abnormal state can provide services as long as there are normal instances.Instance exceptions are mostly due to the abnormal exit of the service component itself or an OOM exit due to insufficient memory.The platform will automatically try to restart the abnormal instance.More application information can be viewed by viewing the service component log, or through command line tools | -| during upgrade | The service component is in the process of rolling update,**instance color is yellow**.Service components with multiple nodes in their current state can be accessed normally.The upgrade timeout is 3 minutes * number of instances.**upgrade timeout does not mean upgrade failure** | -| closed | The service component has stopped running, and persistent data still exists.The shutdown timeout is 40 seconds * number of instances.If it is in the state of **shutdown and** for a long time, and the color of the**instance is black**, please contact the operation and maintenance colleagues. | -| unknown | **The instance color is light blue**, the service component in this state may be due to network blockage, failure to obtain the status of the service component, or abnormal back-end services.You can try to refresh the page. If it cannot be resolved, please contact the operation and maintenance colleagues. | - -### version of the app - -Versions are marked differently for different:of applications0 - -| App types | Version Information | Example | -| ------------------------ | --------------------------------------------------------------------------------- | -------------- | -| Source build | Pull the code from the code repository to build the time stamp of the application | 20180803171811 | -| Docker image | Mirror tag information | 1.15.2-alpine | -| Cloud Market Application | App version | 5.6.7 | diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/cluster-manage/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/cluster-manage/index.md deleted file mode 100644 index 7a649aede0..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/cluster-manage/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Cluster management -description: Cluster management ---- - -## Dashboard-based operation and maintenance - -Reference document [Dashboard-based operation and maintenance](/docs/ops-guide/management/dashboard-op) - -## Add a cluster - -Reference document [Web-based installation](/docs/installation/install-with-ui/) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/overview/overview.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/overview/overview.md deleted file mode 100644 index 881bc3ea70..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/enterprise-manage/overview/overview.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Enterprise overview -description: A note on the statistics on the company overview page ---- - -## Enterprise View Page - -The enterprise view interface will display `overview, application market, team, cluster, user, and setting` information in the Rainbond platform. Only the enterprise administrator can see it. Through the enterprise view, you can quickly understand the basic information of the current Rainbond platform. - -![Enterprise view](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Overview.png) - -| Function | Introduction | -| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Overview | Display`enterprise information, applications, components, teams, cluster resources`and other information | -| application market | Show the application model under the enterprise, which is the application product of enterprise digital assets, and can be installed on any Rainbond platform or other supported cloud native platforms in a standard way, see [Application Market](/docs/use-manual/enterprise-manage/appcenter/) | -| team | In Rainbond, a team is a concept of a collection of resources, see [Team Management](/docs/use-manual/enterprise-manage/teams/create-team) | -| cluster | In Rainbond Enterprise Edition and Public Cloud Edition, an enterprise can connect to multiple clusters, see [Management](/docs/use-manual/enterprise-manage/cluster-manage/) | -| user | Display enterprise user information,`add, delete, modify users, password` , etc., see [User Management](/docs/use-manual/enterprise-manage/user-manage/) | -| set up | `Platform basic settings`and`Enterprise administrator management`, see [Enterprise settings](/docs/use-manual/enterprise-manage/enterprise-settings/) | - -## Favorite function - -> The favorite function can help you quickly enter the component management interface - -The following takes`test team`,`test application`,`nginx component`as an example to demonstrate how to quickly enter the nginx component through the collection function. - -The current location is the management interface of the nginx component. Click the navigation symbol in the upper left corner to see the favorites function in the menu bar. Click`+`to add favorites. - -![collect](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Collection.png) - -Fill in the name and click OK to complete the collection - -![collect](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Add.png) - -After the addition is complete, click the navigation symbol in the upper left corner of any page of the rainbond platform to find the favorite components, and click to quickly enter the nginx component management interface. - -![collect](https://static.goodrain.com/docs/5.6/use-manual/user-manual/dashboad/Success.png) - -**For favorite items that are no longer needed, click the`-`number behind the corresponding favorite item to delete** diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/app-create.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/app-create.md deleted file mode 100644 index ef948d6594..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/app-create.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Create an app -description: Take you through application creation ---- - -Follow this document for reasonable application planning and creation based on your business scenarios. - -## Preconditions - -1. The planning and creation of the team has been completed. -2. Understand the concepts and planning methods of Rainbond [application](/docs/use-manual/get-start/concept/app). - -## Create an app - -Application creation accompanies the whole process of developers using Rainbond. Reasonable division of applications is intuitive and important for developers and operation and maintenance personnel to effectively manage business systems. - -The process of creating an application is as follows: - -1. Go to the `Team View/Overview` page and click New Application. -1. Fill in the app name, app English name, logo, and remarks to complete the app creation. - -> The creation of applications can be performed on demand, that is, editing and adding in multiple scenarios such as installing from the component library, creating components, copying applications, and migrating applications. - -In `V5.6.0` version, `application English name`,`application Logo`were introduced. - -* The English name of the application corresponds to the control body and Pod name, such as: - * The English name of the application is `myapp` , the English name of the component is also `app1`, then the Pod is `myapp-app1-xxx` -* The application logo displays the `Logo`of each application on the team overview page. - - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/index.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/index.md deleted file mode 100644 index 8b9850b784..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: 'Application management' -description: 'Introduce team view app overview and app creation' ---- - - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/overview.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/overview.md deleted file mode 100644 index e7eb9fd73e..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/app-manage/overview.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Application overview -description: Introduce the basic information of the application overview ---- - -## Application Management Overview - -The application management module in the team view displays the basic information of all applications in the team, which is convenient for team administrators to quickly view. - - - -| | introduce | -| ------------------------------------- | -------------------------------------------------------------------------- | -| Application Name | The name of the application, which can be modified within the application | -| update time | In-app last operation time | -| creation time | The time when the app was created | -| Components (run/total) | Number of components running/total number of all components under the app | -| Occupied memory/allocated memory (MB) | Memory occupied by the component / memory allocated to the component in MB | -| Backup records | Counts the number of records originating from in-app backups | -| release record | Counts the number of records originating from in-app postings | -| Remark | Notes when creating an app, which can also be modified within the app | - diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/overview/overview.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/overview/overview.md deleted file mode 100644 index 757dfdb0b2..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/overview/overview.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Team overview" -description: Introducing the Team View Overview page ---- - -The team view clearly shows the application information owned by the current team. Through the team view, you can quickly enter the application management interface, and perform operations such as`build, delete, add`, etc. for in-app components. - -## Overview view - -![](https://static.goodrain.com/docs/5.6/use-manual/team-manage/overview/team-overview.png) - -| Show items | explain | -| --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Number of applications | Number of apps owned by the current team (running/not running) | -| number of components | The number of in-app components under the current team, including third-party components (running/not running) | -| use resources | The size of the memory used by all application components under the current team to run / the size of the amount of persistent data using local storage and shared storage | -| amount of users | The number of users under the current team | -| Application List | Display all the applications of the current team, display 12 applications on one page, and paginate if there are more | -| [App quick access](#应用快速访问) | This button provides quick access to the application domain name | -| [New application](/docs/use-manual/team-manage/app-manage/app-create) | Create a new application in the current team overview view | -## App quick access - -When a component in the application has external access enabled, you can directly access the application on the team overview page. - - - -:::tip - -When there are multiple components in the application that enable external access, the access is based on the first one in the gateway policy. - -::: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/team-manage/dynamic.md b/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/team-manage/dynamic.md deleted file mode 100644 index d8b18a3f91..0000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-manual/team-manage/team-manage/dynamic.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: dynamic -description: Introduce team dynamics ---- - - - -## Preconditions - -* Has team admin rights - -## Team dynamics - -Dynamically display the operation records of all applications and components in the team, which can be used for operation auditing. - -Approve users to join the team, pass/reject. - -![](https://static.goodrain.com/docs/5.6/use-manual/team-manage/team-manage/dynamic.png) \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 0c3dc55d86..7656cfe98b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -498,7 +498,7 @@ const sidebars = { }, { type: 'category', - label: '组件管理指南', + label: '组件管理', link: { type: 'doc', id: 'use-manual/component-manage/index' @@ -514,7 +514,6 @@ const sidebars = { items: [ 'use-manual/component-manage/overview/basic-operation', 'use-manual/component-manage/overview/service-properties', - 'use-manual/component-manage/overview/operation-log', ] }, { @@ -576,22 +575,12 @@ const sidebars = { 'use-manual/component-manage/build-source/change_source_type' ] }, - { - type: 'category', - label: '组件其他设置', - link: { - type: 'doc', - id: 'use-manual/component-manage/other/index' - }, - items: [ - 'use-manual/component-manage/other/index' - ] - }, + 'use-manual/component-manage/other/index' ] }, { type: 'category', - label: '应用管理指南', + label: '应用管理', link: { type: 'doc', id: 'use-manual/app-manage/index' @@ -607,7 +596,6 @@ const sidebars = { items: [ 'use-manual/app-manage/overview/app-topology', 'use-manual/app-manage/overview/operation', - 'use-manual/app-manage/overview/add-service', ] }, 'use-manual/app-manage/share-app', @@ -633,31 +621,13 @@ const sidebars = { }, { type: 'category', - label: '团队管理员指南', + label: '团队管理', link: { type: 'doc', id: 'use-manual/team-manage/index' }, items: [ - 'use-manual/team-manage/overview/overview', 'use-manual/team-manage/ns-to-team/ns-to-team', - { - type: 'category', - label: '应用管理', - link: { - type: 'doc', - id: 'use-manual/team-manage/app-manage/index' - }, - items: [ - 'use-manual/team-manage/app-manage/overview', - 'use-manual/team-manage/app-manage/app-create', - ] - }, - { - type: 'link', - label: '创建组件', - href: '/docs/use-manual/component-create/creation-process', - }, { type: 'category', label: '网关', @@ -703,7 +673,6 @@ const sidebars = { id: 'use-manual/team-manage/team-manage/index' }, items: [ - 'use-manual/team-manage/team-manage/dynamic', 'use-manual/team-manage/team-manage/team-user', 'use-manual/team-manage/team-manage/open-cluster', { @@ -724,13 +693,12 @@ const sidebars = { }, { type: 'category', - label: '企业管理员指南', + label: '企业管理员', link: { type: 'doc', id: 'use-manual/enterprise-manage/index' }, items: [ - 'use-manual/enterprise-manage/overview/overview', { type: 'category', label: '应用市场', @@ -758,7 +726,6 @@ const sidebars = { 'use-manual/enterprise-manage/teams/join-team', ] }, - 'use-manual/enterprise-manage/cluster-manage/index', { type: 'category', label: '用户管理', @@ -801,7 +768,7 @@ const sidebars = { }, { type: 'category', - label: '应用商店指南', + label: '应用商店', link: { type: 'doc', id: 'use-manual/app-store-manage/index' diff --git a/src/components/Bvideo/index.js b/src/components/Bvideo/index.js index 99d93b1a56..78a6b41092 100644 --- a/src/components/Bvideo/index.js +++ b/src/components/Bvideo/index.js @@ -2,18 +2,17 @@ import PropTypes from 'prop-types'; import React from 'react'; import styles from './style.module.css'; -function Bvideo({ src, bsrc }) { +function Bvideo({ src }) { return ( <> @@ -22,7 +21,6 @@ function Bvideo({ src, bsrc }) { Bvideo.propTypes = { src: PropTypes.string.isRequired, - bsrc: PropTypes.string }; export default Bvideo;