138 lines
7.8 KiB
Markdown
138 lines
7.8 KiB
Markdown
# Nacos Helm Chart
|
|
|
|
Nacos is committed to help you discover, configure, and manage your microservices. It provides a set of simple and useful features enabling you to realize dynamic service discovery, service configuration, service metadata and traffic management.
|
|
|
|
## Introduction
|
|
|
|
This project is based on the Helm Chart packaged by [nacos-k8s](https://github.com/nacos-group/nacos-k8s/).
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.10+
|
|
- Helm v3
|
|
- PV provisioner support in the underlying infrastructure
|
|
|
|
## Tips
|
|
If you use a custom database, please initialize the database script yourself first.
|
|
<https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql>
|
|
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with `release name`:
|
|
|
|
```shell
|
|
$ helm install `release name` ./nacos
|
|
```
|
|
|
|
The command deploys Nacos on the Kubernetes cluster in the default configuration. It will run without a mysql chart and persistent volume. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
|
|
|
### Service & Configuration Management
|
|
|
|
#### Service registration
|
|
```shell
|
|
curl -X POST 'http://$NODE_IP:$NODE_PORT/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
|
|
```
|
|
|
|
#### Service discovery
|
|
```shell
|
|
curl -X GET 'http://$NODE_IP:$NODE_PORT/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
|
|
```
|
|
#### Publish config
|
|
```shell
|
|
curl -X POST "http://$NODE_IP:$NODE_PORT/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
|
|
```
|
|
#### Get config
|
|
```shell
|
|
curl -X GET "http://$NODE_IP:$NODE_PORT/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
|
|
```
|
|
|
|
|
|
|
|
> **Tip**: List all releases using `helm list`
|
|
|
|
## Uninstalling the Chart
|
|
|
|
To uninstall/delete `release name`:
|
|
|
|
```shell
|
|
$ helm uninstall `release name`
|
|
```
|
|
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
|
|
|
## Configuration
|
|
|
|
The following table lists the configurable parameters of the Skywalking chart and their default values.
|
|
|
|
| Parameter | Description | Default |
|
|
|---------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
|
| `global.mode` | Run Mode (~~quickstart,~~ standalone, cluster; ) | `standalone` |
|
|
| `resources` | The [resources] to allocate for nacos container | `{}` |
|
|
| `nodeSelector` | Nacos labels for pod assignment | `{}` |
|
|
| `affinity` | Nacos affinity policy | `{}` |
|
|
| `tolerations` | Nacos tolerations | `{}` |
|
|
| `resources.requests.cpu`|nacos requests cpu resource|`500m`|
|
|
| `resources.requests.memory`|nacos requests memory resource|`2G`|
|
|
| `nacos.replicaCount` | Number of desired nacos pods, the number should be 1 as run standalone mode| `1` |
|
|
| `nacos.image.repository` | Nacos container image name | `nacos/nacos-server` |
|
|
| `nacos.image.tag` | Nacos container image tag | `latest` |
|
|
| `nacos.image.pullPolicy` | Nacos container image pull policy | `IfNotPresent` |
|
|
| `nacos.plugin.enable` | Nacos cluster plugin that is auto scale | `true` |
|
|
| `nacos.plugin.image.repository` | Nacos cluster plugin image name | `nacos/nacos-peer-finder-plugin` |
|
|
| `nacos.plugin.image.tag` | Nacos cluster plugin image tag | `1.1` |
|
|
| `nacos.health.enabled` | Enable health check or not | `false` |
|
|
| `nacos.env.preferhostmode` | Enable Nacos cluster node domain name support | `hostname` |
|
|
| `nacos.env.serverPort` | Nacos port | `8848` |
|
|
| `nacos.storage.type` | Nacos data storage method `mysql` or `embedded`. The `embedded` supports either standalone or cluster mode | `embedded` |
|
|
| `nacos.storage.db.host` | mysql host | |
|
|
| `nacos.storage.db.name` | mysql database name | |
|
|
| `nacos.storage.db.port` | mysql port | 3306 |
|
|
| `nacos.storage.db.username` | username of database | |
|
|
| `nacos.storage.db.password` | password of database | |
|
|
| `nacos.storage.db.param` | Database url parameter | `characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false` |
|
|
| `persistence.enabled` | Enable the nacos data persistence or not | `false` |
|
|
| `persistence.data.accessModes` | Nacos data pvc access mode | `ReadWriteOnce` |
|
|
| `persistence.data.storageClassName` | Nacos data pvc storage class name | `manual` |
|
|
| `persistence.data.resources.requests.storage` | Nacos data pvc requests storage | `5G` |
|
|
| `service.type` | http service type | `NodePort` |
|
|
| `service.port` | http service port | `8848` |
|
|
| `service.nodePort` | http service nodeport | `30000` |
|
|
| `ingress.enabled` | Enable ingress or not | `false` |
|
|
| `ingress.annotations` | The annotations used in ingress | `{}` |
|
|
| `ingress.hosts` | The host of nacos service in ingress rule | `nacos.example.com` |
|
|
|
|
|
|
## Example
|
|

|
|
#### standalone mode(with embedded)
|
|
```console
|
|
$ helm install `release name` ./ --set global.mode=standalone
|
|
```
|
|

|
|
|
|
#### standalone mode(with mysql)
|
|
```console
|
|
$ helm install `release name` ./ --set global.mode=standalone --set nacos.storage.db.host=host --set nacos.storage.
|
|
db.name=dbName --set nacos.storage.db.port=port --set nacos.storage.db.username=username --set nacos.storage.db.
|
|
password=password
|
|
```
|
|

|
|
|
|
|
|
> **Tip**: if the logs of nacos pod throws exception, you may need to delete the pod. Because mysql pod is not ready, nacos pod has been started.
|
|
|
|
#### cluster mode(without pv)
|
|
```console
|
|
$ helm install `release name` ./ --set global.mode=cluster
|
|
```
|
|

|
|
|
|
```console
|
|
$ kubectl scale sts `release name`-nacos --replicas=3
|
|
```
|
|

|
|
|
|
* Use kubectl exec to get the cluster config of the Pods in the nacos StatefulSet after scale StatefulSets
|
|
|
|

|