rook-ceph
前面安装部暑步骤已经完成了rook-ceph的安装了,下面讲述一下如下使用和管理rook-ceph:
toolbox部署
[root@kubemaster01 rook-ceph]# cd rook/cluster/examples/kubernetes/ceph/
[root@kubemaster01 ceph]# kubectl apply -f toolbox.yaml
[root@kubemaster01 ceph]# kubectl exec -it pod/rook-ceph-tools-6b4889fdfd-zqdqm -n rook-ceph /bin/bash
Dashboard访问
查看ceph的服务:
[root@kubemaster01 ceph]# kubectl get svc -n rook-ceph
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
csi-cephfsplugin-metrics ClusterIP 10.105.106.114 <none> 8080/TCP,8081/TCP 34m
csi-rbdplugin-metrics ClusterIP 10.101.27.161 <none> 8080/TCP,8081/TCP 34m
rook-ceph-mgr ClusterIP 10.101.108.79 <none> 9283/TCP 28m
rook-ceph-mgr-dashboard ClusterIP 10.109.12.50 <none> 8443/TCP 28m
rook-ceph-mon-a ClusterIP 10.107.127.2 <none> 6789/TCP,3300/TCP 34m
rook-ceph-mon-b ClusterIP 10.102.56.72 <none> 6789/TCP,3300/TCP 34m
rook-ceph-mon-d ClusterIP 10.105.17.32 <none> 6789/TCP,3300/TCP 31m
利用ingress把dashboard服务暴露给外面主机访问:
#因为测试环境的ingress是在devops命名空间的,ingress跨namespace提供反向代理服务需要如下操作
#在devops下创建svc ,关联到rook-ceph下的rook-ceph-mgr-dashboard svc,如下:
[root@kubemaster01 ~]# cat rook-ceph/cephdashboard-rook-ceph-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: cephdashboard-rook-ceph
namespace: devops
spec:
type: ExternalName
externalName: rook-ceph-mgr-dashboard.rook-ceph.svc.cluster.local
#在 devops 下创建ingres ,指向devops下svc,这样就可以访问rook-ceph下的rook-ceph-mgr-dashboard svc了
[root@kubemaster01 ~]# cat rook-ceph/cephdashboard-rook-ceph-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cephdashboard
namespace: devops
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: ceph.dashboard.com #用域名比较好转发,在内网dns上添加一个解析到ingress的机器上就好
http:
paths:
- path: /
backend:
serviceName: cephdashboard-rook-ceph
servicePort: 8443
错误:这时通过浏览器访问提示502错误,通过查看ingress的日志提示拒绝连接,在k8s master节点上直接curl集群地址加端口号也是拒绝连接
[root@kubemaster01 ~]# kubectl logs svc/proxy-ingress-nginx-controller -n devops
[root@kubemaster01 ~]# curl https://10.109.12.50:8443
解决:进行到rook-ceph的toolbox pod内
#查看一下mgr的dashboard模块有没有启用:
[root@rook-ceph-tools-6b4889fdfd-zqdqm /]# ceph mgr module ls|grep -A 5 enabled_modules
"enabled_modules": [
"dashboard",
"iostat",
"prometheus",
"restful"
],
#已启用,再查看一下mgr的服务,发现没有dashboard
[root@rook-ceph-tools-6b4889fdfd-zqdqm /]# ceph mgr services
{
"prometheus": "http://172.16.254.152:9283/"
}
#默认情况下,与仪表板的所有HTTP连接均使用SSL/TLS保护。为了使仪表板快速启动并运行,您可以使用以下内置命令生成并安装自签名证书:
[root@rook-ceph-tools-6b4889fdfd-zqdqm /]# ceph dashboard create-self-signed-cert
#过一会再查看mgr的服务,如下:
[root@rook-ceph-tools-6b4889fdfd-zqdqm /]# ceph mgr services
{
"dashboard": "https://rook-ceph-mgr-a-6f4465c675-qhjxm:8443/",
"prometheus": "http://172.16.254.152:9283/"
}
这时,再在浏览器上输入网址:https://ceph.dashboard.com , 可以跳转到登录页面了,密码获取在k8s master节点输入:
[root@kubemaster01 ~]# kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo
文档更新时间: 2020-12-09 17:47 作者:子木