使用Minikube在本地Kubernetes集群部署Mattermost失败求助
单句摘要
我希望通过Minikube在本地Kubernetes集群中部署Mattermost
复现步骤
我参考了官方部署教程与Mattermost Operator v1.15.0版本文档:
操作步骤:
- 启动minikube:
minikube start --kubernetes-version=v1.21.5 - 启用ingress:
minikube addons enable ingress - 克隆标签为v1.15.0的Mattermost Operator仓库
- 执行命令安装自定义资源:
kubectl apply -f ./config/crd/bases - 执行命令安装MinIO和MySQL operator:
make mysql-minio-operators - 本地启动Mattermost-operator:
go run . - 参照官方教程对应步骤部署Mattermost
观测到的现象
mattermost-operator持续输出以下错误:
INFO[1419] [opr.controllers.Mattermost] Reconciling Mattermost Request.Name=mm-demo Request.Namespace=mattermost INFO[1419] [opr.controllers.Mattermost] Updating resource Reconcile=fileStore Request.Name=mm-demo Request.Namespace=mattermost kind="&TypeMeta{Kind:,APIVersion:,}" name=mm-demo-minio namespace=mattermost patch="{\"status\":{\"availableReplicas\":0}}" INFO[1419] [opr.controllers.Mattermost.health-check] mattermost pod not ready: pod mm-demo-ccbd46b9c-9nq8k is in state 'Pending' Request.Name=mm-demo Request.Namespace=mattermost INFO[1419] [opr.controllers.Mattermost.health-check] mattermost pod not ready: pod mm-demo-ccbd46b9c-tp567 is in state 'Pending' Request.Name=mm-demo Request.Namespace=mattermost ERRO[1419] [opr.controllers.Mattermost] Error checking Mattermost health Request.Name=mm-demo Request.Namespace=mattermost error="found 0 updated replicas, but wanted 2"
通过k9s工具查看发现mm-demo无法正常启动,对应截图见下:
其他部署尝试
我也尝试过完全按照官方教程的所有步骤操作(跳过许可密钥配置步骤),此时通过k9s查看mattermost-operator运行正常无报错,但mm-demo pod持续崩溃,且无可用日志输出无法定位问题,恳请各位提供解决方案,谢谢。
解决方案
针对Pod Pending、Operator报错无可用副本问题
- 查看Pod异常原因:执行
kubectl describe pod mm-demo-ccbd46b9c-9nq8k -n mattermost,查看Events字段的具体报错。 - 资源不足排查:Minikube默认分配的资源无法满足整套组件运行要求,执行以下命令扩容后重试:
minikube stop && minikube start --cpus 4 --memory 8192 --kubernetes-version=v1.21.5 - 存储配置排查:执行
kubectl get pvc -n mattermost查看PVC状态,若PVC处于Pending状态,启用Minikube默认存储插件:minikube addons enable storage-provisioner - 依赖组件排查:日志显示MinIO可用副本为0,Mattermost依赖MinIO存储服务,执行
kubectl get pods -n minio-operator排查MinIO实例运行状态,修复MinIO异常后再重新部署Mattermost。
针对Pod持续崩溃无日志问题
- 查看Pod历史日志:执行
kubectl logs mm-demo-<替换为实际Pod名> -n mattermost --previous获取上一次启动的日志。 - 退出状态码排查:执行
kubectl describe pod mm-demo-<替换为实际Pod名> -n mattermost查看State字段的Exit Code:- 退出码137:Pod被系统OOM杀死,需调高Minikube分配的内存,或调低Mattermost部署配置中的内存资源请求/限制值。
- 退出码1:应用启动失败,先检查MySQL实例运行状态,确认数据库连接配置正确。
- 许可配置问题:跳过许可密钥步骤会导致企业版无法正常启动,将Mattermost部署配置中的
edition字段修改为team,使用无需许可的团队版即可正常启动。
内容的提问来源于stack exchange,提问作者Lucas Scheepers
相关产品推荐
相关产品推荐

