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",
+ },
];