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.
helm repo add shenyu https://apache.github.io/shenyu-helm-chart helm repo update
Before reading this document, you need to read Deployment prerequisites to complete the environment preparation before deploying ShenYu.
31095
for admin and 31195
for bootstrap.Running the following command will install admin and bootstrap under shenyu namespace and create namespace.
helm install shenyu shenyu/shenyu -n=shenyu --create-namespace
Modify and copy the following command and execute:
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
Modify the following command and copy it to execute:
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
Modify the following command and copy it to execute:
helm install shenyu shenyu/shenyu -n=shenyu --create-namespace \ --set dataSource.active=oracle \ --set dataSource.oracle.ip=127.0.0.1 \ --set dataSource.oracle.port=1521 \ --set dataSource.oracle.serviceName=shenyu \ --set dataSource.oracle.username=root \ --set dataSource.oracle.password=123456
helm show values shenyu/shenyu > values.yaml
0.2.0
: helm show values shenyu/shenyu --version=0.2.0 > values.yaml
helm install
command with the format -f values.yaml
. For example: helm install shenyu shenyu/shenyu -n=shenyu --create-namespace -f values.yaml
P.S. bootstrap configuration description admin configuration description
-set bootstrap.enabled=false
to the end of the helm install command--set admin.enabled=false
to the end of the helm install commandhelm search repo shenyu -l
You will get output similar to
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
helm install shenyu shenyu/shenyu -n=shenyu --version=0.2.0 --create-namespace
admin.jvmOpts
and bootstrap.jvmOpts
admin.resources
and bootstrap.resources
.e.g.
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
configuration item | type | default | description |
---|---|---|---|
version | string | "2.5.0" | shenyu version, it is not recommended to modify, please install the corresponding version directly |
configuration item | type | default | description |
---|---|---|---|
admin.enabled | bool | true | whether to install admin |
admin.replicas | int | 1 | number of replicas |
admin.image | string | "apache/shenyu-admin" | image name (you can modify this field to support custom images) |
admin.nodePort | int | 31095 | NodePort port |
admin.javaOpts | string | see here | JVM parameters |
admin.resources | dict | omit | K8s resource quota |
admin.autoscaling.enabled | bool | false | whether to install hpa |
admin.autoscaling.minReplicas | int | 1 | minReplicas in hpa |
admin.autoscaling.maxReplicas | int | 10 | maxReplicas in hpa |
admin.autoscaling.targetCPUUtilizationPercentage | int | 75 | targetCPUUtilizationPercentage in hpa |
admin.autoscaling.targetMemoryUtilizationPercentage | int | 75 | targetMemoryUtilizationPercentage in hpa |
admin.ingress.enabled | bool | false | whether to install ingress |
admin.ingress.hosts[0].host | string | shenyu-admin.local | ingress host, u can set not only one host |
admin.ingress.hosts[0].paths[0].path | string | / | ingress host, u can set not only one path |
configuration item | type | default | description |
---|---|---|---|
bootstrap.enabled | bool | true | whether to install bootstrap |
bootstrap.replicas | int | 2 | number of replicas |
bootstrap.image | string | "apache/shenyu-bootstrap" | image name (you can modify this field to support custom images) |
bootstrap.nodePort | int | 31195 | NodePort Port |
bootstrap.javaOpts | string | see here | JVM parameters |
bootstrap.resources | dict | {} | K8s resource quota |
bootstrap.autoscaling.enabled | bool | false | whether to install hpa |
bootstrap.autoscaling.minReplicas | int | 1 | minReplicas in hpa |
bootstrap.autoscaling.maxReplicas | int | 10 | maxReplicas in hpa |
bootstrap.autoscaling.targetCPUUtilizationPercentage | int | 75 | targetCPUUtilizationPercentage in hpa |
bootstrap.autoscaling.targetMemoryUtilizationPercentage | int | 75 | targetMemoryUtilizationPercentage in hpa |
bootstrap.ingress.enabled | bool | false | whether to install ingress |
bootstrap.ingress.hosts[0].host | string | shenyu-boostrap.local | ingress host, u can set not only one host |
bootstrap.ingress.hosts[0].paths[0].path | string | / | ingress host, u can set not only one path |
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 |
configuration item | type | default | description |
---|---|---|---|
dataSource.h2.username | string | "sa" | username |
dataSource.h2.password | string | "sa" | password |
dataSource.h2.url | string | `` | custom url, default h2 url is “jdbc:h2:mem:~/shenyu;DB_CLOSE_DELAY=-1;MODE=MySQL;” |
configuration item | Type | Default | Description |
---|---|---|---|
dataSource.mysql.urlOverride | string | "" | Use custom datasource url and ignore other configs, the format is jdbc:mysql://xxxxxxx |
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) |
configuration item | type | default | description |
---|---|---|---|
dataSource.pg.ip | string | "" | IP |
dataSource.pg.urlOverride | string | "" | Use custom datasource url and ignore other configs, the format is jdbc:postgresql://xxxxxxx |
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) |
configuration item | type | default | description |
---|---|---|---|
dataSource.oracle.urlOverride | string | "" | Use custom datasource url and ignore other configs, the format is jdbc:oracle:xxxxxx |
dataSource.oracle.ip | string | "" | IP |
dataSource.oracle.port | int | 1521 | port |
dataSource.oracle.username | string | "root" | username |
dataSource.oracle.password | string | "" | password |
dataSource.oracle.serviceName | string | "shenyu" | Oracle service name |
dataSource.oracle.driverClass | string | "oracle.jdbc.OracleDriver" | Oracle driver class name |
dataSource.oracle.connectorVersion | string | "19.3.0.0" | connector version(maven connector list) |
configuration-item | type | default | description |
---|---|---|---|
applicationConfig.bootstrap | string | slightly | bootstrap configuration, bootstrap configuration description |
applicationConfig.admin | string | omit | admin configuration, admin configuration description |
Welcome to contribute to shenyu-helm-chart.