本文重点说明在已有 Kubernetes 环境中部署 DataEase v2 版本会遇到的问题及对应的处理。
1 环境要求
部署服务器要求:
操作系统: Ubuntu 22.04 / CentOS 7 64 位系统
CPU/内存: 4核8G
磁盘空间: 200G
2 部署问题及问题处理
2.1 执行 helm install dataease-helm-v2.x.x.tgz 报错显示 Error: 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
##查看 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 且一直重启
方法一:
##查看服务详细结构和日志查看报错信息
[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 list v1.EndpointSlice: 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