关于 k8s
k8s 是面向 Kubernetes 集群的管理技能,适用于部署、扩缩容和维护容器化应用的 Agent。内容涵盖从资源配置到故障排查的常见操作,并提供 kubectl 命令和 YAML 清单用法。
主要功能
- 01通过 YAML 或命令部署 Pod
- 02扩缩 Deployment 和 ReplicaSet
- 03配置服务、存储与集群资源
- 04管理 Secret 和 ConfigMap
- 05使用 kubectl 查看日志与事件
适用场景
- 01部署多容器应用
- 02按负载调整副本数
- 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 等监控技能提供输出。