前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K8S Nubale3.3部署

K8S Nubale3.3部署

作者头像
云计算小黑
发布2022-12-28 21:23:26
6613
发布2022-12-28 21:23:26
举报
文章被收录于专栏:小黑博客小黑博客

K8S Nubale3.3部署

192.168.58.106

master

192.168.83.227

node

192.168.83.228

node

192.168.83.232

node

官方文档

https://docs.nebula-graph.com.cn/3.3.0/nebula-operator/4.connect-to-nebula-graph-service/

部署本地卷插件(如果本地已经部署过一个可跳过)

代码语言:javascript
复制
curl https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/archive/v2.4.0.zip

unzip v2.4.0.zip

修改 v2.4.0/helm/provisioner/values.yaml classes 部分:

hostDir: /mnt/fast-disks 改成 hostDir: /mnt/disks

storageClass: true 改成 storageClass: true。然后执行:

代码语言:javascript
复制
 helm install local-static-provisioner --namespace default sig-storage-local-static-provisioner/helm/provisioner
代码语言:javascript
复制
# 查看 local-static-provisioner 部署情况

$ helm list
NAME                    NAMESPACE REVISION UPDATED                              STATUS  CHART            APP VERSION

local-volume-provisioner default  1      2021-02-10 11:06:34.3540341 +0800 CST deployed provisioner-2.4.0 2.4.0

安装 Helm

代码语言:javascript
复制
wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz

tar -zxvf helm/helm-v3.5.2-linux-amd64.tgz

mv linux-amd64/helm /usr/bin/helm

安装 NebulaGraph Operator

添加 NebulaGraph Operator chart 仓库至 Helm。

代码语言:javascript
复制
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts

拉取最新的 Helm 仓库。

代码语言:javascript
复制
helm repo update

参考 Helm 仓库获取更多helm repo相关信息。

安装 NebulaGraph Operator。

代码语言:javascript
复制
helm install nebula-operator nebula-operator/nebula-operator --namespace= --version=${chart_version}

例如,安装1.3.0版的 Operator 命令如下。

代码语言:javascript
复制
helm install nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.3.0
  • 上述命令中的nebula-operator-system为用户创建的命名空间。如果用户未创建该命名空间,可以执行kubectl create namespace nebula-operator-system进行创建。用户也可创建其他命名空间。
  • 1.3.0为 NebulaGraph Operator chart 的版本。当 Chart 中只有一个默认版本时,可不指定。执行helm search repo -l nebula-operator查看 Chart 版本。

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

如果服务器无法连接外网,可以下载 NebulaGraph Operator chart 至本地,再传到服务器。

代码语言:javascript
复制
helm pull nebula-operator/nebula-operator --version=1.3.0
  • --version: 升级版本号。如不指定,则默认为最新版本。

卸载 NebulaGraph Operator

卸载 NebulaGraph Operator chart。

代码语言:javascript
复制
helm uninstall nebula-operator --namespace=

删除 CRD。

代码语言:javascript
复制
kubectl delete crd nebulaclusters.apps.nebula-graph.io

使用 Kubectl 部署 NebulaGraph 集群

前提条件
  • 安装 NebulaGraph Operator
设置 Kubernetes node节点
代码语言:javascript
复制
# 下面是 Kubernetes 节点列表,我们需要设置 node 节点的调度标签。可以将 192.168.83.227,192.168.83.228,192.168.83.232 打上 nebula=cloud: "cloud" 的标签。
kubectl lable node 192.168.83.227  nebula="cloud" --overwrite
kubectl lable node 192.168.83.228  nebula="cloud" --overwrite
kubectl lable node 192.168.83.232  nebula="cloud" --overwrite
创建集群

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

  1. 创建集群。
    • 社区版集群示例,创建名为apps_v1alpha1_nebulacluster.yaml的文件。
代码语言:javascript
复制
  apiVersion: apps.nebula-graph.io/v1alpha1
  kind: NebulaCluster
  metadata:
    name: nebula
  spec:
    graphd:
      resources:
        requests:
          cpu: "500m"
          memory: "500Mi"
        limits:
          cpu: "1"
         memory: "1Gi"
     replicas: 3
        image: vesoft/nebula-graphd
     version: v3.3.0
     logVolumeClaim:
       resources:
          requests:
           storage: 2Gi
        storageClassName: fast-disks
   metad:
      resources:
        requests:
         cpu: "500m"
          memory: "500Mi"
       limits:
          cpu: "1"
          memory: "1Gi"
      replicas: 3
     image: vesoft/nebula-metad
     version: v3.3.0
     logVolumeClaim:
       resources:
          requests:
            storage: 2Gi
        storageClassName: fast-disks
      dataVolumeClaim:
        resources:
          requests:
           storage: 2Gi
       storageClassName: fast-disks
   storaged:
     resources:
       requests:
         cpu: "500m"
          memory: "500Mi"
       limits:
          cpu: "1"
          memory: "1Gi"
      replicas: 3
      image: vesoft/nebula-storaged
      version: v3.3.0
     logVolumeClaim:
       resources:
         requests:
           storage: 2Gi
        storageClassName: fast-disks
      dataVolumeClaims:   # 从 Operator 1.3.0 开始,支持挂载多个数据盘。
      - resources:
          requests:
            storage: 2Gi
        storageClassName: fast-disks
     - resources:
         requests:
            storage: 2Gi
        storageClassName: fast-disks    
     enableAutoBalance: true
   reference:
      name: statefulsets.apps
     version: v1
    schedulerName: default-scheduler
   nodeSelector:
     nebula: cloud
    imagePullPolicy: Always
   unsatisfiableAction: ScheduleAnyway

参数描述如下:

参数

默认值

描述

metadata.name

-

创建的 NebulaGraph 集群名称。

spec.graphd.replicas

1

Graphd 服务的副本数。

spec.graphd.images

vesoft/nebula-graphd

Graphd 服务的容器镜像。

spec.graphd.version

v3.3.0

Graphd 服务的版本号。

spec.graphd.service

-

Graphd 服务 Service 配置。

spec.graphd.logVolumeClaim.storageClassName

-

Graphd 服务的日志盘存储配置。

spec.metad.replicas

1

Metad 服务的副本数。

spec.metad.images

vesoft/nebula-metad

Metad 服务的容器镜像。

spec.metad.version

v3.3.0

Metad 服务的版本号。

spec.metad.dataVolumeClaim.storageClassName

-

Metad 服务的数据盘存储配置。

spec.metad.logVolumeClaim.storageClassName

-

Metad 服务的日志盘存储配置。

spec.storaged.replicas

3

Storaged 服务的副本数。

spec.storaged.images

vesoft/nebula-storaged

Storaged 服务的容器镜像。

spec.storaged.version

v3.3.0

Storaged 服务的版本号。

spec.storaged.dataVolumeClaims.resources.requests.storage

-

Storaged 服务的数据盘存储大小,可指定多块数据盘存储数据。当指定多块数据盘时,路径为:/usr/local/nebula/data1、/usr/local/nebula/data2等。

spec.storaged.dataVolumeClaims.resources.storageClassName

-

Storaged 服务的数据盘存储配置。若不指定,则使用全局的存储配置。

spec.storaged.logVolumeClaim.storageClassName

-

Storaged 服务的日志盘存储配置。

spec.storaged.enableAutoBalance

true

是否自动均衡数据。

spec.reference.name

-

依赖的控制器名称。

spec.schedulerName

-

调度器名称。

spec.imagePullPolicy

NebulaGraph 镜像的拉取策略。关于拉取策略详情,请参考 Image pull policy。

镜像拉取策略。

创建 NebulaGraph 集群。

代码语言:javascript
复制
kubectl create -f apps_v1alpha1_nebulacluster.yaml

查看 NebulaGraph 集群状态。

代码语言:javascript
复制
kubectl get nebulaclusters.apps.nebula-graph.io nebula

使用 Helm 部署 NebulaGraph 集群

前提条件
  • 安装 NebulaGraph Operator
创建 NebulaGraph 集群

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

代码语言:javascript
复制
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts

更新 Helm 仓库,拉取最新仓库资源。

代码语言:javascript
复制
helm repo update
设置 Kubernetes node节点
代码语言:javascript
复制
# 下面是 Kubernetes 节点列表,我们需要设置 node 节点的调度标签。可以将 192.168.83.227,192.168.83.228,192.168.83.232 打上 nebula=cloud: "cloud" 的标签。
kubectl lable node 192.168.83.227  nebula="cloud" --overwrite
kubectl lable node 192.168.83.228  nebula="cloud" --overwrite
kubectl lable node 192.168.83.232  nebula="cloud" --overwrite

配置 Helm 的环境变量。

代码语言:javascript
复制
export NEBULA_CLUSTER_NAME=nebula         # NebulaGraph 集群的名字。
export NEBULA_CLUSTER_NAMESPACE=nebula    # NebulaGraph 集群所处的命名空间的名字。
export STORAGE_CLASS_NAME=fast-disks             # NebulaGraph 集群的 StorageClass。

为 NebulaGraph 集群创建命名空间(如已创建,略过此步)。

代码语言:javascript
复制
kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}"

创建 NebulaGraph 集群。

代码语言:javascript
复制
helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
    --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
    --set nameOverride=${NEBULA_CLUSTER_NAME} \
    --set nebula.storageClassName="${STORAGE_CLASS_NAME}"

查看 NebulaGraph 集群创建状态。

代码语言:javascript
复制
kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"

返回示例:

代码语言:javascript
复制
NAME                READY   STATUS    RESTARTS   AGE
nebula-graphd-0     1/1     Running   0          5m34s
nebula-graphd-1     1/1     Running   0          5m34s
nebula-metad-0      1/1     Running   0          5m34s
nebula-metad-1      1/1     Running   0          5m34s
nebula-metad-2      1/1     Running   0          5m34s
nebula-storaged-0   1/1     Running   0          5m34s
nebula-storaged-1   1/1     Running   0          5m34s
nebula-storaged-2   1/1     Running   0          5m34s
删除集群

使用 Helm 删除集群的命令如下:

代码语言:javascript
复制
helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}"

或者使用真实值删除集群,例如:

代码语言:javascript
复制
helm uninstall nebula --namespace=nebula
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • K8S Nubale3.3部署
    • 官方文档
      • 部署本地卷插件(如果本地已经部署过一个可跳过)
        • 安装 Helm
          • 安装 NebulaGraph Operator
            • 卸载 NebulaGraph Operator
              • 使用 Kubectl 部署 NebulaGraph 集群
                • 前提条件
                • 设置 Kubernetes node节点
                • 创建集群
              • 使用 Helm 部署 NebulaGraph 集群
                • 前提条件
                • 创建 NebulaGraph 集群
                • 设置 Kubernetes node节点
                • 删除集群
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档