启用 Dashboard(KueueViz)

安装和配置 KueueViz,这是一个基于 Web 的 Kueue 工作负载监控可视化工具。

KueueViz 是一个基于 Web 的可视化工具,提供对 Kueue 工作负载、队列和资源分配的实时监控。 它提供了直观的 Dashboard,用于观察作业队列状态、资源利用率和工作负载进展。

本页面展示如何在你的集群中安装和配置 KueueViz。

本页面的目标读者是批处理管理员

开始之前

请确保满足以下条件:

  • Kubernetes 集群正在运行
  • kubectl 命令行工具可以与你的集群通信
  • 已安装 Helm 命令行工具
  • 你的集群中已安装 Kueue
  • (可选)用于外部访问的入口控制器(例如 Nginx Ingress Controller)

KueueViz 可以使用 Helm(推荐)或 kubectl 进行安装。 选择最适合你工作流程的方法。

与 Kueue 一起安装

在安装新的 Kueue 时一起安装 KueueViz:

helm install kueue oci://registry.k8s.io/kueue/charts/kueue \
  --version=0.17.0 \
  --namespace kueue-system \
  --create-namespace \
  --wait --timeout 300s \
  --set enableKueueViz=true # 启用 KueueViz

有关安装 Kueue 的更多信息,请参阅安装

启用 KueueViz(安装 Kueue 之后)

如果 Kueue 已经安装,你可以通过 Helm 或 kubectl 启用 KueueViz。

通过 Helm 启用 KueueViz

在现有的 Helm 安装的 Kueue 上启用 KueueViz:

helm upgrade kueue oci://registry.k8s.io/kueue/charts/kueue \
  --version=0.17.0 \
  --namespace kueue-system \
  --set enableKueueViz=true # 启用 KueueViz

通过 YAML 启用 KueueViz

在现有的 Kueue 安装上通过 YAML 启用 KueueViz:

kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.17.0/kueueviz.yaml

访问 Dashboard

端口转发(仅用于开发)

为了在开发或测试期间快速访问,首先修补前端 ConfigMap 以指向端口转发的后端。

如果你通过 Helm 安装,ConfigMap 名称是 kueue-kueueviz-frontend-env。 如果你通过 kubectl apply -f kueueviz.yaml 安装, ConfigMap 名称包含由 kustomize 生成的哈希后缀。使用以下命令查找:

kubectl -n kueue-system get configmap | grep frontend-env

编辑 ConfigMap(将 <configmap-name> 替换为实际名称):

kubectl edit configmap <configmap-name> -n kueue-system

更新 env.js 文件,使其指向 ws://localhost:8081

data:
  env.js: |
    window.env = {
      VITE_WEBSOCKET_URL: "ws://localhost:8081",
      REACT_APP_WEBSOCKET_URL: "ws://localhost:8081"
    };

设置后端 CORS 允许的来源,使其与前端 URL 匹配:

kubectl -n kueue-system set env deployment/kueue-kueueviz-backend KUEUEVIZ_ALLOWED_ORIGINS=http://localhost:8080

重启前端 Pod 以使 ConfigMap 更改生效:

kubectl rollout restart deployment kueue-kueueviz-frontend -n kueue-system

然后开始端口转发:

kubectl port-forward svc/kueue-kueueviz-frontend -n kueue-system 8080 &
kubectl port-forward svc/kueue-kueueviz-backend  -n kueue-system 8081:8080

然后在 http://localhost:8080 访问 Dashboard。

Ingress

对于生产部署,配置 Ingress 资源:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kueueviz-ingress
  namespace: kueue-system
spec:
  rules:
    - host: kueueviz.example.com
      http:
        paths:
          - path: /api(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: kueue-kueueviz-backend
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kueue-kueueviz-frontend
                port:
                  number: 8080
  tls:
    - hosts:
        - kueueviz.example.com # 替换为你的域名
      secretName: kueueviz-tls # 你需要首先创建 TLS 密钥

LoadBalancer

对于支持 LoadBalancer 的云环境:

apiVersion: v1
kind: Service
metadata:
  name: kueueviz-loadbalancer
  namespace: kueue-system
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 8080
      protocol: TCP
  selector:
    app.kubernetes.io/name: kueue
    app.kubernetes.io/component: kueueviz-frontend

升级

通过 Helm 升级

通过 Helm 升级 KueueViz:

helm upgrade kueue oci://registry.k8s.io/kueue/charts/kueue \
  --version=0.17.0 \
  --namespace kueue-system \
  --set enableKueueViz=true

通过 YAML 升级

通过 YAML 升级 KueueViz:

kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.17.0/kueueviz.yaml

卸载

注意: 请确保卸载的是 KueueViz,而不是意外卸载 Kueue。

卸载 KueueViz 组件:

kubectl delete -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.17.0/kueueviz.yaml

下一步