volcano-diagnose-pod
Diagnose Volcano-managed Pod scheduling issues.
Skill by scitix
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/scitix-volcano-diagnose-pod
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/volcano-diagnose-pod
What's inside
- Skill name
volcano-diagnose-pod- Description
- Diagnose Volcano-managed Pod scheduling issues. Checks Pod status, PodGroup, events, and Queue to identify scheduling failures.
- License
- Apache-2.0
- Instructions
- 191 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- diagnose-pod.sh · scripts/
SKILL.md (first lines)
# Volcano Pod Diagnosis
Diagnose Volcano-managed Pod scheduling issues. This skill checks Pod status, associated PodGroup, scheduling events, and Queue configuration to identify why a Pod cannot be scheduled.
**Scope:** This skill is for **diagnosis only**. Once you identify the root cause, report it to the user and stop. Do NOT attempt to modify pod specs, PodGroups, or Queues — that should be left to the user.
## Usage
```bash
bash skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh --pod <pod-name> --namespace <namespace>
```
## Parameters
| Parameter | Required | Description |
|-----------|----------|-------------|
| `--pod POD` | yes | Pod name to diagnose |
| `--namespace NS` | no | Namespace (default: `default`) |
| `--verbose` | no | Show detailed output including node resources |
## Examples
Diagnose a pending pod in default namespace:
```bash
bash skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh --pod my-job-0
```
Diagnose a pod in specific namespace:
```bash
bash skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh --pod my-job-0 --namespace training
```
Verbose mode with node resource information:
```bash
bash skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh --pod my-job-0 --namespace training --verbose
```
## Diagnostic Flow
The script performs the following checks in order:
### 1. Pod Status
Check the Pod's current phase and conditions.
```bash
kubectl get pod <pod> -n <ns> -o wide
kubectl describe pod <pod> -n <ns>
```
### 2. PodGroup Status
Check if the Pod is associated with a PodGroup and its scheduling status.
```bash
kubectl get pod <pod> -n <ns> -o jsonpath='{.metadata.annotations.scheduling.volcano.sh/pod-group}'
kubectl get podgroup <podgroup> -n <ns>
```
Key fields to check:
- `spec.minMember`: Minimum members required for Gang scheduling
- `status.phase`: Pending, Inqueue, Running, Unknown
- `status.running`: Number of running pods
- `status.pending`: Number of pending pods
### 3. Events Analysis
Check scheduling events for failure reasons.
```bash
kubectl get events -n <ns> --field-selector involvedObject.name=<pod> --sort-by='.lastTimestamp'
```
Look for these event patterns:
#### `FailedScheduling` - General scheduling failure
The scheduler attempted but failed to schedule the pod. Check the message for specific reasons.
**Volcano-specific sub-patterns:**
| Event Message | Meaning | Next Step |
|---------------|---------|-----------|
| `0/N nodes are available` + `minMember` | Gang constraint not satisfied | Use `volcano-gang-scheduling` |
| `exceeded quota` / `queue resource exceeded` | Queue deserved resources exhausted | Use `volcano-queue-diagnose` |
| `Insufficient cpu/memory` + Gang mention | Resource shortage blocking Gang | Use `volcano-resource-insufficient` |
| `pod group is not ready` | PodGroup not in Inqueue phase | Check PodGroup status |
| `task <name> is not ready` | Task dependencies not met | Check dependent tasks |
> **Quick Reference vs Detailed Analysis:** The table above provides a quick lookup for common patterns. The sections below provide detailed analysis, additional context, and more diagnostic commands for each pattern.
#### `Insufficient cpu` / `Insufficient memory` - Resource shortage
No node has enough allocatable resources. Check:
- Node resources: `kubectl top nodes`
- Pod resource requests: `kubectl get pod <pod> -n <ns> -o jsonpath='{.spec.containers[*].resources.requests}'`
**Volcano context:** If this is a Gang-scheduled pod, even if total cluster resources are sufficient, you need enough resources **simultaneously** on enough nodes. Use `volcano-resource-insufficient` to check fragmentation.
#### `minMember` not satisfied - Gang constraint
The PodGroup requires `minMember` pods to be scheduled simultaneously, but the cluster cannot satisfy this. Use `volcano-gang-scheduling` skill for detailed diagnosis.
**Key insight:** Even if `kubectl top nodes` shows enough total resources, Gang requires **simultaneous** availability on **different nodes**.
#### `queue resource exceeded` - Queue quota limit
The Queue associated with this Pod has exceeded its deserved resources. Check Queue status with `volcano-queue-diagnose` skill.
**Volcano-specific terms you might see:**
- `overused` - Queue has exceeded its fair share
- `deserved resources` - Calculated from queue weight proportion
- `allocated resources` - Currently used by jobs in this queue
#### `reclaim` events - Resource reclamation triggered
If you see events mentioning `reclaim`:
- Another queue is trying to reclaim resources from your pod's queue
- Your queue may be `over-allocated` (allocated > deserved)
- Check queue status: `volcano-queue-diagnose --queue <queue>`
#### `preempt` events - Priority preemption
Higher priority workload is evicting this pod. Check:
- Pod priority class: `kubectl get pod <pod> -o jsonpath='{.spec.priorityClassName}'`
- Preemptor details in scheduler logs: `volcano-scheduler-logs --keyword preempt`
#### `enqueue` related eventsFrom scitix/siclaw, Apache-2.0.
More from scitix/siclaw
- 0.752score
node-logs
scitix
Retrieve logs from a Kubernetes node — systemd units (journalctl) or files under /var/log.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
http-log-stats
scitix
Count HTTP status codes and request-duration distribution from an ingress controller's access log, over a fixed time window, in one pass.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
gateway-diagnostics
scitix
Show and ping the gateway of a network interface, on a Kubernetes node or inside a pod's network namespace.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-queue-diagnose
scitix
Diagnose Volcano Queue status and resource allocation.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
cluster-events
scitix
Analyze cluster-wide Kubernetes events to identify issues and patterns.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
volcano-resource-insufficient
scitix
Resource shortage diagnostic guide for Volcano.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
volcano-gang-scheduling
scitix
Gang Scheduling diagnostic guide for Volcano.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
quota-debug
scitix
Diagnose Kubernetes native ResourceQuota and LimitRange admission rejections (exceeded quota, forbidden by LimitRange, FailedCreate).
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
manage-skill
scitix
Guides the user to the Siclaw Web page to manage Skills.
SkillBFreshness: B★ 238Claude Code +9 - 0.746score
volcano-node-resources
scitix
Query cluster node resources for Volcano scheduling.
SkillBFreshness: B★ 238Claude Code +9 - 0.746score
volcano-scheduler-config
scitix
View Volcano scheduler configuration.
SkillBFreshness: B★ 238Claude Code +9 - 0.746score
volcano-job-diagnose
scitix
Diagnose Volcano Job status and issues.
SkillBFreshness: B★ 238Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 238
- Forks
- 32
- Open issues
- 16
- Last commit (this folder)
- Mar 12, 2026 (7 months ago)
- Last release
- Sep 14, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/scitix/siclaw
- Website
- siclaw.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from scitix
- 0.752score
node-logs
scitix
Retrieve logs from a Kubernetes node — systemd units (journalctl) or files under /var/log.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
http-log-stats
scitix
Count HTTP status codes and request-duration distribution from an ingress controller's access log, over a fixed time window, in one pass.
SkillBFreshness: B★ 238Claude Code +9 - 0.752score
gateway-diagnostics
scitix
Show and ping the gateway of a network interface, on a Kubernetes node or inside a pod's network namespace.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
volcano-queue-diagnose
scitix
Diagnose Volcano Queue status and resource allocation.
SkillBFreshness: B★ 238Claude Code +9 - 0.749score
cluster-events
scitix
Analyze cluster-wide Kubernetes events to identify issues and patterns.
SkillBFreshness: B★ 238Claude Code +9 - 0.747score
quota-debug
scitix
Diagnose Kubernetes native ResourceQuota and LimitRange admission rejections (exceeded quota, forbidden by LimitRange, FailedCreate).
SkillBFreshness: B★ 238Claude Code +9
Cite this page
volcano-diagnose-pod skill. Agent Mart. https://agentmart.dev/skills/scitix-volcano-diagnose-pod (last updated 2026-10-24)