From kubernetes
Explains Kubernetes resources like Pods, Deployments, ReplicaSets, Services, Ingress, ConfigMaps, Secrets, PVs, PVCs, and StatefulSets with YAML examples. Use when authoring or managing K8s manifests.
npx claudepluginhub thebushidocollective/han --plugin kubernetesThis skill cannot use any tools. It operates in read-only mode without the ability to modify files or execute commands.
Understanding Kubernetes resource types and their relationships.
Guides Kubernetes manifest creation for deployments, services, ingress, ConfigMaps, Secrets; kubectl commands for deploying, scaling, troubleshooting clusters.
Generates production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, Secrets, and PersistentVolumeClaims following best practices and security standards. Use for creating K8s YAML resources or production configurations.
Guides step-by-step creation of production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, Secrets, and PersistentVolumeClaims with best practices.
Share bugs, ideas, or general feedback.
Understanding Kubernetes resource types and their relationships.
The smallest deployable unit in Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: app
image: nginx:1.21
Maintains a stable set of replica Pods:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
# Pod template
Manages ReplicaSets and provides declarative updates:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
# ...
Exposes Pods to network traffic:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: ClusterIP
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
HTTP/HTTPS routing to services:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
Cluster-level storage resource:
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
Request for storage:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: standard
Non-sensitive configuration data:
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
config.json: |
{
"key": "value"
}
Sensitive information:
apiVersion: v1
kind: Secret
metadata:
name: app-secret
type: Opaque
stringData:
username: admin
password: secret123
For stateful applications:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 3
selector:
matchLabels:
app: nginx
template:
# Pod template
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
Runs a Pod on every Node:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: monitoring-agent
spec:
selector:
matchLabels:
name: monitoring-agent
template:
# Pod template
Run-to-completion tasks:
apiVersion: batch/v1
kind: Job
metadata:
name: batch-job
spec:
template:
spec:
containers:
- name: job
image: busybox
command: ["echo", "Hello"]
restartPolicy: Never
backoffLimit: 4
Scheduled jobs:
apiVersion: batch/v1
kind: CronJob
metadata:
name: scheduled-job
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: busybox
command: ["echo", "Daily task"]
restartPolicy: OnFailure