K8s入门实战
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/kubernetes-basics
技能介绍
要解决的实际问题
第一次把应用放进 Kubernetes 时,最麻烦的往往不是概念,而是 YAML 写法、启动失败和网络不通连在一起:Pod 卡在 CrashLoopBackOff,镜像拉不下来,Service 有 Endpoints 但访问不到,Docker Compose 能跑的配置迁过来后却不知如何拆成 Deployment、Service 和 ConfigMap。本技能面向这些第一次部署和迁移场景。
技能如何工作
- 先对齐资源金字塔:Pod、ReplicaSet、Deployment、Service、ConfigMap/Secret、Ingress、StatefulSet、Job/CronJob 各自解决什么问题。
- 再生成最小可用配置:
Deployment定义副本和滚动更新,Service提供稳定入口,可选Ingress暴露 HTTP 路由。关键项包括resources.requests/resources.limits、livenessProbe/readinessProbe和securityContext。 - 按状态排障:
Pending查调度事件,ImagePullBackOff查镜像和拉取凭证,CrashLoopBackOff查kubectl logs --previous,OOMKilled查内存限制,Terminating卡住查 preStop 或强制删除。 - 补齐配置与网络检查:通过
envFrom、configMapKeyRef或 volume mount 注入配置;Service 不通先看 labels 与 Endpoints,NodePort 不通看防火墙,DNS 不通看 CoreDNS。 - 输出工程化结果:给出完整 YAML、从现象到根因的排查步骤,以及健康检查、资源限制和安全上下文提醒。
适用边界
适合第一次部署应用、编写基础 K8s YAML、从 Docker Compose 迁移以及排障。不覆盖 kubeadm/kops/托管集群的集群搭建,也不处理复杂 Helm Chart 开发。
使用场景
- 第一次将 Node.js API 部署到 K8s,需要编写 Deployment、Service 与 Ingress 的完整 YAML 并验证服务可达
- Pod 启动后状态为 CrashLoopBackOff,需要查看历史日志与配置并定位根因
- 从 Docker Compose 迁移到 K8s,需要把应用拆成 Deployment、ConfigMap、Secret 等资源并重建访问方式
- Service 访问不通,需要检查 Pod labels 与 Endpoints、NodePort 防火墙以及 CoreDNS 是否正常
适合人员
- 首次把 Web 应用部署到 K8s 的后端开发者,需要写出可运行的 Deployment 与 Service 配置
- 从 Docker Compose 迁移到 K8s 的运维工程师,需要重构资源与配置注入方式
- 负责 K8s 排障的 SRE,需要按 Pod 状态和 Service 网络路径定位根因
- 刚接触容器编排的开发工程师,需要理解 Pod、Service、ConfigMap 的协作关系