rook(1.0)+ceph安装后dashboard报500错误

成功安装后,打开web管理发现dashboard无法显示,其他页面显示正常
查看mgr

kubectl -n rook-ceph get pods
NAME                                        READY   STATUS      RESTARTS   AGE
rook-ceph-agent-5pgtj                       1/1     Running     0          21h
rook-ceph-agent-cjb8k                       1/1     Running     0          21h
rook-ceph-agent-jkr8x                       1/1     Running     0          21h
rook-ceph-mgr-a-5ff68bdb95-2kngc            1/1     Running     0          142m
rook-ceph-mon-a-5959fb5df-bdg2j             1/1     Running     0          143m
rook-ceph-mon-b-d584b8474-tf7d7             1/1     Running     0          143m
rook-ceph-mon-c-6bb47b98c7-mp8bh            1/1     Running     0          142m
rook-ceph-operator-7bbb59d7bd-t5wzx         1/1     Running     0          20h
rook-ceph-osd-0-578d6dfb66-lrf8h            1/1     Running     0          140m
rook-ceph-osd-1-58f6784bb8-rghhb            1/1     Running     0          141m
rook-ceph-osd-2-6b9b4b85b-zmjsv             1/1     Running     0          140m
rook-ceph-osd-prepare-192-168-60-13-pdsnk   0/2     Completed   0          83m
rook-ceph-osd-prepare-192-168-60-14-xtknj   0/2     Completed   0          83m
rook-ceph-tools-7855f6666-cpgvh             1/1     Running     0          136m
rook-discover-5l7cg                         1/1     Running     0          21h
rook-discover-5xc54                         1/1     Running     0          21h
rook-discover-v4r6x                         1/1     Running     0          21h

查看mgr日志报错

kubectl -n rook-ceph logs  --tail=100 rook-ceph-mgr-a-5ff68bdb95-2kngc

debug 2019-05-03 11:10:08.073 7f0438724700  0 mgr[dashboard] [03/May/2019:11:10:08] HTTP Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/cherrypy/_cptools.py", line 221, in wrap
    return self.newhandler(innerfunc, *args, **kwargs)
  File "/usr/share/ceph/mgr/dashboard/services/exception.py", line 88, in dashboard_exception_handler
    return handler(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 649, in inner
    ret = func(*args, **kwargs)
  File "/usr/share/ceph/mgr/dashboard/controllers/health.py", line 197, in minimal
    return self.health_minimal.all_health()
  File "/usr/share/ceph/mgr/dashboard/controllers/health.py", line 62, in all_health
    result['iscsi_daemons'] = self.iscsi_daemons()
  File "/usr/share/ceph/mgr/dashboard/controllers/health.py", line 126, in iscsi_daemons
    gateways = IscsiGatewaysConfig.get_gateways_config()['gateways']
  File "/usr/share/ceph/mgr/dashboard/services/iscsi_config.py", line 93, in get_gateways_config
    for instance in instances:
TypeError: 'NoneType' object is not iterable

目前1.0的bug
参考https://github.com/rook/rook/issues/3106解决,后面会修复

kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o wide   #查看toolbox运行的pod
NAME                              READY   STATUS    RESTARTS   AGE    IP              NODE            NOMINATED NODE   READINESS GATES
rook-ceph-tools-7855f6666-cpgvh   1/1     Running   0          139m   192.168.60.15   192-168-60-15   <none>           <none>

kubectl  -n rook-ceph exec -it rook-ceph-tools-7855f6666-cpgvh bash  #登陆pod
执行以下命令:
ceph dashboard ac-role-create admin-no-iscsi

for scope in dashboard-settings log rgw prometheus grafana nfs-ganesha manager hosts rbd-image config-opt rbd-mirroring cephfs user osd pool monitor; do
    ceph dashboard ac-role-add-scope-perms admin-no-iscsi ${scope} create delete read update;
done

ceph dashboard ac-user-set-roles admin admin-no-iscsi

正常显示
rook(1.0)+ceph安装后dashboard报500错误

参考