一键导入
volcano-node-resources
Query cluster node resources for Volcano scheduling. Check allocatable CPU, memory, GPU, and current usage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Query cluster node resources for Volcano scheduling. Check allocatable CPU, memory, GPU, and current usage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | volcano-node-resources |
| description | Query cluster node resources for Volcano scheduling. Check allocatable CPU, memory, GPU, and current usage. |
Query cluster node resources to understand capacity and availability for Volcano scheduling. This skill helps identify resource bottlenecks at the node level.
Scope: This skill is for diagnosis only. It retrieves resource information but does not modify any cluster state.
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh [options]
| Parameter | Required | Description |
|---|---|---|
--node NODE | no | Query specific node only |
--label LABEL | no | Filter nodes by label (e.g., gpu=true) |
--show-usage | no | Show current resource usage (requires metrics-server) |
--show-pods | no | Show pods running on each node |
--format FORMAT | no | Output format: table (default), json, wide |
Get overview of all nodes:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh
Check specific node:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --node worker-1
Check GPU nodes:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --label nvidia.com/gpu.present=true
Show resource usage:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --show-usage
Show with pod information:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --show-pods
JSON output for parsing:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --format json
| Resource | Description | Scheduling Impact |
|---|---|---|
cpu | CPU cores (millicores) | Primary scheduling constraint |
memory | RAM (bytes) | Primary scheduling constraint |
nvidia.com/gpu | GPU devices | Hardware-specific scheduling |
pods | Max pods per node | Density limit |
ephemeral-storage | Disk space | Secondary constraint |
Reservations include:
When --show-usage is enabled and metrics-server is available:
Key insights:
Available = Allocatable - Allocated (sum of all requests)
Nodes with zero or negative available resources cannot accept new pods.
For Gang scheduling, you need:
Number of nodes with Available >= Pod Request >= minMember
Example:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh
Look for nodes with positive Available CPU/Memory. Nodes with zero or near-zero availability cannot schedule new pods.
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --label nvidia.com/gpu.present=true --show-usage
Check:
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --show-usage
Fragmentation indicators:
If pods require specific labels:
# Check nodes with required labels
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --label <required-label>
# Verify sufficient resources
kubectl describe node <node-name> | grep -A 10 "Allocated resources"
Monitor trends over time:
# Current capacity
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh --format json
# Check usage trends (if metrics available)
for node in $(kubectl get nodes -o jsonpath='{.items[*].metadata.name}'); do
echo "=== $node ==="
kubectl top node $node 2>/dev/null || echo "Metrics not available"
done
| Status | Meaning | Action |
|---|---|---|
Ready | Node healthy and schedulable | Normal |
NotReady | Node unhealthy | Check node conditions |
SchedulingDisabled | Node cordoned | May need uncordon |
Check node conditions:
kubectl get nodes -o json | jq '.items[].status.conditions'
Taints prevent pod scheduling:
kubectl get nodes -o custom-columns='NAME:.metadata.name,TAINTS:.spec.taints[*].key'
Common taints:
node.kubernetes.io/not-readynode.kubernetes.io/unreachablenode.kubernetes.io/disk-pressurenode.kubernetes.io/memory-pressurenode.kubernetes.io/pid-pressureSymptom: Available resources near zero, new pods stuck pending
Check:
kubectl describe node <node-name> | grep -A 5 "Allocated resources"
Solution:
Symptom: Node has GPUs but not showing as allocatable
Check:
kubectl get node <node> -o jsonpath='{.status.allocatable.nvidia\.com/gpu}'
Solution:
Symptom: Node has node.kubernetes.io/memory-pressure taint
Check:
kubectl describe node <node-name> | grep -A 3 "MemoryPressure"
Solution:
Symptom: Node has node.kubernetes.io/disk-pressure taint
Check:
kubectl describe node <node-name> | grep -A 3 "DiskPressure"
Solution:
Human-readable table:
NAME CPU_ALLOC MEM_ALLOC GPU_ALLOC CPU_AVAIL MEM_AVAIL
node-1 32 64Gi 4 8 16Gi
node-2 16 32Gi 0 2 4Gi
Additional columns:
NAME CPU MEM GPU CPU_AVAIL MEM_AVAIL STATUS AGE
Machine-parseable output:
{
"nodes": [
{
"name": "node-1",
"allocatable": {
"cpu": "32",
"memory": "64Gi",
"nvidia.com/gpu": "4"
},
"available": {
"cpu": "8",
"memory": "16Gi"
}
}
]
}
| Variable | Default | Description |
|---|---|---|
NODE_LABEL | "" | Default label selector for nodes |
Combine with other skills for comprehensive analysis:
# 1. Check node resources
bash skills/core/volcano-node-resources/scripts/get-node-resources.sh
# 2. Check queue resources
bash skills/core/volcano-queue-diagnose/scripts/diagnose-queue.sh
# 3. If insufficient resources, refer to volcano-resource-insufficient skill guide
# (This is a documentation skill - follow the diagnostic steps in the SKILL.md)
volcano-resource-insufficient - Resource shortage diagnosisvolcano-diagnose-pod - Pod-specific scheduling issuesvolcano-gang-scheduling - Gang constraint analysisvolcano-queue-diagnose - Queue resource distributionShow and ping the gateway of a network interface, on a Kubernetes node or inside a pod's network namespace. Auto-detects the gateway from the routing table (ip -j route), reports interface type (RoCE / Ethernet / IB), and tests reachability with ping. Use for default-route / gateway questions, network reachability checks, RoCE/RDMA data-path validation, and "can this node/pod reach its gateway" investigations.
Guide for writing and improving Siclaw skills. Read this when creating or modifying a skill. Covers skill directory layout, SKILL.md format, script execution modes, and best practices.
Retrieve logs from a Kubernetes node. Supports journalctl (systemd units) and file-based logs. Use when you need to inspect node-level logs (containerd, kubelet, etc.). Run via host_script (preferred) or node_script.
Check node health and diagnose node-level issues (NotReady, DiskPressure, MemoryPressure, PIDPressure). Inspects node conditions, resource allocation, and real-time usage.
Diagnose DNS resolution failures in the cluster (NXDOMAIN, timeouts, SERVFAIL). Checks CoreDNS health, service endpoints, and DNS configuration.
Diagnose NetworkPolicy-related connectivity issues (traffic unexpectedly blocked, default-deny effects, egress blocking DNS). Identifies which NetworkPolicies affect a pod, checks ingress/egress rules, and verifies CNI support.