本地环境搭建的k8s集群 时不时会重启一下,在某次重启或者某一台机器故障后,经常遇到pod无法调度问题
通过查看发现 应用调度时会提示pvc卷有问题(本地磁盘 无nas)无法调度,我一般做法是删掉这个pvc,这样会导致一些数据丢失(刚入门 不知道有没有更好的办法 如有 请指点一二
删除pvc并重建以后 容器顺利的启动了。但是应用商店(openpitrix)很大概率会遇到问题了
现象主要为:
-ERROR- create app error: rpc error: code = Internal desc = internal error: rpc error: code = Unknown desc = NoSuchBucket: The specified bucket does not exist\n status code: 404, request id: 16574210410F5D8B, host id: (release_app.go:106)

或者:
ERROR- err: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: , errMsg: access denied for resource [xxx]: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: (handler.go:658)

解决方案:(曾今在论坛求助 大神帮忙解决过 但不知道具体解决方案)
多次出现该情况 天天麻烦大神 也是不应该的,因此下定决心自己找找解决方法(大神提示过依赖的mino可能有问题)
1、通过对比两个集群的mino的data目录及 查看了部分源代码发现了启动脚本中有如下命令

command: ["sh", "-c", "mkdir -p /data/openpitrix-attachment /data/openpitrix-internal-
repo/vmbased /data/openpitrix-internal-repo/helm ${REPO_DIR}"]

而容器的data目录干干净(因为从建过pvc) 那就手动执行一下, 然后 故障恢复了……

ps 上述的错误提示 谁会知道仅仅是因为目录不存在导致 希望大神后续在错误提示中能更明确的提示

    hysoft

    hysoft NoSuchBucket: The specified bucket does not exist

    从这里你就应该猜到是目录不存在。。。。bucket就是一个目录

    hysoft 看上去你的环境存储有问题,现在部署的是什么存储?

      zheng1
      ERROR- err: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: , errMsg: access denied for resource [xxx]: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: (handler.go:658)
      这个问题好像没解决 还需要在哪里创建一些东西?

      hysoft 如果直接是k8s的localpv,pod重新调度之后,pvc里面的数据就空了。你需要安装一个别的存储插件,比如openebs来做持久化存储,不然还是会出现这种问题

        zheng1 那我现在这个报错需要创建什么数据才能恢复呢
        ERROR- err: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: , errMsg: access denied for resource [xxx]: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: (handler.go:658)

        我去研究研究openebs

          hysoft 这种错误,现在恢复了也没有用,mysql的pod如果重新调度了,数据还是会丢。先把存储持久化解决吧

            zheng1 看了一下 我用的kk一键安装, 是使用的openebs.io/local 创建的pv 但是经常机器重启后pod就无法调度了 提示如 3 node(s) had volume node affinity conflict. 习惯性的就删掉pvc重建了…..

            关于错误 ERROR- err: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: , errMsg: access denied for resource [xxx]: rpc error: code = PermissionDenied desc = Runtime [xxx] not found: (handler.go:658)

            数据库pvc重建后
            runtime 数据库的runtime表 丢失了集群名称 添加上 并且runtime_credential 补上相关数据 问题解决!