51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

DataEase v2 Kubernetes 部署遇到的问题及其解决方案

本文重点说明在已有 Kubernetes 环境中部署 DataEase v2 版本会遇到的问题及对应的处理。


1 环境要求 {#1-%E7%8E%AF%E5%A2%83%E8%A6%81%E6%B1%82}

部署服务器要求:

操作系统: Ubuntu 22.04 / CentOS 7 64 位系统

CPU/内存: 4核8G

磁盘空间: 200G


2 部署问题及问题处理 {#2-%E9%83%A8%E7%BD%B2%E9%97%AE%E9%A2%98%E5%8F%8A%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86}

2.1 执行 helm install dataease-helm-v2.x.x.tgz 报错显示 Error: could not find tiller {#2.1-%E6%89%A7%E8%A1%8C-helm-install-dataease-helm-v2.x.x.tgz-%E6%8A%A5%E9%94%99%E6%98%BE%E7%A4%BA-error%3A-could-not-find-tiller}

原因:DataEase 安装需要依赖 helm 的 tiller 组件处理请求,通常意味着 Tiller 服务不在 Kubernetes 集群中运行,或者 Helm Client 与 Tiller 之间的连接出现了问题。

问题处理:

检查tiller服务是否在 Kubernetes 集群中运行。

[root@master ~]# kubectl get pods -A

发现 tiller 服务不存在需要重新初始化创建对应tiller服务

[root@master ~]# vi helm-rbac.yaml

helm-rbac.yaml 链接:https://jcnc8shk3xlt.feishu.cn/wiki/YnhfwNutYiWuL8knbEycCcKtnwf?from=from_copylink


\[root@master \~\]# kubectl apply -f helm-rbac.yaml

`[root@master ~]# helm init -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url http://mirror.azure.cn/kubernetes/charts/ --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | kubectl apply -f -`

[root@master ~]# helm install dataease-helm-v2.10.0.tgz

2.2 标准 Kubenetes 部署需要将应用部署到对应的 namespace 中,发现 namespace 为 default {#2.2-%E6%A0%87%E5%87%86-kubenetes-%E9%83%A8%E7%BD%B2%E9%9C%80%E8%A6%81%E5%B0%86%E5%BA%94%E7%94%A8%E9%83%A8%E7%BD%B2%E5%88%B0%E5%AF%B9%E5%BA%94%E7%9A%84-namespace-%E4%B8%AD%EF%BC%8C%E5%8F%91%E7%8E%B0-namespace-%E4%B8%BA-default}

##查看 helm 中 DataEase 的应用

\[root@master \~\]# helm list


##卸载 DataEase 应用


\[root@master \~\]# helm delete de2  (helm V2 版本用法 ,V3 用 uninstall)


\[root@master \~\]# helm delete de2 --purge


##设置安装对应的 namespace并重新安装


\[root@master \~\]# kubectl config set-context --current --namespace=de2

`[root@master ~]# helm install dataease-helm-v2.10.0.tgz -n de2`

2.3 NFS 存储类配置失效导致 apisix-dashboard 服务状态为 CrashLoopBackOff 且一直重启 {#2.3-nfs-%E5%AD%98%E5%82%A8%E7%B1%BB%E9%85%8D%E7%BD%AE%E5%A4%B1%E6%95%88%E5%AF%BC%E8%87%B4-apisix-dashboard-%E6%9C%8D%E5%8A%A1%E7%8A%B6%E6%80%81%E4%B8%BA-crashloopbackoff-%E4%B8%94%E4%B8%80%E7%9B%B4%E9%87%8D%E5%90%AF}

方法一:

##查看服务详细结构和日志查看报错信息
`[root@master ~]# kubectl describe pod apisix-dashboard-656787d7db-pb2th -n de2`

##根据日志显示容器再重启,查看docker服务日志
`[root@master ~]# systemctl status docker -l`

##查看各节点是否有挂载共享 NFS ,若都挂载上,则为 nfs 服务与共享目录之间出现问题

\[root@master \~\]# vi nfs-storage-class.yaml


nfs-storage-class.yaml 内容链接:https://jcnc8shk3xlt.feishu.cn/wiki/BkF0w0KN4iKWyRkgXc8cLDQKnLh?from=from_copylink


\[root@master \~\]# kubectl apply -f nfs-storage-class.yaml

`[root@master ~]# kubectl delete pod apisix-dashboard-656787d7db-pb2th`

方法二 :

重装 NFS ,重装文档链接:++https://jcnc8shk3xlt.feishu.cn/wiki/DnkpwPQSPipohSkEFE4cO7HlnWe?from=from_copylink++

2.4 DataEase 域名访问503报错 ingress 容器 Failed to watch v1.EndpointSlice: failed to listv1.EndpointSlice: the server could not find the requested resource {#2.4-dataease-%E5%9F%9F%E5%90%8D%E8%AE%BF%E9%97%AE503%E6%8A%A5%E9%94%99-ingress-%E5%AE%B9%E5%99%A8-failed-to-watch-v1.endpointslice%3A-failed-to-list-v1.endpointslice%3A-the-server-could-not-find-the-requested-resource}

原因分析: EndpointSlice API 组件不可用导致 ingress 无法进行域名代理或者 ingress 服务权限不足导致无法访问 EndpointSlice 。

##查看 API 组件是否可用

[root@master ~]# kubectl api-resources | grep EndpointSlice

##修改 rbac.yaml 是否确实有对应的resource

\[root@master \~\]# kubectl delete -f ingress-controller.yaml

`[root@master ~]# vi ingress-controller.yaml`

##重装后成功访问 DataEase

赞(0)
未经允许不得转载:工具盒子 » DataEase v2 Kubernetes 部署遇到的问题及其解决方案