mcpField
K
k8s

k8s

github.com/alphaonedev云与 DevOps51 次安装
代码仓库

关于 k8s

k8s 是面向 Kubernetes 集群的管理技能,适用于部署、扩缩容和维护容器化应用的 Agent。内容涵盖从资源配置到故障排查的常见操作,并提供 kubectl 命令和 YAML 清单用法。

主要功能

  1. 01通过 YAML 或命令部署 Pod
  2. 02扩缩 Deployment 和 ReplicaSet
  3. 03配置服务、存储与集群资源
  4. 04管理 Secret 和 ConfigMap
  5. 05使用 kubectl 查看日志与事件

适用场景

  1. 01部署多容器应用
  2. 02按负载调整副本数
  3. 03排查集群资源问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill k8s

安装后在 Claude Code 中输入/k8s确认已加载。

详细介绍

k8s

用途

此技能可帮助 AI 使用 Kubernetes 编排和管理容器化应用,重点关注集群中 Pod、服务和部署的扩缩容、部署与维护。

使用时机

在部署多容器应用、动态扩缩工作负载、管理生产环境资源或排查集群问题时使用此技能。处理超出基础 Docker 范畴的容器编排任务时也可使用,例如 CI/CD 流水线或微服务架构中的任务。

核心能力

  • 使用 YAML 清单或命令式命令部署和管理 Pod。
  • 使用 Deployment 和 ReplicaSet 扩缩应用,例如根据 CPU 指标自动扩缩容。
  • 通过 ClusterIP、NodePort 或 LoadBalancer 类型暴露服务。
  • 使用 PersistentVolume 和 PersistentVolumeClaim 管理存储。
  • 使用 kubectl logs 和事件等内置工具监控和调试资源。
  • 集成网络插件,实现服务发现和负载均衡。
  • 管理 Secret 和 ConfigMap,实现安全配置。

使用模式

始终使用有效的 kubeconfig 文件进行身份验证,并通过 $KUBECONFIG 环境变量设置该文件。对于声明式设置,编写 YAML 文件并应用;对于命令式任务,直接使用 kubectl。使用模式:通过 kubectl config use-context my-context 加载上下文,然后执行操作。在脚本中加入错误检查,例如验证命令退出代码。

示例 1:部署简单的 Nginx Pod。

  • 创建 Pod:kubectl run nginx-pod --image=nginx --port=80
  • 暴露 Pod:kubectl expose pod nginx-pod --type=NodePort --port=80
  • 验证:kubectl get pods -l run=nginx-pod

示例 2:扩缩 Deployment。

  • 应用 Deployment YAML:kubectl apply -f deployment.yaml
  • deployment.yaml 的内容如下:apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container image: my-image
  • 扩缩:kubectl scale deployment my-app --replicas=5
  • 检查状态:kubectl get deployments my-app

常用命令/API

使用 kubectl 进行 CLI 交互;如需访问 API,请连接 Kubernetes API 服务器上的端点,例如 /api/v1/pods。如有需要,使用 --namespace 标志指定命名空间。

  • 获取资源:kubectl get pods --namespace=default -o wide(标志:-o 用于指定输出格式,--namespace 用于指定作用范围)
  • 创建资源:kubectl apply -f pod.yaml --record(标志:-f 用于指定文件,--record 用于记录历史)
  • 删除资源:kubectl delete deployment my-app --cascade=foreground(标志:--cascade 用于清理依赖项)
  • 更新资源:kubectl set image deployment/my-app my-container=my-image:new-tag
  • API 端点:使用 curl 进行身份验证,例如:curl -k -H "Authorization: Bearer $KUBE_TOKEN" https://api.example.com/api/v1/namespaces/default/pods
  • 配置格式:清单使用 YAML,例如:apiVersion: v1 kind: Pod metadata: name: example spec: containers: - name: example image: nginx
  • 环境设置:导出 $KUBECONFIG=/path/to/config 以进行身份验证。

集成说明

通过 Kubernetes API 或 Operator 将 Kubernetes 与其他工具集成。身份验证时,kubeconfig 文件使用 $KUBECONFIG,API 令牌使用 $KUBE_API_KEY。使用模式:在脚本中检查是否已设置 $KUBECONFIG;如果未设置,则提示用户或报错退出。对于 CI/CD,可使用 Argo CD 或 Jenkins 插件等工具;例如,使用 Helm 图表打包,并通过 helm install my-chart ./chart-dir 安装。设置 kubeconfig 中特定于云提供商的配置,确保与 AWS EKS 等云提供商兼容。

错误处理

始终检查 kubectl 退出代码;如果非零,请使用 kubectl describe <resource> 获取详情。常见错误:"NotFound" 表示资源缺失——先使用 kubectl get 检查资源是否存在;"Forbidden" 表示权限不足——请核实 RBAC 角色。在代码中,用 try-catch 块包装命令,例如,在 Python 中:import subprocess; try: subprocess.run(['kubectl', 'get', 'pods'], check=True) except subprocess.CalledProcessError as e: print(f"Error: {e}")。对于 API 调用,通过指数退避重试等方式处理 403 或 500 等 HTTP 错误。使用 kubectl get events --namespace=default 记录事件,以便诊断问题。

图关系

  • 与集群相关:devops-sre(例如,链接到 CI/CD 工具等其他 devops 技能)。
  • 通过标签关联:kubernetes(例如,与容器管理技能相关)、k8s(kubernetes 的同义词)、containers(链接到 Docker 或编排技能)。
  • 潜在关联:此技能依赖网络和存储技能;它为 Prometheus 等监控技能提供输出。

评论

支持 Markdown