关于 kubernetes-operations
使用 kubectl 管理和排查 Kubernetes 集群,涵盖工作负载、网络、配置、存储与健康检查。强调声明式清单和显式指定上下文,以降低误操作集群的风险。
主要功能
- 01管理 Kubernetes 工作负载
- 02检查服务与网络
- 03处理 ConfigMaps、Secrets 和存储
- 04排查 Pod、日志与事件
- 05通过 dry-run 验证清单
- 06显式指定集群上下文
适用场景
- 01部署或检查 Kubernetes 资源
- 02诊断 Pod 健康状况与应用日志
- 03排查服务连通性
- 04检查集群配置与存储
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill kubernetes-operations安装后在 Claude Code 中输入/kubernetes-operations确认已加载。
附带文件REFERENCE.md
详细介绍
Kubernetes 运维
精通 kubectl 和云原生模式,具备 Kubernetes 集群管理、部署和故障排查方面的专业知识。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 …… |
|---|---|
| 使用 kubectl 管理 Pod、Deployment、Service、Ingress、ConfigMap 或 Secret | 如果需要使用 kubectl debug 创建临时容器或开启节点会话,请使用 kubectl-debugging |
| 应用或检查原始 Kubernetes 清单和 kustomize 覆盖配置 | 如果工作负载以 Helm Chart 的形式交付,请使用 helm-release-management |
| 诊断集群级别的网络、存储或工作负载健康状况 | 如果问题是在进行任何集群操作之前需要通过 ArgoCD 身份验证,请使用 argocd-login |
核心专业知识
Kubernetes 运维
- 工作负载管理:Deployment、StatefulSet、DaemonSet、Job 和 CronJob
- 网络:Service、Ingress、NetworkPolicy 和 DNS 配置
- 配置与存储:ConfigMap、Secret、PersistentVolume 和 PersistentVolumeClaim
- 故障排查:调试 Pod、分析日志和检查集群事件
集群运维流程
- 优先使用清单:管理资源时始终优先使用声明式 YAML 清单
- 验证并试运行:使用
kubectl apply --dry-run=client验证更改 - 检查并验证:应用更改后,使用
kubectl get、kubectl describe和kubectl logs进行验证 - 监控健康状况:持续检查节点、Pod 和 Service 的状态
- 清理:确保妥善回收旧资源或未使用的资源
基本命令
# Resource management
kubectl apply -f manifest.yaml
kubectl get pods -A
kubectl describe pod <pod-name>
kubectl logs -f <pod-name>
kubectl exec -it <pod-name> -- /bin/bash
# Debugging
kubectl get events --sort-by='.lastTimestamp'
kubectl top nodes
kubectl top pods --containers
kubectl port-forward <pod-name> 8080:80
# Deployment management
kubectl rollout status deployment/<name>
kubectl rollout history deployment/<name>
kubectl rollout undo deployment/<name>
# Cluster inspection
kubectl cluster-info
kubectl get nodes -o wide
kubectl api-resources
关键调试模式
Pod 调试
# Pod inspection
kubectl describe pod <pod-name>
kubectl get pod <pod-name> -o yaml
kubectl logs <pod-name> --previous
# Interactive debugging
kubectl exec -it <pod-name> -- /bin/bash
kubectl debug <pod-name> -it --image=busybox
kubectl port-forward <pod-name> 8080:80
网络故障排查
# Service debugging
kubectl get svc -o wide
kubectl get endpoints
kubectl describe svc <service>
# Network connectivity
kubectl run test-pod --image=busybox -it --rm -- sh
# Inside pod: nslookup, wget, nc commands
常见问题
# CrashLoopBackOff debugging
kubectl logs <pod> --previous
kubectl describe pod <pod>
kubectl get events --field-selector involvedObject.name=<pod>
# Resource constraints
kubectl top pod <pod>
kubectl describe pod <pod> | grep -A 5 Limits
# State management
kubectl state list
kubectl state show <resource>
最佳实践
上下文安全(关键)
- 每条 kubectl 命令中都要始终显式指定
--context - 切勿依赖当前上下文——它可能已被其他进程更改
- 所有操作均使用
kubectl --context=<context-name> get pods格式 - 这样可以避免误操作错误的集群(例如,在预发环境中运行生产环境命令)
# CORRECT: Explicit context
kubectl --context=gke_myproject_us-central1_prod get pods
kubectl --context=staging-cluster apply -f deployment.yaml
# WRONG: Relying on current context
kubectl get pods # Which cluster is this targeting?
资源定义
- 使用声明式 YAML 清单
- 实施适当的标签和选择器
- 定义资源请求和限制
- 配置健康检查(存活探针/就绪探针)
安全
- 使用 NetworkPolicy 限制流量
- 使用 RBAC 实施访问控制
- 将敏感数据存储在 Secret 中
- 以非 root 用户身份运行容器
监控
- 配置适当的日志和指标
- 为关键状况设置告警
- 使用健康检查和就绪探针
- 监控资源使用情况和配额
Agent 优化
| 上下文 | 命令 |
|---|---|
| Pod 状态(结构化) | kubectl get pods -n <ns> -o json | jq '.items[] | {name:.metadata.name, status:.status.phase}' |
| 快速概览 | kubectl get pods -n <ns> -o wide |
| 事件(精简) | kubectl get events -n <ns> --sort-by='.lastTimestamp' -o json |
| 资源详情 | kubectl get <resource> -o json |
| 日志(限制条数) | kubectl logs <pod> -n <ns> --tail=50 |
如需详细的调试命令、故障排查模式、Helm 工作流和高级 K8s 运维内容,请参阅 REFERENCE.md。
评论
支持 Markdown