排障系统

本文档介绍了如何在 KubeCube 上集成 KubeDiag 排障系统。

准备工作

  1. 由于 KubeDiag 使用 CertManager 进行证书管理,如果集群中已安装 CertManager,可跳过这一步骤, 否则可参考官方文档进行安装,或运行以下命令进行快速安装。
  1. kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.0.2/cert-manager.yaml

集成 KubeDiag

1、使用平台管理员账号登录 KubeCube;

2、点击页面右上角【切换到控制台】,点击任意空间,进入到控制台页面;

  1. 在左侧菜单栏点击【自定义资源CRD】,进入到集群级别 CRD 列表,可以点击右上方输入 “hotplug” 进行搜索,找到 “hotplugs.hotplug.kubecube.io” CRD,点击【v1】版本进入 CRD 详情页;

  2. 选择 common 实例,点击【设置YAML】,将 KubeDiag 的状态改为启用, 即可为所有集群开启kubediag系统,如下所示:

  1. - name: kubediag
  2. namespace: kubediag
  3. pkgName: kubediag-helm-0.1.1.tgz
  4. - status: disabled
  5. + status: enabled

使用 KubeDiag

如果希望非集群管理员角色的平台用户也能使用 KubeDiag 的资源进行集群诊断操作,需要将 KubeDiag 提供的相关 CRD 操作权限接入 KubeCube 的内置角色中,具体操作如下(在执行以下操作前,需要获取 Kubernetes 集群cluster-admin角色的 KubeConfig ):

  1. # 为平台所有角色赋予view权限
  2. kubectl label clusterrole kubediag-view rbac.authorization.k8s.io/aggregate-to-reviewer=true
  3. kubectl label clusterrole kubediag-view rbac.authorization.k8s.io/aggregate-to-project-admin=true
  4. kubectl label clusterrole kubediag-view rbac.authorization.k8s.io/aggregate-to-tenant-admin=true
  5. kubectl label clusterrole kubediag-view rbac.authorization.k8s.io/aggregate-to-platform-admin=true
  6. # 为项目管理员以上级别的角色赋予edit权限
  7. kubectl label clusterrole kubediag-edit rbac.authorization.k8s.io/aggregate-to-project-admin=true
  8. kubectl label clusterrole kubediag-edit rbac.authorization.k8s.io/aggregate-to-tenant-admin=true
  9. kubectl label clusterrole kubediag-edit rbac.authorization.k8s.io/aggregate-to-platform-admin=true

完成以上操作后,即可使用平台用户登录 KubeCube 平台,在【自定义资源CRD】页面内,完成对 KubeDiag 相关 CRD 的管理,具体配置方式参考 KubeDiag API文档

create-diag


最后修改 September 10, 2021 : add access nfs and ceph (7dbd3197)