mcpField
K
kubernetes-operations

kubernetes-operations

github.com/laurigates云与 DevOps5976 次安装今天更新
代码仓库

关于 kubernetes-operations

使用 kubectl 管理和排查 Kubernetes 集群,涵盖工作负载、网络、配置、存储与健康检查。强调声明式清单和显式指定上下文,以降低误操作集群的风险。

主要功能

  1. 01管理 Kubernetes 工作负载
  2. 02检查服务与网络
  3. 03处理 ConfigMaps、Secrets 和存储
  4. 04排查 Pod、日志与事件
  5. 05通过 dry-run 验证清单
  6. 06显式指定集群上下文

适用场景

  1. 01部署或检查 Kubernetes 资源
  2. 02诊断 Pod 健康状况与应用日志
  3. 03排查服务连通性
  4. 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、分析日志和检查集群事件

集群运维流程

  1. 优先使用清单:管理资源时始终优先使用声明式 YAML 清单
  2. 验证并试运行:使用 kubectl apply --dry-run=client 验证更改
  3. 检查并验证:应用更改后,使用 kubectl get、kubectl describe 和 kubectl logs 进行验证
  4. 监控健康状况:持续检查节点、Pod 和 Service 的状态
  5. 清理:确保妥善回收旧资源或未使用的资源

基本命令

# 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