常见问题¶
NebulaGraph Operator 支持 v1.x 版本的NebulaGraph吗?¶
不支持,因为 v1.x 版本的NebulaGraph不支持 DNS,而 NebulaGraph Operator 需要使用 DNS。
使用本地存储是否可以保证集群稳定性?¶
无法保证。使用本地存储意味着 Pod 被绑定到一个特定的节点,NebulaGraph Operator 目前不支持在绑定的节点发生故障时进行故障转移。
扩缩容集群时,如何确保稳定性?¶
建议提前备份数据,以便故障发生时回滚数据。
Operator 文档中的 replica 和NebulaGraph内核文档中的 replica 是一样的吗?¶
二者是不同的概念。Operator 文档中的 replica 是 K8s 中的 Pod 副本,而内核文档中的 replica 是NebulaGraph中的分片副本。
如何查看 NebulaGraph 集群中各服务的日志?¶
NebulaGraph 集群日志没有被收集到 K8s 集群中,因此无法通过kubectl logs
查看。用户可以通过进入容器并在容器内查看日志文件的方式来获取 NebulaGraph 集群各服务日志。
操作如下:
# 查找要进入的容器所在的 Pod 名称。其中 <cluster-name> 为集群名称。
kubectl get pods -l app.kubernetes.io/cluster=<cluster-name>
# 进入 Pod 中的容器,例如进入 nebula-graphd-0 容器。
kubectl exec -it nebula-graphd-0 -- /bin/bash
# 进入 /usr/local/nebula/logs 目录,查看日志文件。
cd /usr/local/nebula/logs
host not found:nebula-<metad|storaged|graphd>-0.nebula.<metad|storaged|graphd>-headless.default.svc.cluster.local
错误如何解决?¶
这个错误一般是由于 DNS 解析失败导致的,需检查是否修改了集群域名。如果修改了集群域名,需要同步修改 Operator 配置文件中的kubernetesClusterDomain
字段。同步修改 Operator 配置文件的操作如下:
-
查看 Operator 配置文件。
[abby@master ~]$ helm show values nebula-operator/nebula-operator image: nebulaOperator: image: vesoft/nebula-operator:v1.7.2 imagePullPolicy: Always kubeRBACProxy: image: bitnami/kube-rbac-proxy:0.14.2 imagePullPolicy: Always kubeScheduler: image: registry.k8s.io/kube-scheduler:v1.24.11 imagePullPolicy: Always imagePullSecrets: [] kubernetesClusterDomain: "" # 集群域名,默认为 cluster.local。
-
修改
kubernetesClusterDomain
字段的值为集群域名。helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=<nebula-operator-system> --version=1.7.2 --set kubernetesClusterDomain=<cluster-domain>
为 Operator 所在的命名空间, 为更新后的集群域名。
最后更新:
November 15, 2023