Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
abby-cyber committed Sep 24, 2021
1 parent 3eca351 commit e982d7f
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 51 deletions.
4 changes: 2 additions & 2 deletions docs-2.0/nebula-operator/1.introduction-to-nebula-operator.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Nebula Operator将Nebula Graph集群的部署管理抽象为CRD。通过结合

Nebula Operator已具备的功能如下:

- **集群创建和卸载**:Nebula Operator简化了用户部署和卸载集群的过程。用户只需提供对应的CR文件,Nebula Operator即可快速创建或者删除一个对应的Nebula Graph集群。更多信息,请参考[使用Kubectl部署Nebula Graph集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)或者[使用Helm部署Nebula Graph集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)
- **集群创建和卸载**:Nebula Operator简化了用户部署和卸载集群的过程。用户只需提供对应的CR文件,Nebula Operator即可快速创建或者删除一个对应的Nebula Graph集群。更多信息参考[使用Kubectl部署Nebula Graph集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)或者[使用Helm部署Nebula Graph集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)

- **集群扩容和缩容**:通过在控制循环中调用Nebula Graph原生提供的扩缩容接口,Nebula Graph封装Nebula Operator实现了扩缩容的逻辑,用户可以通过YAML配置进行简单的扩缩容,且保证数据的稳定性。更多信息,请参考[使用Kubeclt扩缩容集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl/#_3)[使用Helm扩缩容集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm/#_2)
- **集群扩容和缩容**:通过在控制循环中调用Nebula Graph原生提供的扩缩容接口,Nebula Graph封装Nebula Operator实现了扩缩容的逻辑,用户可以通过YAML配置进行简单的扩缩容,且保证数据的稳定性。更多信息参考[使用Kubeclt扩缩容集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl/#_3)[使用Helm扩缩容集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm/#_2)

- **故障自愈**:Nebula Operator调用Nebula Graph集群提供的接口,动态地感知服务状态。一旦发现异常,Nebula Operator自动进行容错处理。更多信息参考[故障自愈](5.operator-failover.md)

Expand Down
25 changes: 12 additions & 13 deletions docs-2.0/nebula-operator/2.deploy-nebula-operator.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 部署Nebula Operator

用户可使用[Helm](https://helm.sh/)工具部署Nebula Operator。本文介绍如何通过Helm部署Nebula Operator。
用户可使用[Helm](https://helm.sh/)工具部署Nebula Operator。

## 背景信息

Expand All @@ -10,7 +10,7 @@

### 安装软件

安装Nebula Operator前,用户需要安装以下软件并确保安装版本的准确性
安装Nebula Operator前,用户需要安装以下软件并确保安装版本的正确性

| 软件 | 版本要求 |
| ------------------------------------------------------------ | --------- |
Expand All @@ -20,7 +20,7 @@
| [CertManager](https://cert-manager.io) | \>= 1.2.0 |
| [OpenKruise](https://openkruise.io) | \>= 0.8.0 |

用户可开启[RBAC](https://kubernetes.io/docs/admin/authorization/rbac)(可选)。
如果使用基于角色的访问控制的策略,用户需开启[RBAC](https://kubernetes.io/docs/admin/authorization/rbac)(可选)。

### 软件说明

Expand All @@ -42,13 +42,12 @@

cert-manager是一个自动化管理证书的工具,利用Kubernetes API扩展功能,使用Webhook服务器提供对cert-manager资源的动态准入控制。用户可参考[cert-manager installation documentation](https://cert-manager.io/docs/installation/kubernetes/)安装cert-manager。

cert-manager用于验证Nebula Graph的每个组件副本。如果用户在生产环境中运行它并关心高可用性,建议将`admissionWebhook.create`的值设为`true`,然后再安装cert-manager。
cert-manager用于验证Nebula Graph的每个组件副本。如果用户在生产环境中运行它并关心Nebula Graph的高可用性,建议将`admissionWebhook.create`的值设为`true`,然后再安装cert-manager。

- [OpenKruise](https://openkruise.io/en-us/)

OpenKruise是Kubernetes的一整套标准扩展,能与原始的Kubernetes一起工作,为应用Pod、Sidecar容器,甚至是节点中的镜像的管理供更强大和高效的功能。Nebula Operator启动时需要用到OpenKruise开启针对StatefulSet的高级功能。用户可参考[openkruise installation documentation](https://openkruise.io/en-us/docs/installation.html)安装OpenKruise。


## 操作步骤

### 安装Nebula Operator
Expand Down Expand Up @@ -77,9 +76,9 @@

- `${chart_version}`为Nebula Operator chart的版本。当Chart中只有一个默认版本时,可不指定。执行`helm search repo -l nebula-operator`查看Chart版本。

用户可在执行安装Nebula Operator chart命令时自定义其配置。更多信息,查看下文**自定义配置Chart**。
用户可在执行安装Nebula Operator chart命令时自定义其配置。更多信息,查看下文**自定义配置Chart**

**自定义配置Chart**
### 自定义配置Chart

执行`helm show values [CHART] [flags]`查看可配置的选项。

Expand Down Expand Up @@ -132,9 +131,9 @@ scheduler:
`values.yaml`中参数描述如下:

| 参数 | 默认值 | **描述** |
| :------------------------------------- | :------------------------------ | ----------------------------------------- |
| `image.nebulaOperator.image` | `vesoft/nebula-operator:v0.8.0` | Nebula Operator的镜像,镜像版本为v0.8.0。 |
| 参数 | 默认值 | 描述 |
| :------------------------------------- | :------------------------------ | :----------------------------------------- |
| `image.nebulaOperator.image` | `vesoft/nebula-operator:v0.8.0` | Nebula Operator的镜像,版本为v0.8.0。 |
| `image.nebulaOperator.imagePullPolicy` | `IfNotPresent` | 镜像拉取策略。 |
| `imagePullSecrets` | - | 镜像拉取密钥。 |
| `kubernetesClusterDomain` | `cluster.local`。 | 集群域名。 |
Expand All @@ -153,13 +152,13 @@ scheduler:
helm install nebula-operator nebula-operator/nebula-operator --namespace=<nebula-operator-system> --set admissionWebhook.create=false
```

参考[Helm安装](https://helm.sh/docs/helm/helm_install/)获取更多`helm install`相关信息。
参考[Helm安装](https://helm.sh/docs/helm/helm_install/)获取更多`helm install`相关信息。

### 更新Nebula Operator

用户安装Nebula Operator后,可通过修改`${HOME}/nebula-operator/charts/nebula-operator/values.yaml`文件中参数的值来更新Nebula Operator。操作步骤如下:

1. 克隆Nebula Operator仓库包至本机
1. 克隆Nebula Operator仓库至本机

```bash
git clone https://github.com/vesoft-inc/nebula-operator.git
Expand All @@ -174,7 +173,7 @@ helm install nebula-operator nebula-operator/nebula-operator --namespace=<nebula
```

`<nebula-operator-system>`为用户创建的命名空间,nebula-operator相关Pods在此命名空间下。
### 卸载Nebula Operator

1. 卸载Nebula Operator chart。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

[安装Nebula Operator](2.deploy-nebula-operator.md)


## 创建集群

本文以创建名为`nebula`集群为例,说明如何部署Nebula Graph集群。
本文以创建名为`nebula`的集群为例,说明如何部署Nebula Graph集群。

1. 创建名为`apps_v1alpha1_nebulacluster.yaml`文件
1. 创建名为`apps_v1alpha1_nebulacluster.yaml`的文件

示例文件的内容如下:

Expand Down Expand Up @@ -79,8 +78,8 @@
参数描述如下:
| 参数 | 默认值 | 描述 |
| :--------------------------- | :----------------------------------------------------------- | ---------------------------- |
| 参数 | 默认值 | 描述 |
| :---- | :--- | :--- |
| `metadata.name` | - | 创建的Nebula Graph集群名称。 |
| `spec.graphd.replicas` | `1` | Graphd服务的副本数。 |
| `spec.graphd.images` | `vesoft/nebula-graphd` | Graphd服务的容器镜像。 |
Expand All @@ -97,7 +96,8 @@
| `spec.storaged.storageClaim` | - | Storaged服务存储配置。 |
| `spec.reference.name` | - | 依赖的控制器名称。 |
| `spec.schedulerName` | - | 调度器名称。 |
| `spec.imagePullPolicy` | Nebula Graph镜像的拉取策略。关于拉取策略详情,请参考[Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)。 | 镜像拉取策略。 | |
| `spec.imagePullPolicy` | Nebula Graph镜像的拉取策略。关于拉取策略详情,请参考[Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)。 | 镜像拉取策略。 |


2. 创建Nebula Graph集群。

Expand Down Expand Up @@ -132,7 +132,7 @@

本文举例扩容Nebula Graph集群中Storage服务至5个。步骤如下:

1. 修改`apps_v1alpha1_nebulacluster.yaml`文件中`storaged.replicas`的原始值`3``5`。
1. `apps_v1alpha1_nebulacluster.yaml`文件中`storaged.replicas`的参数值从`3`改为`5`。

```yaml
storaged:
Expand Down Expand Up @@ -180,15 +180,16 @@

### 缩容集群

缩容集群的原理和扩容一样,用户只需将`apps_v1alpha1_nebulacluster.yaml`文件中的`replicas`的值缩容至小于原始值。具体操作,请参考上文的**扩容集群**部分。
缩容集群的原理和扩容一样,用户只需将`apps_v1alpha1_nebulacluster.yaml`文件中的`replicas`的值缩小。具体操作,请参考上文的**扩容集群**部分。

!!! caution

目前仅支持对Nebula Graph集群中的Graph服务和Storage服务进行扩缩容,不支持扩缩容Meta服务。

## 删除集群

使用Kubectl删除Nebula Graph集群命令如下:
使用Kubectl删除Nebula Graph集群的命令如下:

```bash
kubectl delete -f apps_v1alpha1_nebulacluster.yaml
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

## 创建Nebula Graph集群

1. 添加Nebula Operator chart至Helm仓库(如已创添加,请略过1至2步)。
1. 添加Nebula Operator chart至Helm仓库(如已创添加,略过前面1至2步,从第3步开始执行)。

```bash
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts
Expand All @@ -26,7 +26,7 @@
export STORAGE_CLASS_NAME=gp2 # Nebula Graph集群的StorageClass。
```

4. 为Nebula Graph集群创建命名空间(如已创建,请忽略此步)。
4. 为Nebula Graph集群创建命名空间(如已创建,略过此步)。

```bash
kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}"
Expand Down Expand Up @@ -64,7 +64,7 @@

用户可通过定义Nebula Graph中不同服务对应的`replicas`的值扩缩容Nebuala Graph集群。

例如扩容Nebula Graph集群中Storage的副本数为5(原始值为2),命令如下:
例如扩容Nebula Graph集群中Storage的副本数为5(原始值为2),命令如下:

```bash
helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
Expand All @@ -74,13 +74,13 @@ helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
--set nebula.storaged.replicas=5
```

同理,将Nebula Graph集群中服务对应的`replicas`的值设置低于原始值,即可实现集群服务的缩容。
同理,将Nebula Graph集群中服务对应的`replicas`的值设置成小于原始值,即可实现集群服务的缩容。

!!! caution

目前仅支持对Nebula Graph集群中的Graph服务和Storage服务进行扩缩容,不支持扩缩容Meta服务。

用户可点击[nebula-cluster/values.yaml](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/charts/nebula-cluster/values.yaml)查看Nebula Cluster集群Chart的更多配置。有关文件中配置项解释,参考下文**附录:Nebula Graph集群Chart配置参数说明**
用户可点击[nebula-cluster/values.yaml](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/charts/nebula-cluster/values.yaml)查看Nebula Cluster集群Chart的更多配置。有关文件中配置项的解释,参考下文**Nebula Graph集群Chart配置参数说明**

## 删除集群

Expand All @@ -94,7 +94,7 @@ helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}

[连接Nebula Graph数据库](4.connect-to-nebula-graph-service.md)

## 附录:Nebula Graph集群Chart配置参数说明
## Nebula Graph集群Chart配置参数说明

| 参数 | 默认值 | 描述 |
| :-------------------------- | :----------------------------------------------------------- | ------------------------------------------------------------ |
Expand Down
40 changes: 21 additions & 19 deletions docs-2.0/nebula-operator/4.connect-to-nebula-graph-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,25 @@
```bash
$ kubectl get service -l app.kubernetes.io/cluster=<nebula> #<nebula>为变量值,请用实际集群名称替换。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nebula-graphd-svc ClusterIP 10.98.xxx.xx <none> 9669/TCP,19669/TCP,19670/TCP 23h
nebula-graphd-svc ClusterIP 10.10.1.2 <none> 9669/TCP,19669/TCP,19670/TCP 23h
nebula-metad-headless ClusterIP None <none> 9559/TCP,19559/TCP,19560/TCP 23h
nebula-storaged-headless ClusterIP None <none> 9779/TCP,19779/TCP,19780/TCP,9778/TCP 23h
```

`ClusterIP`类型的Service只允许在集群内部访问容器应用。更多信息,请参考[ClusterIP](https://kubernetes.io/docs/concepts/services-networking/service/)

2. 使用上述`<cluster-name>-graphd-svc`Service的IP连接Nebula Graph数据库:
2. 使用上述`<cluster-name>-graphd-svc` Service的IP连接Nebula Graph数据库:

```bash
kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- <nebula-console> -addr <10.98.xxx.xx> -port 9669 -u <root> -p <vesoft>
kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- <nebula-console> -addr <10.10.1.2> -port 9669 -u <root> -p <vesoft>
```

- `--image`:为连接Nebula Graph的工具Nebula Console的镜像。
- `<nebula-console>`:自定义的Pod名称。
- `-addr`:连接的graphd服务的IP地址,即`ClusterIP`类型的Service IP地址。
- `-port`:连接graphd服务的端口。默认端口为9669。
- `-u`:Nebula Graph账号的用户名。未启用身份认证是,可以使用任意已存在的用户名(默认为root)。
- `-p`:用户名对应的密码。未启用身份认证时,密码可以填写任意字符。
- `--image`:为连接Nebula Graph的工具Nebula Console的镜像。
- `<nebula-console>`:自定义的Pod名称。
- `-addr`:连接的graphd服务的IP地址,即`ClusterIP`类型的Service IP地址。
- `-port`:连接graphd服务的端口。默认端口为9669。
- `-u`:Nebula Graph账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为root)。
- `-p`:用户名对应的密码。未启用身份认证时,密码可以填写任意字符。

如果返回以下内容,说明成功连接数据库:

Expand All @@ -43,7 +43,6 @@
(root@nebula) [(none)]>
```
用户还可以使用**完全限定域名(FQDN)**连接数据库,域名格式为`<cluster-name>-graphd.<cluster-namespace>.svc.<CLUSTER_DOMAIN>`:
```bash
Expand Down Expand Up @@ -100,31 +99,34 @@ kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- <nebula-
kubectl create -f graphd-nodeport-service.yaml
```
3. 查看Service映射至集群中节点
3. 查看Service中Nebula Graph映射至集群节点的端口
```bash
kubectl get services
```
Nodeport类型的Service中,映射至集群节点的端口为`32236`:
返回:
```bash
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nebula-graphd-svc ClusterIP 10.98.xxx.xx <none> 9669/TCP,19669/TCP,19670/TCP 23h
nebula-graphd-svc-nodeport NodePort 10.107.xxx.xxx <none> 9669:32236/TCP,19669:31674/TCP,19670:31057/TCP 24h
nebula-graphd-svc ClusterIP 10.10.1.2 <none> 9669/TCP,19669/TCP,19670/TCP 23h
nebula-graphd-svc-nodeport NodePort 10.20.1.2 <none> 9669:32236/TCP,19669:31674/TCP,19670:31057/TCP 24h
nebula-metad-headless ClusterIP None <none> 9559/TCP,19559/TCP,19560/TCP 23h
nebula-storaged-headless ClusterIP None <none> 9779/TCP,19779/TCP,19780/TCP,9778/TCP 23h
```
4. 连接Nebula Graph。
NodePort类型的Service中,映射至集群节点的端口为`32236`。
4. 使用节点IP和上述映射的节点端口连接Nebula Graph。
```bash
kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- <nebula-console> -addr <node_ip> -port <node_port> -u root -p vesoft
```
示例如下:
```bash
[root@k8s4 ~]# kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- nebula-console2 -addr 192.168.8.24 -port 30091 -u root -p vesoft
[root@k8s4 ~]# kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- nebula-console2 -addr 192.168.8.24 -port 32236 -u root -p vesoft
If you don't see a command prompt, try pressing enter.

(root@nebula) [(none)]>
Expand All @@ -133,6 +135,6 @@ kubectl run -ti --image vesoft/nebula-console:v2.5.0 --restart=Never -- <nebula-
- `--image`:为连接Nebula Graph的工具Nebula Console的镜像。
- `<nebula-console>`:自定义的Pod名称。本示例为`nebula-console2`
- `-addr`:Nebula Graph集群中任一节点IP地址。本示例为`192.168.8.24`
- `-port`:Nebula Graph映射至节点的端口。本示例为`30091`
- `-u`:Nebula Graph账号的用户名。未启用身份认证是,可以使用任意已存在的用户名(默认为root)。
- `-port`:Nebula Graph映射至节点的端口。本示例为`32236`
- `-u`:Nebula Graph账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为root)。
- `-p`:用户名对应的密码。未启用身份认证时,密码可以填写任意字符。
4 changes: 2 additions & 2 deletions docs-2.0/nebula-operator/7.operator-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

不支持,因为v1.x版本的Nebula Graph不支持DNS,而Nebula Operator需要使用DNS。

## 何时支持升级Nebula Operator操作?
## 是否支持升级Nebula Operator操作?

计划v0.9.0版本的Nebula Operator支持升级操作
暂不支持

## 使用本地存储是否可以保证集群稳定性?

Expand Down

0 comments on commit e982d7f

Please sign in to comment.