Kubernetes 技能资料,主题为 kubectl 命令与 Kubernetes 常用模式,覆盖部署、服务、Pod、调试与集群管理。当用户提出“deploy to k8s”“create deployment”等需求时可使用。
一、用途 该资料用于在 Kubernetes 集群中执行日常操作与排障,包括:查看与切换上下文、设置命名空间、管理 Pod 与 Deployment、定义与暴露 Service、创建 ConfigMap 与 Secret、应用与删除清单文件,以及排查常见异常。
二、主要能力
- 上下文与命名空间:查看/切换 context、设置当前命名空间、在命令中指定 -n 或 -A。
- Pod 操作:列表与筛选(-o wide、-w、--show-labels、-l 标签)、describe、导出 YAML、日志(-f、--tail、-c 容器、--previous)、exec 进入容器、port-forward、cp 复制文件、delete(含强制删除)。
- Deployment:创建、列出、扩缩容、更新镜像、查看发布状态、回滚(含指定版本)、查看发布历史、滚动重启,并提供 Deployment YAML 模板(副本数、selector、容器、端口、资源 requests/limits、livenessProbe/readinessProbe、env 与 secretKeyRef)。
- Service:ClusterIP、LoadBalancer、NodePort 三种类型示例;kubectl expose 快速暴露;列出与 describe。
- ConfigMap 与 Secret:从字面量或文件创建 ConfigMap;创建 generic Secret;查看及 base64 解码。
- 应用与删除:apply 单文件、目录或远程 URL,delete 按文件、按资源或按标签;--dry-run=client/server 预演。
- 调试速查:Pod 未启动时 describe 与事件排序、CrashLoopBackOff 查看前次日志、服务无法连接时检查 endpoints 与临时 busybox 调试、资源问题用 kubectl top 与 describe node 检查可分配与已分配。
三、使用方式 以 kubectl 命令行与 YAML 清单为主。命令示例包括:kubectl config get-contexts、kubectl config use-context production、kubectl config set-context --current --namespace=my-app、kubectl get pods -n kube-system、kubectl create deployment web --image=nginx:latest --replicas=3、kubectl scale deployment web --replicas=5、kubectl set image deployment/web nginx=nginx:1.25、kubectl rollout undo deployment/web --to-revision=2、kubectl rollout restart deployment/web、kubectl expose deployment web --port=80 --target-port=8080、kubectl apply -f ./k8s/、kubectl delete all -l app=web、kubectl get events --sort-by='.lastTimestamp'、kubectl run debug --rm -it --image=busybox -- wget -qO- http://my-service、kubectl top pods 等。YAML 示例可作为 Deployment 与 Service 的模板使用。
四、适用场景
- 通过 kubectl 管理集群上的工作负载与服务。
- 进行 Deployment 的发布、扩缩容、回滚与滚动重启。
- 配置注入(环境变量、ConfigMap、Secret)。
- 服务暴露与端口转发、文件复制等调试操作。
- 排查 Pod 启动失败、CrashLoopBackOff、服务不可达与资源占用问题。
五、限制 资料未提供具体环境版本要求、权限配置、集群安装步骤或收费信息,暂未提供。部分命令(如 LoadBalancer、top、node 描述)依赖集群环境与相关组件支持,资料未说明前置条件,暂未提供。文中提及的 references/debugging.md 与 references/manifests.md 属于资料内部引用,其具体内容未在本次信息中给出。