You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by de...@apache.org on 2022/10/13 16:10:59 UTC

[shenyu-website] branch main updated: [type: feature] helm docs (#802)

This is an automated email from the ASF dual-hosted git repository.

dengliming pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 697f9ed5c43 [type: feature] helm docs (#802)
697f9ed5c43 is described below

commit 697f9ed5c43fac8f5674c7aa4c07a1a7b51848b8
Author: gouzixing <44...@users.noreply.github.com>
AuthorDate: Fri Oct 14 00:10:53 2022 +0800

    [type: feature] helm docs (#802)
---
 docusaurus.config.js                               |  15 ++
 helm/index.md                                      | 186 +++++++++++++++++++++
 i18n/zh/code.json                                  |  10 +-
 .../current/index.md                               | 184 ++++++++++++++++++++
 src/data/docsInfo.js                               |  10 +-
 5 files changed, 402 insertions(+), 3 deletions(-)

diff --git a/docusaurus.config.js b/docusaurus.config.js
index 0e9f1c9242b..5c9f1ad3556 100755
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -205,6 +205,21 @@ module.exports = {
         showLastUpdateTime: true,
       },
     ],
+    [
+      "@docusaurus/plugin-content-docs",
+      {
+        id: "helm",
+        path: "helm",
+        routeBasePath: "helm",
+        disableVersioning: false,
+        includeCurrentVersion: true,
+        editCurrentVersion: true,
+        editLocalizedFiles: true,
+        sidebarPath: require.resolve("./sidebarsCommunity.js"),
+        showLastUpdateAuthor: true,
+        showLastUpdateTime: true,
+      },
+    ],
     [
       "@docusaurus/plugin-content-docs",
       {
diff --git a/helm/index.md b/helm/index.md
new file mode 100644
index 00000000000..075bb61afe8
--- /dev/null
+++ b/helm/index.md
@@ -0,0 +1,186 @@
+---
+title: Helm Deployment
+description: Helm Deployment
+---
+
+This article introduces the use of `helm` to deploy the `Apache ShenYu` gateway.
+
+> Before you read this document, you need to complete some preparations before deploying Shenyu according to the [Deployment Prerequisites document](./deployment-before.md).
+
+## Add Helm repository
+
+```shell
+helm repo add shenyu https://apache.github.io/shenyu-helm-chart
+helm repo update
+```
+
+## Install
+
+### Deployment prerequisites
+
+Before reading this document, you need to read [Deployment prerequisites](https://shenyu.apache.org/docs/deployment/deployment-before/) to complete the environment preparation before deploying ShenYu.
+
+### Instructions
+
+* **Install the application**: By default, both admin and bootstrap are installed.
+* **Service Exposure**: Use NodePort to expose the service, the default port is `31095` for admin and `31195` for bootstrap.
+* **Database**: Currently supports h2, MySQL, PostgreSQL as database. Default is h2.
+
+### h2 as database
+
+Running the following command will install admin and bootstrap under shenyu namespace and create namespace.
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace
+```
+
+### MySQL as database
+
+Modify and copy the following command and execute.
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set dataSource.active=mysql \
+      --set dataSource.mysql.ip=127.0.0.1 \
+      --set dataSource.mysql.port=3306 \
+      --set dataSource.mysql.username=root \
+      --set dataSource.mysql.password=123456 
+```
+
+## PostgreSQL as database(Version of ShenYu > 2.5.0)
+
+Modify the following command and copy it to execute.
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set dataSource.active=pg \
+      --set dataSource.pg.ip=127.0.0.1 \
+      --set dataSource.pg.port=5432 \
+      --set dataSource.pg.username=postgres \
+      --set dataSource.pg.password=123456
+```
+
+## Q&A
+
+### 1. you need to modify a lot of configuration information, such as modify the application.yaml, how to install
+
+1. download the complete values.yaml
+* Latest chart version: `helm show values shenyu/shenyu > values.yaml`
+* Specific chart version, e.g. `0.2.0`: `helm show values shenyu/shenyu --version=0.2.0 > values.yaml`
+2. modify the values.yaml file
+3. Change the corresponding configuration and execute the `helm install` command with the format `-f values.yaml`.
+   For example: `helm install shenyu shenyu/shenyu -n=shenyu --create-namespace -f values.yaml`
+
+### 2. How to install only admin or bootstrap
+
+* Install only admin: add `-set bootstrap.enabled=false` to the end of the helm install command
+* Install only bootstrap: add `--set admin.enabled=false` to the end of the helm install command
+
+### 3. How to install old version ShenYu
+
+```shell
+helm search repo shenyu -l
+```
+
+You will get output similar to
+
+```shell
+NAME CHART VERSION APP VERSION DESCRIPTION
+shenyu/shenyu 0.2.0 2.5.0 Helm Chart for deploying Apache ShenYu in Kubernetes
+...
+...
+```
+
+where `APP_VERSION` is the version of ShenYu and `CHART_VERSION` is the version of Helm Chart.
+
+Select the corresponding Chart version according to the version of ShenYu you want to install, and add the `-version=CHART_VERSION` parameter at the end of the command. For example
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --version=0.2.0 --create-namespace
+```
+
+### How to configure JVM options and modify Kubernetes resource quotas(Version of ShenYu > 2.5.0)
+
+* Configure JVM parameters via `admin.jvmOpts` and `bootstrap.jvmOpts`
+* Configure Kubernetes resource quotas via `admin.resources` and `bootstrap.resources`.
+
+e.g.
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set admin.javaOpts="-Xms256m -Xmx512m" \
+      --set admin.resources.requests.memory=512Mi \
+      --set admin.resources.limits.memory=1Gi \
+      --set admin.resources.requests.cpu=500m \
+      --set admin.resources.limits.cpu=1 \
+```
+
+## Values configuration instructions
+
+### Global Configuration
+
+| configuration item | type   | default   | description                                                                                        |
+|--------------------|--------|-----------|----------------------------------------------------------------------------------------------------|
+| replicas           | int    | `1`       | Number of replicas                                                                                 |
+| version            | string | `"2.5.0"` | shenyu version, it is not recommended to modify, please install the corresponding version directly |
+
+### shenyu-admin configuration
+
+| configuration item | type   | default                                                                                                     | description        |
+|--------------------|--------|-------------------------------------------------------------------------------------------------------------|--------------------|
+| admin.nodePort     | int    | `31095`                                                                                                     | NodePort port      |
+| admin.javaOpts     | string | [see here](https://github.com/apache/shenyu/blob/master/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh) | JVM parameters     |
+| admin.resources    | dict   | omit                                                                                                        | K8s resource quota |
+
+### shenyu-bootstrap configuration
+
+| configuration item  | type   | default                                                                                                         | description        |
+|---------------------|--------|-----------------------------------------------------------------------------------------------------------------|--------------------|
+| bootstrap.nodePort  | int    | `31195`                                                                                                         | NodePort Port      |
+| bootstrap.javaOpts  | string | [see here](https://github.com/apache/shenyu/blob/master/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh) | JVM parameters     |
+| bootstrap.resources | dict   | `{}`                                                                                                            | K8s resource quota |
+
+### Database configuration
+
+#### General database configuration
+
+| configuration-item     | type   | default | description                                     |
+|------------------------|--------|---------|-------------------------------------------------|
+| dataSource.active      | string | `"h2"`  | Database to use, supports `h2`, `mysql`, `pg`   |
+| dataSource.initEnabled | bool   | `true`  | Initialize the database, only `h2` is available |
+
+#### h2
+
+| configuration item     | type   | default | description |
+|------------------------|--------|---------|-------------|
+| dataSource.h2.username | string | `"sa"`  | username    |
+| dataSource.h2.password | string | `"sa"`  | password    |
+
+#### MySQL
+
+| Configuration Item                | Type   | Default                      | Description                                                                                           |
+|-----------------------------------|--------|------------------------------|-------------------------------------------------------------------------------------------------------|
+| dataSource.mysql.ip               | string | `""`                         | IP                                                                                                    |
+| dataSource.mysql.port             | int    | `3306`                       | port                                                                                                  |
+| dataSource.mysql.username         | string | `"root"`                     | Username                                                                                              |
+| dataSource.mysql.password         | string | `""`                         | Password                                                                                              |
+| dataSource.mysql.driverClass      | string | `"com.mysql.cj.jdbc.Driver"` | mysql driver class name                                                                               |
+| dataSource.mysql.connectorVersion | string | `"8.0.23"`                   | connector version([maven connector list](https://repo1.maven.org/maven2/mysql/mysql-connector-java/)) |
+
+### PostgreSQL
+
+| configuration-item             | type   | default                   | description                                                                                           |
+|--------------------------------|--------|---------------------------|-------------------------------------------------------------------------------------------------------|
+| dataSource.pg.ip               | string | `""`                      | IP                                                                                                    |
+| dataSource.pg.port             | int    | `5432`                    | port                                                                                                  |
+| dataSource.pg.username         | string | `"postgres"`              | username                                                                                              |
+| dataSource.pg.password         | string | `"postgres"`              | password                                                                                              |
+| dataSource.pg.driverClass      | string | `"org.postgresql.Driver"` | PostgreSQL driver class name                                                                          |
+| dataSource.pg.connectorVersion | string | `"42.2.18"`               | connector version ([maven connector list](https://repo1.maven.org/maven2/org/postgresql/postgresql/)) |
+
+### application.yml configuration
+
+| configuration-item          | type   | default  | description                                                                                                                                          |
+|-----------------------------|--------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------|
+| applicationConfig.bootstrap | string | slightly | bootstrap configuration, [bootstrap configuration description](https://shenyu.apache.org/zh/docs/user-guide/property-config/gateway-property-config) |
+| applicationConfig.admin     | string | omit     | admin configuration, [admin configuration description](https://shenyu.apache.org/zh/docs/user-guide/property-config/admin-property-config)           |
diff --git a/i18n/zh/code.json b/i18n/zh/code.json
index 1db2ab7b668..ec43cda0574 100755
--- a/i18n/zh/code.json
+++ b/i18n/zh/code.json
@@ -533,12 +533,18 @@
   "ShenYu Nginx Docs": {
     "message": "ShenYu Nginx 文档"
   },
-  "Shenyu-client-golang Docs": {
-    "message": "Shenyu-client-golang 文档"
+  "Shenyu Golang Client Docs": {
+    "message": "ShenYu Golang 客户端文档"
   },
   "ShenYu .NET Client Docs": {
     "message": "ShenYu .NET 客户端文档"
   },
+  "ShenYu Helm Chart Docs": {
+    "message": "ShenYu Helm Chart 文档"
+  },
+  "Helm deployment documentation written for ShenYu": {
+    "message": "ShenYu 的 Helm 部署方式文档"
+  },
   "The document for Apache ShenYu": {
     "message": "Apache ShenYu官方文档"
   },
diff --git a/i18n/zh/docusaurus-plugin-content-docs-helm/current/index.md b/i18n/zh/docusaurus-plugin-content-docs-helm/current/index.md
new file mode 100644
index 00000000000..67cd6dd420d
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs-helm/current/index.md
@@ -0,0 +1,184 @@
+---
+title: Helm部署
+keywords: ["Helm"]
+description: Helm部署
+---
+
+本文介绍使用 `helm` 来部署 `Apache ShenYu` 网关。
+
+> 在阅读本文档前,你需要先阅读[部署先决条件](./deployment-before.md)文档来完成部署 `shenyu` 前的环境准备工作。
+
+## 添加 Helm 仓库
+
+```shell
+helm repo add shenyu https://apache.github.io/shenyu-helm-chart
+helm repo update
+```
+
+## 安装
+
+### 说明
+
+* **安装应用**:默认同时安装 admin 与 bootstrap。
+* **服务暴露**:使用 NodePort 暴露服务,admin 默认端口为 `31095`, bootstrap 为 `31195`。
+* **数据库**:目前支持 h2, MySQL, PostgreSQL 作为数据库。默认使用 h2。
+
+### h2 作为数据库
+
+运行以下命令,会在 shenyu namespace 下安装 admin 与 bootstrap ,并创建命名空间。
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace
+```
+
+### MySQL 作为数据库
+
+修改以下命令并复制,执行:
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set dataSource.active=mysql \
+      --set dataSource.mysql.ip=127.0.0.1 \
+      --set dataSource.mysql.port=3306 \
+      --set dataSource.mysql.username=root \
+      --set dataSource.mysql.password=123456 
+```
+
+## PostgreSQL 作为数据库(ShenYu 版本 > 2.5.0)
+
+修改以下命令并复制,执行:
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set dataSource.active=pg \
+      --set dataSource.pg.ip=127.0.0.1 \
+      --set dataSource.pg.port=5432 \
+      --set dataSource.pg.username=postgres \
+      --set dataSource.pg.password=123456
+```
+
+## Q&A
+
+### 1. 需要大量修改配置信息,如修改 application.yaml ,如何安装
+
+1. 下载完整 values.yaml
+* 最新 chart 版本:`helm show values shenyu/shenyu > values.yaml`
+* 特定 chart 版本, 如 `0.2.0`: `helm show values shenyu/shenyu --version=0.2.0 > values.yaml`
+2. 修改 values.yaml 文件
+3. 更改相应配置,使用 `-f values.yaml` 的格式执行 `helm install` 命令。
+   如:`helm install shenyu shenyu/shenyu -n=shenyu --create-namespace -f values.yaml`
+
+### 2. 如何只安装 admin 或 bootstrap
+
+* 只安装 admin:     在 helm 安装命令末尾加上 `--set bootstrap.enabled=false`
+* 只安装 bootstrap: 在 helm 安装命令末尾加上 `--set admin.enabled=false`
+
+### 3. 如何安装旧版本 ShenYu
+
+```shell
+helm search repo shenyu -l
+```
+
+你会得到类似的输出:
+
+```shell
+NAME            CHART VERSION	APP VERSION	  DESCRIPTION
+shenyu/shenyu   0.2.0           2.5.0         Helm Chart for deploying Apache ShenYu in Kubernetes
+...
+...
+```
+
+其中 `APP_VERSION` 是 ShenYu 的版本,`CHART_VERSION` 是 Helm Chart 的版本。
+
+根据要安装的 ShenYu 版本来选择对应的 Chart 版本,在命令末尾加上 `--version=CHART_VERSION` 参数即可。例如:
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --version=0.2.0 --create-namespace
+```
+
+### 如何配置 JVM 参数以及修改 Kubernetes 资源配额(ShenYu 版本 > 2.5.0)
+
+* 通过 `admin.javaOpts` 和 `bootstrap.javaOpts` 来配置 JVM 参数
+* 通过 `admin.resources` 和 `bootstrap.resources` 来配置 Kubernetes 资源配额。
+
+例:
+
+```shell
+helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \
+      --set admin.javaOpts="-Xms256m -Xmx512m" \
+      --set admin.resources.requests.memory=512Mi \
+      --set admin.resources.limits.memory=1Gi \
+      --set admin.resources.requests.cpu=500m \
+      --set admin.resources.limits.cpu=1 \
+```
+
+## Values 配置说明
+
+### 全局配置
+
+| 配置项    | 类型    | 默认值     | 描述                                   |
+|----------|--------|-----------|---------------------------------------|
+| replicas | int    | `1`       | 副本数量                               |
+| version  | string | `"2.5.0"` | shenyu 版本,不建议修改,请直接安装对应版本 |
+
+### shenyu-admin 配置
+
+| 配置项           | 类型    | 默认值                                                                                                      | 描述          |
+|-----------------|--------|------------------------------------------------------------------------------------------------------------|--------------|
+| admin.nodePort  | int    | `31095`                                                                                                    | NodePort 端口 |
+| admin.javaOpts  | string | [详见这里](https://github.com/apache/shenyu/blob/master/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh) | JVM 参数      |
+| admin.resources | dict   | `{}`                                                                                                         | K8s 资源配额  |
+
+### shenyu-bootstrap 配置
+
+| 配置项               | 类型    | 默认值                                                                                                          | 描述          |
+|---------------------|--------|----------------------------------------------------------------------------------------------------------------|--------------|
+| bootstrap.nodePort  | int    | `31195`                                                                                                        | NodePort 端口 |
+| bootstrap.javaOpts  | string | [详见这里](https://github.com/apache/shenyu/blob/master/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh) | JVM 参数      |
+| bootstrap.resources | dict   | `{}`                                                                                                           | K8s 资源配额  |
+
+### 数据库配置
+
+#### 数据库总配置
+
+| 配置项                  | 类型    | 默认值  | 描述                                 |
+|------------------------|--------|--------|-------------------------------------|
+| dataSource.active      | string | `"h2"` | 使用的数据库,支持 `h2`, `mysql`, `pg` |
+| dataSource.initEnabled | bool   | `true` | 初始化数据库,仅 `h2` 有效             |
+
+#### h2
+
+| 配置项                  | 类型    | 默认值  | 描述   |
+|------------------------|--------|--------|-------|
+| dataSource.h2.username | string | `"sa"` | 用户名 |
+| dataSource.h2.password | string | `"sa"` | 密码   |
+
+#### MySQL
+
+| 配置项                             | 类型    | 默认值                        | 描述                                                                                               |
+|-----------------------------------|--------|------------------------------|---------------------------------------------------------------------------------------------------|
+| dataSource.mysql.ip               | string | `""`                         | IP                                                                                                |
+| dataSource.mysql.port             | int    | `3306`                       | 端口                                                                                               |
+| dataSource.mysql.username         | string | `"root"`                     | 用户名                                                                                             |
+| dataSource.mysql.password         | string | `""`                         | 密码                                                                                               |
+| dataSource.mysql.driverClass      | string | `"com.mysql.cj.jdbc.Driver"` | mysql driver class 名字                                                                            |
+| dataSource.mysql.connectorVersion | string | `"8.0.23"`                   | connector 版本([maven connector 列表](https://repo1.maven.org/maven2/mysql/mysql-connector-java/)) |
+
+### PostgreSQL
+
+| 配置项                          | 类型    | 默认值                     | 描述                                                                                              |
+|--------------------------------|--------|---------------------------|--------------------------------------------------------------------------------------------------|
+| dataSource.pg.ip               | string | `""`                      | IP                                                                                               |
+| dataSource.pg.port             | int    | `5432`                    | 端口                                                                                              |
+| dataSource.pg.username         | string | `"postgres"`              | 用户名                                                                                            |
+| dataSource.pg.password         | string | `""`                      | 密码                                                                                              |
+| dataSource.pg.driverClass      | string | `"org.postgresql.Driver"` | PostgreSQL driver class 名字                                                                      |
+| dataSource.pg.connectorVersion | string | `"42.2.18"`               | connector 版本([maven connector 列表](https://repo1.maven.org/maven2/org/postgresql/postgresql/)) |
+
+### application.yml 配置
+
+| 配置项                       | 类型    | 默认值 | 描述                                                                                                                      |
+|-----------------------------|--------|-------|--------------------------------------------------------------------------------------------------------------------------|
+| applicationConfig.bootstrap | string | 略    | bootstrap 配置,[bootstrap 配置说明](https://shenyu.apache.org/zh/docs/user-guide/property-config/gateway-property-config) |
+| applicationConfig.admin     | string | 略    | admin 配置,[admin 配置说明](https://shenyu.apache.org/zh/docs/user-guide/property-config/admin-property-config)           |
+
diff --git a/src/data/docsInfo.js b/src/data/docsInfo.js
index 69abb9b1a7a..34126ddeffc 100644
--- a/src/data/docsInfo.js
+++ b/src/data/docsInfo.js
@@ -30,7 +30,7 @@ export default [
     latestVersion: "/shenyuNginx/index",
   },
   {
-    docsTitle: <Translate>ShenYu-client-golang Docs</Translate>,
+    docsTitle: <Translate>Shenyu Golang Client Docs</Translate>,
     projectName: "Shenyu-client-golang",
     description: (
       <Translate>
@@ -51,4 +51,12 @@ export default [
     ),
     latestVersion: "/shenyuClientDotnet/http",
   },
+  {
+    docsTitle: <Translate>ShenYu Helm Chart Docs</Translate>,
+    projectName: "ShenYu Helm Chart",
+    description: (
+      <Translate>Helm deployment documentation written for ShenYu</Translate>
+    ),
+    latestVersion: "/helm/index",
+  },
 ];