kubernetes
Deep Kubernetes operational knowledge covering workload safety, rolling update risks, RBAC escalation, network policy gaps, and resource management pitfalls.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Deep Kubernetes operational knowledge covering workload safety, rolling update risks, RBAC escalation, network policy gaps, and resource management pitfalls.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Deep Ansible operational knowledge covering dangerous module classification, idempotency violations, inventory targeting risks, privilege escalation patterns, and handler ordering pitfalls.
ArgoCD sync and application-set guidance for GitOps delivery changes across shared clusters.
AWS CDK guidance for logical IDs, removal policies, and synth-time environment drift.
Azure Bicep guidance for deployment modes, secret exposure, and subscription-target drift.
Cert-Manager issuance and renewal guidance for issuer, solver, and secret-rotation changes.
Deep CloudFormation risk intelligence covering resource replacement detection, deletion policies, drift patterns, stack dependencies, IAM resource risks, and service quota awareness.
| name | kubernetes |
| version | 1.0.0 |
| author | DeployWhisper |
| license | MIT |
| triggers | [".yaml",".yml"] |
| token_budget | 1800 |
| tags | ["kubernetes","containers","orchestration"] |
| description | Deep Kubernetes operational knowledge covering workload safety, rolling update risks, RBAC escalation, network policy gaps, and resource management pitfalls. |
| test_suite_path | tests/skill-tests/kubernetes |
| trigger_content_patterns | ["apiVersion","kind","metadata","spec.containers","spec.replicas"] |
securityContext.runAsUser: 0 or missing runAsNonRoot: true) = CRITICAL — container escape vulnerabilities grant host-level accesssecurityContext.privileged: true) = CRITICAL — full access to host kernel, devices, and network stack; equivalent to root on the nodehostNetwork: true = CRITICAL — container shares the node's network namespace; can intercept traffic from other pods on the same nodehostPID: true or hostIPC: true = HIGH — container can see and signal all processes on the host nodesecurityContext.readOnlyRootFilesystem: true = MEDIUM — writable filesystem increases attack surface for malware persistencelatest tag = HIGH — non-deterministic deployments; the same manifest can produce different containers on different nodesimage@sha256:...) = MEDIUM — tag can be overwritten in the registryresources.limits.memory set = HIGH — a single pod can consume all node memory and trigger OOM kills on other pods via the kernel OOM killerresources.limits.cpu set = MEDIUM — pod can starve other workloads of CPU; less severe than memory because CPU is compressibleresources.requests set = HIGH — scheduler cannot make informed placement decisions; pods may land on overcommitted nodesresources.requests much lower than resources.limits (>4x ratio) = MEDIUM — indicates over-commitment; the pod claims little but uses a lot, causing node pressureresources.limits.memory lower than application baseline = HIGH — pod will be OOM-killed repeatedly, causing CrashLoopBackOffspec.replicas: 1 in production = HIGH — single point of failure; any pod disruption causes full outagespec.replicas reduced from current value = MEDIUM — capacity reduction during a change is risky; validate that remaining capacity handles peak loadPodDisruptionBudget for production workloads = HIGH — voluntary disruptions (node drains, cluster upgrades) can evict all pods simultaneouslymaxUnavailable: 100% or minAvailable: 0 = CRITICAL — defeats the purpose of the PDB; all pods can be evicted at oncestrategy.rollingUpdate.maxUnavailable set too high (>25%) = HIGH — too many pods terminate before replacements are ready; causes capacity dip during rolloutstrategy.rollingUpdate.maxSurge: 0 with maxUnavailable: 0 = CRITICAL — deadlock; Kubernetes cannot create new pods or remove old onesstrategy.type: Recreate in production = CRITICAL — all old pods are killed before new pods start; guarantees downtime during deploymentminReadySeconds = MEDIUM — new pods are considered ready immediately; a pod that passes readiness probe once but fails under load will still receive trafficreadinessProbe defined = CRITICAL — Kubernetes sends traffic to pods that may not be ready to serve; causes errors during rollout and after restartslivenessProbe defined = MEDIUM — stuck/deadlocked pods are never restarted; process is running but not functionallivenessProbe with aggressive timing (periodSeconds < 5, failureThreshold < 3) = HIGH — healthy but briefly slow pods get killed unnecessarily, causing restart loopslivenessProbe and readinessProbe pointing to the same endpoint with same thresholds = MEDIUM — when the service is degraded, you want it removed from load balancer (readiness) but not killed (liveness); same config means degraded = killedstartupProbe missing on slow-starting applications = HIGH — liveness probe kills the pod before the application finishes initializationinitialDelaySeconds too short for applications with long startup (JVM, .NET, ML model loading) = HIGH — pod killed during warmupv2.14.1 → v2.15.0) = MEDIUM-HIGH — new code rolling into production; risk scales with change magnitudenode:18-alpine → node:20-alpine) = HIGH — runtime version change can introduce subtle behavior differencesimagePullPolicy: Never with a tag (not digest) = HIGH — uses whatever image is cached on the node; different nodes may run different versionsimagePullPolicy: Always with latest tag = CRITICAL — every pod restart pulls whatever is currently tagged latest; non-deterministicClusterRole with verbs: ["*"] on any resource = CRITICAL — wildcard permissions grant full controlClusterRole with resources: ["*"] = CRITICAL — applies to every resource type in the clusterClusterRoleBinding granting cluster-admin to a ServiceAccount used by a workload = CRITICAL — compromised pod gets full cluster accessRoleBinding or ClusterRoleBinding creation = HIGH — always review who/what is getting access and to what resourcesautomountServiceAccountToken: true (default) in pods that don't need API access = MEDIUM — unnecessary credential exposureSecret data changed = HIGH — verify the secret content is correct; wrong database password or API key causes runtime failures across all pods mounting the secretSecret referenced in environment variables instead of volume mounts = MEDIUM — environment variables appear in process listings, crash dumps, and log outputConfigMap change that is mounted as a volume = MEDIUM — existing pods see the change after kubelet sync delay (60-90 seconds by default); no restart needed but timing is unpredictableConfigMap change referenced via envFrom = HIGH — requires pod restart to pick up changes; running pods continue with old values until restartedNetworkPolicy = HIGH — all pods can communicate with all other pods in the cluster; no microsegmentationNetworkPolicy with empty ingress or egress rules = MEDIUM — blocks all traffic in that direction; can isolate pods unintentionallyNetworkPolicy with podSelector: {} (empty selector) = note — selects ALL pods in the namespace; verify this is intentionalNetworkPolicy = HIGH — instantly opens traffic that was previously restrictedNetworkPolicy referencing a label that no pod currently has = MEDIUM — policy exists but has no effect; may indicate a misconfigurationHorizontalPodAutoscaler targeting the same deployment as a manual replicas field = CRITICAL — HPA and manual replica count fight each other; HPA overwrites manual changesminReplicas: 1 in production = HIGH — autoscaler can scale down to single instance, creating a SPOFmaxReplicas too high without corresponding node capacity = MEDIUM — pods will be stuck in Pending if cluster autoscaler can't provision nodes fast enoughtargetCPUUtilizationPercentage too low (<30%) = MEDIUM — wasteful over-provisioning; too high (>80%) = HIGH — insufficient headroom for traffic spikes, pods may become unresponsive before new ones are readyPersistentVolumeClaim access mode change = HIGH — may require PV recreation, causing data access interruptionPersistentVolume reclaim policy Delete on production data = CRITICAL — volume and data destroyed when PVC is deletedStorageClass change on existing PVC = not supported — requires PVC recreation and data migrationemptyDir used for data that must survive pod restarts = HIGH — data is lost when pod is evicted, rescheduled, or OOM-killedkube-system namespace = CRITICAL — core cluster components; mistakes here affect the entire clusterdefault namespace in production = MEDIUM — indicates poor namespace hygiene; production workloads should have dedicated namespaces