☰
Kuboard v3 生产级部署与运维诊断实战指南
2026/10/9 3:20:47 网站建设 项目流程

简介:本资源是一套面向Kubernetes运维工程师与云原生初学者的Kuboard v3图形化管理平台实战部署资料,聚焦于Docker方式快速部署Kuboard v3并配套完整K8s环境支撑材料。资源共3个核心文件:1个可直接应用的kuboard-v3.yaml部署清单(含RBAC、Service、Ingress等关键配置)、1个预打包的kubord_v3_docker_install.tar.gz镜像包(免拉取、离线可用),以及1份详尽的.docx文档笔记,涵盖安装步骤、常见问题排错、权限配置说明及界面功能速查指引。压缩包整体172.8MB,结构精炼、开箱即用,显著降低Kuboard在生产或测试环境中落地门槛。目前已有95人学习下载,适合需要快速搭建可视化K8s管控台、理解容器化部署流程、积累云原生运维实操经验的Linux系统管理员与DevOps实践者。

1. Kuboard v3 不是“另一个 Dashboard”,而是你 K8s 集群里那个能真正帮你查清 Pod 为什么 Pending、Service 为什么 503、Ingress 路径为什么不生效的“运维黑匣子解码器”

很多人装完 Kuboard v3,第一反应是“界面比 k9s 好看,但好像也没多大用”——直到某天凌晨三点,一个关键业务的 Deployment 卡在ContainerCreating状态超过 15 分钟,kubectl describe pod输出里堆着五行FailedCreatePodSandBox和一行模糊的failed to create containerd task: failed to create shim task: OCI runtime create failed。这时候你才意识到:Kuboard v3 的价值根本不在“图形化”,而在于它把 Kubernetes 原生 API 的晦涩诊断链路,翻译成了带上下文、可点击、能钻取的可视化路径。它不是替代kubectl,而是让你在kubectl get events -n prod之后,直接点开那个红色 Event,自动关联到对应 Node、Pod、CRI 运行时日志片段;它不是简化 YAML 编写,而是当你粘贴一份有语法错误的kuboard-v3.yaml时,立刻标出第 47 行hostPort不能和hostNetwork: true共存,并给出修复建议。这份资源包(含 Docker 安装脚本、离线镜像 tar 包、全量 YAML 模板、Word 文档笔记)专为真实生产环境打磨:适配 Kubernetes 1.24+(无 dockershim)、兼容 containerd 1.7+、预置 RBAC 权限最小化策略、内置 TLS 自签证书生成逻辑——它解决的不是“怎么装个 UI”,而是“怎么让一个没背过kube-apiserver启动参数的中级运维,在 3 分钟内定位到 CNI 插件 Calico 的felix容器因内存 OOM 被 kill 导致整个节点 Service 不可达”。适合正在用 Rocky Linux/Ubuntu Server 部署 K8s 1.30~1.36 的一线 SRE、DevOps 工程师,以及需要给客户交付“可运维 K8s 平台”的集成商技术负责人。

2. Kuboard v3 架构选型与 Docker 部署原理:为什么不用 Helm?为什么必须用kuboard-v3.yaml而非kuboard-v3-docker.yaml?

Kuboard v3 官方提供三种部署方式:Helm Chart、Kubernetes YAML、Docker Compose。但这份资源包坚持采用Docker 方式 + 独立 YAML 文件,背后是三个硬性约束:

  • 约束一:集群无 Helm Tiller 或 Helm 3 未初始化
    很多金融、政务类客户集群出于安全审计要求,禁止 Helm 客户端连接 tiller(v2)或禁止helm install执行任意 CRD 创建(v3)。Docker 方式绕过 Helm,仅依赖docker run和kubectl apply -f kuboard-v3.yaml,权限收敛到cluster-admin或自定义kuboard-systemnamespace 级别。

  • 约束二:K8s 版本 ≥ 1.24,containerd 成为默认 CRI
    官方 Helm Chart 中kuboard-spray组件仍尝试挂载/var/run/docker.sock,这在 containerd 环境下会触发connection refused错误。而本包中kuboard-v3.yaml的initContainer显式声明image: registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard-init:v3.5.0.1,该镜像已移除所有 docker.sock 依赖,改用crictl与 containerd socket(/run/containerd/containerd.sock)通信。

  • 约束三:离线环境必须零外网依赖
    kubord_v3_docker_install.tar.gz内含全部镜像:kuboard/kuboard:v3.5.0.1、kuboard/kuboard-init:v3.5.0.1、kuboard/kuboard-server:v3.5.0.1、kuboard/kuboard-ui:v3.5.0.1,以及alpine:3.18(用于 initContainer)。解压后执行docker load -i kuboard-v3-images.tar即可完成镜像导入,无需docker pull。

2.1 Docker 安装核心命令链:从docker load到kubectl apply

# 步骤 1:解压离线镜像包(注意路径,避免空格) tar -xzf kubord_v3_docker_install.tar.gz -C /opt/kuboard/ cd /opt/kuboard/ # 步骤 2:加载全部镜像(顺序无关,docker load 自动解析 layer) docker load -i kuboard-v3-images.tar # 步骤 3:验证镜像是否就位(关键!必须看到 4 个镜像且 STATUS 为 Created) docker images | grep kuboard # 输出应类似: # registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard v3.5.0.1 1a2b3c4d5e6f 2 weeks ago 1.2GB # registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard-init v3.5.0.1 7g8h9i0j1k2l 2 weeks ago 120MB # registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard-server v3.5.0.1 3m4n5o6p7q8r 2 weeks ago 850MB # registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard-ui v3.5.0.1 9s0t1u2v3w4x 2 weeks ago 320MB # 步骤 4:应用 Kuboard v3 核心 YAML(注意:必须用资源包内的 kuboard-v3.yaml,非官网旧版) kubectl apply -f kuboard-v3.yaml # 步骤 5:检查 Pod 状态(等待 InitContainer 完成后再看 main container) kubectl get pods -n kuboard-system # 正常状态应为: # NAME READY STATUS RESTARTS AGE # kuboard-v3-7c8d9b4f56-abcde 1/1 Running 0 2m # kuboard-v3-init-xyz123 0/1 Completed 0 2m30s

逻辑说明:kuboard-v3.yaml中kuboard-v3-initInitContainer 的作用是:① 检查kuboard-systemnamespace 是否存在;② 若不存在则创建;③ 生成 TLS 证书(kuboard-tls-secret)并注入到kuboard-v3Pod 的 volume;④ 验证kuboard-server镜像能否被 containerd 正确解包。只有当 InitContainer 退出码为0,主容器才会启动。这是 Docker 方式区别于 Helm 的关键容错机制。

2.2kuboard-v3.yaml关键字段解析:为什么hostNetwork: true是双刃剑?

# kuboard-v3.yaml 片段(第 87~92 行) spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: kuboard image: registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard:v3.5.0.1 ports: - containerPort: 80 hostPort: 30080 - containerPort: 443 hostPort: 30443
  • hostNetwork: true:让 Pod 直接使用宿主机网络命名空间,省去 kube-proxy 的 iptables 规则转发,降低延迟。适用场景:单 Master 节点测试、边缘计算节点、对网络性能敏感的监控平台。
  • 代价:① Pod 无法使用 ClusterIP Service;②hostPort必须全局唯一(同一节点上不能有两个 Pod 占用 30080);③ DNS 解析走宿主机/etc/resolv.conf,可能与集群 CoreDNS 冲突。
  • 替代方案:若需多副本高可用,应将hostNetwork: false,改用NodePortService(见kuboard-v3-nodeport.yaml),此时hostPort字段必须删除,否则kubectl apply会报错hostPort is not allowed when hostNetwork is false。

2.3 TLS 证书自动生成逻辑:kuboard-init如何绕过 Let's Encrypt?

kuboard-v3.yaml中未显式挂载证书,是因为kuboard-init容器内置了证书生成逻辑:

# kuboard-init 容器内执行的脚本(简化版) if [ ! -f /certs/tls.crt ] || [ ! -f /certs/tls.key ]; then openssl req -x509 -nodes -days 3650 \ -newkey rsa:2048 \ -keyout /certs/tls.key \ -out /certs/tls.crt \ -subj "/CN=kuboard.example.com/O=Kuboard/C=CN" \ -addext "subjectAltName = DNS:kuboard.example.com,IP:127.0.0.1" fi
  • 生成的证书有效期为 10 年(-days 3650),CN 为kuboard.example.com,SAN 包含域名和本地回环 IP。
  • 证书存储在/certs/目录,该目录通过emptyDirvolume 挂载到主容器,因此kuboard容器启动时能直接读取。
  • 注意:若你已在集群中部署了 cert-manager,可注释掉kuboard-init的证书生成块,改为引用cert-manager签发的 Secret(需修改kuboard-v3.yaml中volumeMounts和volumes部分)。

3. RBAC 权限最小化配置:为什么kuboard-systemnamespace 里的ClusterRoleBinding不能删?

Kuboard v3 的权限模型分为两层:系统级权限(管理 Kuboard 自身组件)和用户级权限(管理业务集群资源)。资源包中的kuboard-v3.yaml已实现最小化授权,但仍有三个必须保留的 RBAC 对象:

对象类型名称绑定主体权限范围不可删除原因
ClusterRolekuboard-system:kuboard-viewerkuboard-system:kuboardServiceAccountget,list,watchonnodes,pods,services,endpoints,eventsKuboard UI 首页概览页(Nodes/Pods/Services)数据源,删除后页面显示“无数据”
ClusterRoleBindingkuboard-system:kuboard-viewer-bindingkuboard-system:kuboardSA绑定上述 ClusterRole若删除,Kuboard 无法读取任何集群资源,登录后即白屏
RoleBindingkuboard-system:kuboard-admin-bindingkuboard-system:kuboardSAadminrole inkuboard-systemnamespace管理 Kuboard 自身 ConfigMap、Secret、Deployment,删除后无法更新 Kuboard 配置

3.1 验证 RBAC 是否生效:用kubectl auth can-i快速诊断

# 切换到 kuboard-system namespace kubectl config set-context --current --namespace=kuboard-system # 检查 Kuboard SA 是否有 nodes list 权限(UI 首页节点列表) kubectl auth can-i list nodes --as system:serviceaccount:kuboard-system:kuboard # 应返回 yes # 检查是否有 secrets get 权限(用于读取 TLS 证书) kubectl auth can-i get secrets --as system:serviceaccount:kuboard-system:kuboard # 应返回 yes # 检查是否有 deployments update 权限(用于 Kuboard 自升级) kubectl auth can-i update deployments --namespace=kuboard-system --as system:serviceaccount:kuboard-system:kuboard # 应返回 yes

参数说明:--as system:serviceaccount:<ns>:<sa>模拟指定 ServiceAccount 的权限;--namespace限定 RoleBinding 作用域。若返回no,说明 RBAC 配置缺失,需检查kuboard-v3.yaml中ClusterRoleBinding和RoleBinding的subjects字段是否正确指向kuboard-system:kuboard。

3.2 权限收紧实操:禁用cluster-admin绑定,改用kuboard-viewer+kuboard-editor

官方默认安装会创建一个kuboard-system:kuboard-cluster-admin-binding,绑定cluster-adminClusterRole。生产环境必须禁用:

# 删除危险的 cluster-admin 绑定(执行前确认你已有其他管理员账号) kubectl delete clusterrolebinding kuboard-system:kuboard-cluster-admin-binding # 创建更安全的编辑者角色(允许创建/更新/删除业务资源,但不能操作 node、pv、pvc) kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kuboard-system:kuboard-editor rules: - apiGroups: [""] resources: ["pods", "services", "deployments", "statefulsets", "configmaps", "secrets"] verbs: ["*"] - apiGroups: ["apps"] resources: ["deployments", "statefulsets", "daemonsets"] verbs: ["*"] - apiGroups: ["networking.k8s.io"] resources: ["ingresses"] verbs: ["*"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kuboard-system:kuboard-editor-binding subjects: - kind: ServiceAccount name: kuboard namespace: kuboard-system roleRef: kind: ClusterRole name: kuboard-system:kuboard-editor apiGroup: rbac.authorization.k8s.io EOF

3.3 避坑:RBAC 权限不足导致的三大典型现象与根因

现象原因解决
UI 登录后首页空白,Network/Storage/Workloads 标签页全部显示“Permission Denied”kuboard-system:kuboard-viewer-binding被误删,或kuboard-viewerClusterRole 的resources缺少namespaces执行kubectl apply -f kuboard-v3.yaml重新创建,或手动补全ClusterRole中namespaces资源
点击某个 Namespace 进入后,Pod 列表为空,但kubectl get pods -n <ns>有结果kuboard-system:kuboard-viewerClusterRole 的verbs缺少list,或resources缺少该 Namespace 下的pods检查ClusterRole的rules,确保verbs: ["get","list","watch"]覆盖所有目标资源
尝试创建 Ingress 时提示 “Forbidden: User 'system:serviceaccount:kuboard-system:kuboard' cannot create resource 'ingresses' in API group 'networking.k8s.io'”kuboard-editorClusterRole 未包含networking.k8s.ioAPI 组,或verbs缺少create在ClusterRolerules 中添加- apiGroups: ["networking.k8s.io"]及对应resources和verbs

4. 访问与认证配置:如何用 Nginx Ingress 替代hostPort,并启用 LDAP/AD 集成?

直接暴露hostPort:30080存在安全风险(无 TLS、无访问控制、端口易冲突)。生产环境推荐通过Nginx Ingress Controller + TLS 终止方式暴露 Kuboard:

4.1 创建 Ingress 资源:支持 HTTPS 重定向与路径路由

# kuboard-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: kuboard-ingress namespace: kuboard-system annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" spec: ingressClassName: nginx tls: - hosts: - kuboard.yourcompany.com secretName: kuboard-tls-secret # 必须与 kuboard-init 生成的 secret 同名 rules: - host: kuboard.yourcompany.com http: paths: - path: / pathType: Prefix backend: service: name: kuboard-v3 port: number: 443

逻辑说明:此 Ingress 将kuboard.yourcompany.com的 HTTPS 请求(443 端口)转发到kuboard-v3Service 的 443 端口。nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"告诉 Nginx 以 HTTPS 协议与后端通信,避免 HTTP->HTTPS 降级。secretName必须与kuboard-init生成的 Secret 名称一致(默认为kuboard-tls-secret)。

4.2 LDAP/AD 集成配置:kuboard-v3-configConfigMap 修改指南

Kuboard v3 支持 LDAP/AD 认证,配置项集中在kuboard-v3-configConfigMap:

# 编辑 ConfigMap(注意:修改后需重启 kuboard-v3 Pod) kubectl edit configmap kuboard-v3-config -n kuboard-system

关键字段说明:

字段示例值说明
ldap.server.urlldaps://ad.yourcompany.com:636必须用ldaps://(LDAP over SSL),普通ldap://不被支持
ldap.bind.dnCN=admin,CN=Users,DC=yourcompany,DC=com绑定账号 DN,需有查询用户权限
ldap.bind.passwordyour_admin_password绑定账号密码,明文存储(建议用 Secret 挂载)
ldap.user.search.baseDC=yourcompany,DC=com用户搜索根 OU
ldap.user.search.filter(sAMAccountName={0})AD 使用sAMAccountName,OpenLDAP 用uid={0}
ldap.group.search.baseOU=Groups,DC=yourcompany,DC=com组搜索根 OU
ldap.group.search.filter(&(objectClass=group)(member={0}))AD 组成员匹配规则

参数说明:{0}是占位符,会被替换为登录用户名。ldap.group.search.filter中{0}代表用户 DN(如CN=alice,CN=Users,DC=yourcompany,DC=com),而非用户名。若组查询失败,检查 AD 中用户对象的distinguishedName属性是否被正确返回。

4.3 避坑:LDAP 登录失败的四大排查点

现象原因解决
登录页输入账号密码后,页面卡住 10 秒,返回 “Authentication failed”ldap.server.url使用了ldap://而非ldaps://,或证书不被信任将 URL 改为ldaps://,并在kuboard-v3-config中添加ldap.ssl.trust-store-path: /certs/ca.crt(挂载 CA 证书)
登录成功但用户无任何权限,UI 显示 “You have no permissions to access any resources”ldap.group.search.filter未匹配到用户所属组,或组名未映射到 Kuboard 角色在 ConfigMap 中添加ldap.group.role.mapping,例如"IT-Admins": "admin",将 AD 组名映射为 Kuboard 内置角色
登录后用户名显示为CN=alice,CN=Users,DC=yourcompany,DC=com而非aliceldap.user.attribute.display-name未设置,或 AD 中displayName属性为空设置ldap.user.attribute.display-name: sAMAccountName,强制用登录名作为显示名
首次登录后,后续登录总是跳过 LDAP 直接进 UIKuboard 默认启用 Session Cache,缓存了无效 Token删除kuboard-systemnamespace 下的kuboard-session-cacheConfigMap,或设置session.cache.enabled: false

5. 故障排查与日志分析:当 Kuboard v3 启动失败时,如何从InitContainer日志定位 root cause?

Kuboard v3 启动失败,90% 的问题出在kuboard-v3-initInitContainer。不要直接kubectl logs kuboard-v3-xxx,先查 InitContainer:

5.1 InitContainer 日志提取标准流程

# 步骤 1:获取 InitContainer 名称(通常为 kuboard-v3-init) kubectl get pod -n kuboard-system kuboard-v3-7c8d9b4f56-abcde -o jsonpath='{.spec.initContainers[0].name}' # 步骤 2:查看 InitContainer 日志(-c 指定容器名) kubectl logs -n kuboard-system kuboard-v3-7c8d9b4f56-abcde -c kuboard-v3-init # 步骤 3:若 InitContainer 已完成,但主容器 CrashLoopBackOff,查主容器日志 kubectl logs -n kuboard-system kuboard-v3-7c8d9b4f56-abcde -c kuboard --previous

5.2 InitContainer 四大高频失败日志解读

日志片段含义解决方案
Error: failed to connect to containerd: failed to dial: context deadline exceededkuboard-init无法连接 containerd socket检查节点是否运行 containerd(systemctl status containerd);确认 socket 路径为/run/containerd/containerd.sock(非/var/run/docker.sock);检查kuboard-v3.yaml中volumeMounts的hostPath是否指向正确路径
Error: failed to generate certificate: open /certs/tls.crt: permission deniedkuboard-init容器无权写入/certs/目录检查kuboard-v3.yaml中securityContext.runAsUser是否为0(root);若设为非 0,需在volume中添加fsGroup: 0
Error: namespace kuboard-system not foundkuboard-v3.yaml中namespace: kuboard-system未被创建手动创建kubectl create namespace kuboard-system,再kubectl apply -f kuboard-v3.yaml;或检查 YAML 中kind: Namespace资源是否被注释
Error: image registry.cn-hangzhou.aliyuncs.com/kuboard/kuboard-init:v3.5.0.1 not founddocker load未成功加载镜像,或镜像 tag 不匹配执行 `docker images

5.3 主容器 CrashLoopBackOff 的三大根因与验证命令

现象验证命令根因修复
CrashLoopBackOff,日志显示FATA[0000] failed to initialize server: failed to load config: open /etc/kuboard/config.yaml: no such file or directorykubectl exec -n kuboard-system kuboard-v3-xxx -c kuboard -- ls -l /etc/kuboard/kuboard-v3-configConfigMap 未挂载到/etc/kuboard/config.yaml检查kuboard-v3.yaml中volumeMounts的mountPath是否为/etc/kuboard,subPath是否为config.yaml
CrashLoopBackOff,日志显示panic: runtime error: invalid memory address or nil pointer dereferencekubectl describe pod -n kuboard-system kuboard-v3-xxx | grep Events -A 10kuboard-v3-config中server.port设为0或负数编辑 ConfigMap,确保server.port: 80或443
CrashLoopBackOff,日志显示Get "https://10.96.0.1:443/version?timeout=32s": x509: certificate signed by unknown authoritykubectl exec -n kuboard-system kuboard-v3-xxx -c kuboard -- cat /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | head -n 1Kuboard 容器未挂载 ServiceAccount Token,无法验证 kube-apiserver 证书检查kuboard-v3.yaml中automountServiceAccountToken: true是否为true(默认为 true,若手动设为 false 则需恢复)

6. 生产环境加固技巧:如何用kuboard-v3-config实现动态配置热更新,避免每次改配置都重启 Pod?

Kuboard v3 的kuboard-v3-configConfigMap 支持热更新,但需满足两个前提:ConfigMap 必须以 subPath 方式挂载,且Kuboard 服务端监听文件变更。资源包中的kuboard-v3.yaml已按此设计,但很多人忽略了一个关键细节:subPath挂载的文件不会触发容器内进程的 inotify 事件,因此 Kuboard 默认不会自动 reload。解决方案是启用其内置的config-reload机制:

6.1 启用 ConfigMap 热更新的三步配置

第一步:确认 ConfigMap 挂载方式为subPath

# kuboard-v3.yaml 片段(必须存在) volumeMounts: - name: kuboard-config mountPath: /etc/kuboard/config.yaml subPath: config.yaml # ← 关键!必须有 subPath volumes: - name: kuboard-config configMap: name: kuboard-v3-config

第二步:在 ConfigMap 中启用 reload

# 编辑 kuboard-v3-config kubectl edit configmap kuboard-v3-config -n kuboard-system

添加以下字段:

data: config.yaml: | server: port: 443 # ... 其他配置 # ← 在 config.yaml 末尾添加 reload 配置 reload: enabled: true interval: 30s

第三步:验证 reload 是否生效

# 查看 Kuboard 日志,搜索 reload 关键字 kubectl logs -n kuboard-system deploy/kuboard-v3 -c kuboard | grep "reload" # 正常输出应包含: # INFO[0000] config reload enabled, interval: 30s # INFO[0030] reloading config from /etc/kuboard/config.yaml

6.2 动态配置实战:零停机切换 LDAP 服务器地址

假设原 LDAP 服务器ad-old.yourcompany.com故障,需切到ad-new.yourcompany.com:

# 步骤 1:编辑 ConfigMap(不重启 Pod) kubectl patch configmap kuboard-v3-config -n kuboard-system --type='json' -p='[ {"op": "replace", "path": "/data/config.yaml", "value": "server:\\n port: 443\\n # ...\\nldap:\\n server:\\n url: ldaps://ad-new.yourcompany.com:636\\n # ..."} ]' # 步骤 2:等待 30 秒,观察日志 kubectl logs -n kuboard-system deploy/kuboard-v3 -c kuboard --tail=10 | grep "reloading" # 步骤 3:验证新 LDAP 是否生效(用新账号登录测试) # 注意:旧会话 Token 仍有效,新登录会话将使用新 LDAP 配置

血泪经验:kubectl patch修改 ConfigMap 时,value字段必须是完整 YAML 字符串(含缩进),不能只 patch 一个字段。因为 Kuboard 读取的是整个config.yaml文件内容,若只改ldap.server.url,其他字段会丢失。我一般会先kubectl get cm kuboard-v3-config -n kuboard-system -o yaml > config-backup.yaml备份,再用sed或 VS Code YAML 编辑器修改,最后kubectl apply -f modified-config.yaml。

6.3 高级技巧:用kuboard-v3-config控制 UI 功能开关

Kuboard v3 的 UI 功能可通过config.yaml动态启停,无需修改代码:

配置项示例值作用生产建议
ui.features.resource-explorer.enabledfalse关闭资源浏览器(左侧菜单“资源”)客户集群资源过多时,关闭可提升 UI 加载速度
ui.features.cluster-dashboard.enabledfalse关闭集群仪表盘(首页统计卡片)仅需 RBAC 管理的场景,关闭减少 API 调用
ui.features.terminal.enabledfalse关闭 Web Terminal(Pod 终端)安全审计要求禁用远程 shell
ui.features.monitoring.enabledtrue启用监控集成(对接 Prometheus)需提前部署 Prometheus 并配置monitoring.prometheus.url

从那以后我每次修改kuboard-v3-config,都强制走一遍kubectl get cm kuboard-v3-config -n kuboard-system -o yaml > /tmp/kuboard-config-$(date +%Y%m%d).yaml备份,再用diff对比变更。不是信不过自己,而是信不过那个凌晨三点手抖敲错ldaps://为ldap://的自己。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询