[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post-kubernetes-初识与常用命令介绍":3},{"post":4,"prev_post":28,"next_post":32},{"id":5,"title":6,"slug":7,"summary":8,"cover_url":9,"status":10,"is_pinned":11,"view_count":12,"published_at":13,"created_at":14,"updated_at":15,"author":16,"category":22,"tags":25,"content_md":26,"content_html":27,"comment_count":23},3,"Kubernetes-初识与常用命令介绍","kubernetes-初识与常用命令介绍","本文是 Kubernetes 的入门指南，分为「初识」与「常用命令」两部分。初识篇从部署演进讲起（物理机→虚拟机→容器→编排），解释 K8s 为什么出现，以及它作为容器编排平台能提供的服务发现、存储编排、自动部署回滚、自我修复等能力；随后介绍集群架构（控制平面 + 工作节点）、Pod\u002FDeployment\u002FService 等核心资源对象，以及「声明式 API + 期望状态」这一核心设计思想，并给出 minikube、kind、k3s 三种本地环境搭建方案。命令篇系统梳理 `kubectl` 的常用命令：集群信息、资源查看（get\u002Fdescribe）、创建更新（apply）、扩缩容与滚动更新（scale\u002Frollout）、调试排查（get→describe→logs 黄金流程）、删除、多集群上下文切换，并附常用资源类型速查表。适合零基础读者快速建立 K8s 心智模型并上手日常操作。","\u002Fapi\u002Fdownloads\u002Ffiles\u002F75\u002Fthumbnail?size=800","published",false,315,"2026-08-27T10:01:51","2026-08-27T09:59:49","2026-09-11T08:41:26.501197+00:00",{"id":17,"username":18,"display_name":19,"avatar_url":20,"bio":21},2,"FwindEmi","狐风轩汐","\u002Fuploads\u002Favatars\u002F2_4c71188069e24466897fa1b0fdb6a48b.png","我是屑狐狸",{"id":23,"name":24,"slug":24},1,"技术教程",[],"# Kubernetes 初识与常用命令介绍\n\n> 从「一堆容器」到「一个集群」——理解 K8s 的核心概念与架构，掌握 `kubectl` 常用命令，快速上手云原生时代的基础设施技能。\n\n## 一、初识 Kubernetes\n\n### 1.1 为什么需要 Kubernetes\n\n回顾部署方式的演进，每一步都是在解决上一阶段的痛点：\n\n\n| 阶段       | 特点                         | 痛点                               |\n| ---------- | ---------------------------- | ---------------------------------- |\n| 传统部署   | 应用直接跑在物理机上         | 资源争抢、运维成本高、难以扩容     |\n| 虚拟化部署 | 每台 VM 一个完整操作系统     | 隔离性提升但资源开销大、启动慢     |\n| 容器部署   | 共享内核、秒级启动、轻量隔离 | **容器数量一多，手动管理就失控了** |\n\n容器化解决了「怎么打包」的问题，但成百上千个容器怎么调度、怎么保证高可用、怎么弹性伸缩、怎么服务发现，这些编排问题 Docker 本身解决不了。于是 Kubernetes 出现了。\n\n### 1.2 Kubernetes 是什么\n\nKubernetes（简称 K8s）是一个开源的容器编排平台，源自 Google 内部十几年大规模容器管理经验的 Borg 系统，2014 年开源，2015 年捐给 CNCF（云原生计算基金会），如今是云原生生态的绝对事实标准。\n\n一句话概括：**你告诉它「我想要什么状态」，它负责把实际状态调成期望状态，并且持续保持。**\n\n### 1.3 Kubernetes 能做什么\n\n- **服务发现与负载均衡**：自动分配 DNS 名称和 IP，流量大了自动分流\n- **存储编排**：自动挂载本地存储、NFS、云存储，无需手动配卷\n- **自动部署与回滚**：以受控速率滚动更新，出问题秒级回滚\n- **自动装箱**：根据声明的 CPU\u002F内存需求，自动调度到最优节点\n- **自我修复**：自动重启失败的容器、替换不健康的实例\n- **密钥与配置管理**：ConfigMap\u002FSecret 安全存储配置，不重建镜像即可更新\n\n### 1.4 集群架构\n\n一个 K8s 集群由**控制平面（Control Plane）**和**工作节点（Worker Node）**组成：\n\n```\n┌─────────────────── 控制平面 ───────────────────┐\n│  kube-apiserver    集群唯一入口，所有操作的网关     │\n│  etcd              分布式键值存储，集群的「数据库」   │\n│  kube-scheduler    决定 Pod 调度到哪个节点          │\n│  kube-controller-manager  控制器，维护期望状态      │\n└──────────────────────┬────────────────────────┘\n                       │\n┌─────────────────── 工作节点 ───────────────────┐\n│  kubelet           节点代理，确保容器按规格运行      │\n│  kube-proxy        网络代理，实现 Service 转发      │\n│  容器运行时         containerd \u002F CRI-O 等          │\n└────────────────────────────────────────────────┘\n```\n\n### 1.5 核心资源对象\n\n\n| 对象                   | 作用                                                     |\n| ---------------------- | -------------------------------------------------------- |\n| **Pod**                | 最小调度单元，1 个或多个共享网络\u002F存储的容器集合          |\n| **Deployment**         | 声明副本数，负责滚动更新、回滚、扩缩容（无状态应用首选） |\n| **Service**            | 稳定的网络入口，自动负载均衡到一组 Pod                   |\n| **Namespace**          | 命名空间，逻辑隔离，多团队共享集群                       |\n| **ConfigMap \u002F Secret** | 配置与敏感数据，与镜像解耦                               |\n| **PV \u002F PVC**           | 持久化存储，独立于 Pod 生命周期                          |\n| **Ingress**            | 七层入口，把 HTTP 流量路由到不同 Service                 |\n| **StatefulSet**        | 有状态应用（数据库等），每个 Pod 有持久唯一身份          |\n| **DaemonSet**          | 每个节点都运行一个副本（日志采集、监控等）               |\n\n### 1.6 声明式 API 与期望状态\n\nK8s 最核心的设计思想是**声明式**：你通过 YAML 描述「期望状态」，K8s 的控制循环持续对比「实际状态」，有差异就调谐（reconcile），直到两者一致。\n\n```\nkubectl apply -f deployment.yaml\n        ↓\nAPI Server 校验并写入 etcd\n        ↓\nController 发现「实际 ≠ 期望」→ 调谐\n        ↓\nScheduler 分配到最优节点\n        ↓\nkubelet 拉起容器 → 变成 Running\n```\n\n这也是为什么 K8s 里「改了配置只是第一步，它自己会去达成」——你只管声明，执行交给平台。\n\n### 1.7 本地环境怎么搭\n\n没有现成集群时，本地学习最常用这三个：\n\n- **minikube**：单节点集群，最接近真实，适合完整学习\n- **kind**：Docker 里的 Kubernetes，秒级起集群，适合 CI\u002F快速试验\n- **k3s**：轻量发行版，资源占用极小，适合边缘\u002F学习机\n\nWindows 上装 Docker Desktop 自带 Kubernetes 选项，勾上即可体验。\n\n## 二、kubectl 常用命令\n\n`kubectl` 是操作集群的命令行工具。语法：\n\n```\nkubectl [command] [TYPE] [NAME] [flags]\n```\n\n- `command`：操作，如 `get` \u002F `describe` \u002F `delete`\n- `TYPE`：资源类型，单数\u002F复数\u002F缩写均可（`pod` \u002F `pods` \u002F `po` 等价）\n- `NAME`：资源名称，省略则操作该类型全部资源\n\n### 2.1 集群信息\n\n```bash\n# 查看集群信息\nkubectl cluster-info\n\n# 查看客户端\u002F服务端版本\nkubectl version\n\n# 查看所有节点（-o wide 显示 IP 等更多信息）\nkubectl get nodes\nkubectl get nodes -o wide\n\n# 查看节点资源使用情况（需要 metrics-server）\nkubectl top nodes\n```\n\n### 2.2 查看资源（最常用）\n\n```bash\n# 查看某命名空间下的 Pod \u002F Service \u002F Deployment\nkubectl get pods\nkubectl get services\nkubectl get deployments\n\n# 查看所有命名空间的资源（-A = --all-namespaces）\nkubectl get pods -A\nkubectl get pods --all-namespaces\n\n# 查看指定命名空间\nkubectl get pods -n my-namespace\n\n# 查看某个具体资源\nkubectl get pod my-pod\nkubectl get pods my-pod -o yaml    # 完整 YAML（排障必看）\nkubectl get pods my-pod -o json    # JSON 格式\nkubectl get pods -o wide           # 显示节点、IP、所在节点\n\n# 持续监听变化（Ctrl+C 退出）\nkubectl get pods -w\n\n# 按标签筛选\nkubectl get pods -l app=nginx\n\n# 查看资源详情（事件、状态、最近状态变更，排障第一步）\nkubectl describe pod my-pod\nkubectl describe node my-node\n\n# 查看全部资源类型\nkubectl api-resources\n```\n\n### 2.3 创建与更新资源\n\n```bash\n# 声明式创建\u002F更新（推荐，幂等，改完 apply 即可）\nkubectl apply -f deployment.yaml\nkubectl apply -f .\u002Fmy-config\u002F          # 整个目录\nkubectl apply -f https:\u002F\u002Fexample.com\u002Fx.yaml   # 远程 URL\n\n# 命令式创建（快速试验用，生产不推荐）\nkubectl create deployment nginx --image=nginx\nkubectl create namespace dev\n\n# 用标准输入\necho '...yaml...' | kubectl apply -f -\n\n# 直接编辑线上资源（会用默认编辑器打开）\nkubectl edit deployment nginx\n\n# 对比文件与线上差异（改前先看）\nkubectl diff -f deployment.yaml\n```\n\n### 2.4 扩缩容与滚动更新\n\n```bash\n# 调整副本数\nkubectl scale deployment nginx --replicas=5\n\n# 更新镜像\nkubectl set image deployment\u002Fnginx nginx=nginx:1.25\n\n# 查看滚动更新状态\nkubectl rollout status deployment\u002Fnginx\n\n# 查看更新历史\nkubectl rollout history deployment\u002Fnginx\n\n# 回滚到上一个版本\nkubectl rollout undo deployment\u002Fnginx\n\n# 回滚到指定版本\nkubectl rollout undo deployment\u002Fnginx --to-revision=2\n\n# 手动重启（配置更新后常用）\nkubectl rollout restart deployment\u002Fnginx\n```\n\n### 2.5 调试与排查（get → describe → logs）\n\n```bash\n# 查看日志（排障核心）\nkubectl logs my-pod\nkubectl logs my-pod -f                    # 实时跟踪\nkubectl logs my-pod --previous            # 上次崩溃容器的日志\nkubectl logs my-pod -c my-container       # 多容器 Pod 指定容器\nkubectl logs -l app=nginx --tail=100      # 按标签批量 + 只取末尾 100 行\n\n# 进入容器交互式 shell\nkubectl exec -it my-pod -- \u002Fbin\u002Fbash\nkubectl exec -it my-pod -c my-container -- sh\n\n# 把文件拷进\u002F拷出容器\nkubectl cp my-pod:\u002Fvar\u002Flog\u002Fapp.log .\u002Fapp.log\nkubectl cp .\u002Fconfig.json my-pod:\u002Fetc\u002Fconfig.json\n\n# 端口转发：把集群内端口映射到本地调试\nkubectl port-forward pod\u002Fmy-pod 8080:80\nkubectl port-forward svc\u002Fmy-service 8080:80\n\n# 查看集群事件（排障高价值信息）\nkubectl get events\nkubectl get events --sort-by=.lastTimestamp\n```\n\n排障黄金流程：**`get` 看状态 → `describe` 看事件 → `logs` 看日志**，基本能定位 90% 的问题。\n\n### 2.6 删除资源\n\n```bash\nkubectl delete pod my-pod\nkubectl delete deployment nginx\nkubectl delete -f deployment.yaml        # 按文件删除（连带相关资源）\nkubectl delete pods --all                # 删除某命名空间下所有 Pod\nkubectl delete ns dev                    # 删除整个命名空间（连带内部所有资源！）\nkubectl delete pod my-pod --grace-period=0 --force   # 强制删除（卡 Terminating 时）\n```\n\n### 2.7 上下文与多集群切换\n\n```bash\n# 查看当前上下文和所有上下文\nkubectl config current-context\nkubectl config get-contexts\n\n# 切换上下文（多集群\u002F多环境切换的关键）\nkubectl config use-context my-cluster\n\n# 快捷查看默认命名空间\nkubectl get ns\n```\n\n### 2.8 常用资源类型速查\n\n\n| 缩写         | 全称                                     | 中文                          |\n| ------------ | ---------------------------------------- | ----------------------------- |\n| `po`         | Pod                                      | 最小调度单元                  |\n| `deploy`     | Deployment                               | 无状态工作负载                |\n| `svc`        | Service                                  | 服务发现\u002F负载均衡             |\n| `ns`         | Namespace                                | 命名空间                      |\n| `no`         | Node                                     | 节点                          |\n| `cm`         | ConfigMap                                | 配置                          |\n| `secret`     | Secret                                   | 密钥                          |\n| `pv` \u002F `pvc` | PersistentVolume \u002F PersistentVolumeClaim | 持久化存储                    |\n| `ing`        | Ingress                                  | 七层入口                      |\n| `sts`        | StatefulSet                              | 有状态工作负载                |\n| `ds`         | DaemonSet                                | 节点级守护                    |\n| `rs`         | ReplicaSet                               | 副本集（Deployment 内部管理） |\n\n---\n\n## 三、小贴士\n\n- **多装个 alias**：`alias k=kubectl`，日常操作省一半打字\n- **学会 `-o` 组合**：`-o wide`、`-o yaml`、`-o json`、`-o name` 是查信息的四板斧\n- **先 diff 再 apply**：改线上配置前 `kubectl diff -f`，养成习惯能避免很多事故\n- **k9s 值得一试**：终端版可视化管理工具，界面化浏览所有资源\n- **文档权威来源**：[Kubernetes 官方中文文档](https:\u002F\u002Fkubernetes.io\u002Fzh-cn\u002Fdocs\u002F) 和 [kubectl 命令参考](https:\u002F\u002Fkubernetes.io\u002Fzh-cn\u002Fdocs\u002Freference\u002Fkubectl\u002F) 是最靠谱的学习资料\n\nKubernetes 入门不难，难的是把「声明式」「期望状态」「控制循环」这套心智模型建立起来。命令敲熟 + 概念想通，后面学 Helm、Istio、Operator 都是水到渠成的事。\n","\u003Ch1 id=\"kubernetes\">Kubernetes 初识与常用命令介绍\u003C\u002Fh1>\n\u003Cblockquote>\n\u003Cp>从「一堆容器」到「一个集群」——理解 K8s 的核心概念与架构，掌握 \u003Ccode>kubectl\u003C\u002Fcode> 常用命令，快速上手云原生时代的基础设施技能。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"kubernetes_1\">一、初识 Kubernetes\u003C\u002Fh2>\n\u003Ch3 id=\"11-kubernetes\">1.1 为什么需要 Kubernetes\u003C\u002Fh3>\n\u003Cp>回顾部署方式的演进，每一步都是在解决上一阶段的痛点：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>阶段\u003C\u002Fth>\n\u003Cth>特点\u003C\u002Fth>\n\u003Cth>痛点\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>传统部署\u003C\u002Ftd>\n\u003Ctd>应用直接跑在物理机上\u003C\u002Ftd>\n\u003Ctd>资源争抢、运维成本高、难以扩容\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>虚拟化部署\u003C\u002Ftd>\n\u003Ctd>每台 VM 一个完整操作系统\u003C\u002Ftd>\n\u003Ctd>隔离性提升但资源开销大、启动慢\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>容器部署\u003C\u002Ftd>\n\u003Ctd>共享内核、秒级启动、轻量隔离\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>容器数量一多，手动管理就失控了\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>容器化解决了「怎么打包」的问题，但成百上千个容器怎么调度、怎么保证高可用、怎么弹性伸缩、怎么服务发现，这些编排问题 Docker 本身解决不了。于是 Kubernetes 出现了。\u003C\u002Fp>\n\u003Ch3 id=\"12-kubernetes\">1.2 Kubernetes 是什么\u003C\u002Fh3>\n\u003Cp>Kubernetes（简称 K8s）是一个开源的容器编排平台，源自 Google 内部十几年大规模容器管理经验的 Borg 系统，2014 年开源，2015 年捐给 CNCF（云原生计算基金会），如今是云原生生态的绝对事实标准。\u003C\u002Fp>\n\u003Cp>一句话概括：\u003Cstrong>你告诉它「我想要什么状态」，它负责把实际状态调成期望状态，并且持续保持。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3 id=\"13-kubernetes\">1.3 Kubernetes 能做什么\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>服务发现与负载均衡\u003C\u002Fstrong>：自动分配 DNS 名称和 IP，流量大了自动分流\u003C\u002Fli>\n\u003Cli>\u003Cstrong>存储编排\u003C\u002Fstrong>：自动挂载本地存储、NFS、云存储，无需手动配卷\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自动部署与回滚\u003C\u002Fstrong>：以受控速率滚动更新，出问题秒级回滚\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自动装箱\u003C\u002Fstrong>：根据声明的 CPU\u002F内存需求，自动调度到最优节点\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自我修复\u003C\u002Fstrong>：自动重启失败的容器、替换不健康的实例\u003C\u002Fli>\n\u003Cli>\u003Cstrong>密钥与配置管理\u003C\u002Fstrong>：ConfigMap\u002FSecret 安全存储配置，不重建镜像即可更新\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"14\">1.4 集群架构\u003C\u002Fh3>\n\u003Cp>一个 K8s 集群由\u003Cstrong>控制平面（Control Plane）\u003C\u002Fstrong>和\u003Cstrong>工作节点（Worker Node）\u003C\u002Fstrong>组成：\u003C\u002Fp>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>┌─────────────────── 控制平面 ───────────────────┐\n│  kube-apiserver    集群唯一入口，所有操作的网关     │\n│  etcd              分布式键值存储，集群的「数据库」   │\n│  kube-scheduler    决定 Pod 调度到哪个节点          │\n│  kube-controller-manager  控制器，维护期望状态      │\n└──────────────────────┬────────────────────────┘\n                       │\n┌─────────────────── 工作节点 ───────────────────┐\n│  kubelet           节点代理，确保容器按规格运行      │\n│  kube-proxy        网络代理，实现 Service 转发      │\n│  容器运行时         containerd \u002F CRI-O 等          │\n└────────────────────────────────────────────────┘\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"15\">1.5 核心资源对象\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>对象\u003C\u002Fth>\n\u003Cth>作用\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Pod\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>最小调度单元，1 个或多个共享网络\u002F存储的容器集合\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Deployment\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>声明副本数，负责滚动更新、回滚、扩缩容（无状态应用首选）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Service\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>稳定的网络入口，自动负载均衡到一组 Pod\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Namespace\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>命名空间，逻辑隔离，多团队共享集群\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>ConfigMap \u002F Secret\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>配置与敏感数据，与镜像解耦\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>PV \u002F PVC\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>持久化存储，独立于 Pod 生命周期\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>Ingress\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>七层入口，把 HTTP 流量路由到不同 Service\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>StatefulSet\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>有状态应用（数据库等），每个 Pod 有持久唯一身份\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>DaemonSet\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>每个节点都运行一个副本（日志采集、监控等）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"16-api\">1.6 声明式 API 与期望状态\u003C\u002Fh3>\n\u003Cp>K8s 最核心的设计思想是\u003Cstrong>声明式\u003C\u002Fstrong>：你通过 YAML 描述「期望状态」，K8s 的控制循环持续对比「实际状态」，有差异就调谐（reconcile），直到两者一致。\u003C\u002Fp>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>kubectl apply -f deployment.yaml\n        ↓\nAPI Server 校验并写入 etcd\n        ↓\nController 发现「实际 ≠ 期望」→ 调谐\n        ↓\nScheduler 分配到最优节点\n        ↓\nkubelet 拉起容器 → 变成 Running\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cp>这也是为什么 K8s 里「改了配置只是第一步，它自己会去达成」——你只管声明，执行交给平台。\u003C\u002Fp>\n\u003Ch3 id=\"17\">1.7 本地环境怎么搭\u003C\u002Fh3>\n\u003Cp>没有现成集群时，本地学习最常用这三个：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>minikube\u003C\u002Fstrong>：单节点集群，最接近真实，适合完整学习\u003C\u002Fli>\n\u003Cli>\u003Cstrong>kind\u003C\u002Fstrong>：Docker 里的 Kubernetes，秒级起集群，适合 CI\u002F快速试验\u003C\u002Fli>\n\u003Cli>\u003Cstrong>k3s\u003C\u002Fstrong>：轻量发行版，资源占用极小，适合边缘\u002F学习机\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Windows 上装 Docker Desktop 自带 Kubernetes 选项，勾上即可体验。\u003C\u002Fp>\n\u003Ch2 id=\"kubectl\">二、kubectl 常用命令\u003C\u002Fh2>\n\u003Cp>\u003Ccode>kubectl\u003C\u002Fcode> 是操作集群的命令行工具。语法：\u003C\u002Fp>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"n\">kubectl\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"o\">[\u003C\u002Fspan>\u003Cspan class=\"n\">command\u003C\u002Fspan>\u003Cspan class=\"o\">]\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"o\">[\u003C\u002Fspan>\u003Cspan class=\"n\">TYPE\u003C\u002Fspan>\u003Cspan class=\"o\">]\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"o\">[\u003C\u002Fspan>\u003Cspan class=\"n\">NAME\u003C\u002Fspan>\u003Cspan class=\"o\">]\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"o\">[\u003C\u002Fspan>\u003Cspan class=\"n\">flags\u003C\u002Fspan>\u003Cspan class=\"o\">]\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cul>\n\u003Cli>\u003Ccode>command\u003C\u002Fcode>：操作，如 \u003Ccode>get\u003C\u002Fcode> \u002F \u003Ccode>describe\u003C\u002Fcode> \u002F \u003Ccode>delete\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>TYPE\u003C\u002Fcode>：资源类型，单数\u002F复数\u002F缩写均可（\u003Ccode>pod\u003C\u002Fcode> \u002F \u003Ccode>pods\u003C\u002Fcode> \u002F \u003Ccode>po\u003C\u002Fcode> 等价）\u003C\u002Fli>\n\u003Cli>\u003Ccode>NAME\u003C\u002Fcode>：资源名称，省略则操作该类型全部资源\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"21\">2.1 集群信息\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 查看集群信息\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>cluster-info\n\n\u003Cspan class=\"c1\"># 查看客户端\u002F服务端版本\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>version\n\n\u003Cspan class=\"c1\"># 查看所有节点（-o wide 显示 IP 等更多信息）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>nodes\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>nodes\u003Cspan class=\"w\"> \u003C\u002Fspan>-o\u003Cspan class=\"w\"> \u003C\u002Fspan>wide\n\n\u003Cspan class=\"c1\"># 查看节点资源使用情况（需要 metrics-server）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>top\u003Cspan class=\"w\"> \u003C\u002Fspan>nodes\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"22\">2.2 查看资源（最常用）\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 查看某命名空间下的 Pod \u002F Service \u002F Deployment\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>services\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>deployments\n\n\u003Cspan class=\"c1\"># 查看所有命名空间的资源（-A = --all-namespaces）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>-A\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>--all-namespaces\n\n\u003Cspan class=\"c1\"># 查看指定命名空间\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>-n\u003Cspan class=\"w\"> \u003C\u002Fspan>my-namespace\n\n\u003Cspan class=\"c1\"># 查看某个具体资源\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pod\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>-o\u003Cspan class=\"w\"> \u003C\u002Fspan>yaml\u003Cspan class=\"w\">    \u003C\u002Fspan>\u003Cspan class=\"c1\"># 完整 YAML（排障必看）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>-o\u003Cspan class=\"w\"> \u003C\u002Fspan>json\u003Cspan class=\"w\">    \u003C\u002Fspan>\u003Cspan class=\"c1\"># JSON 格式\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>-o\u003Cspan class=\"w\"> \u003C\u002Fspan>wide\u003Cspan class=\"w\">           \u003C\u002Fspan>\u003Cspan class=\"c1\"># 显示节点、IP、所在节点\u003C\u002Fspan>\n\n\u003Cspan class=\"c1\"># 持续监听变化（Ctrl+C 退出）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>-w\n\n\u003Cspan class=\"c1\"># 按标签筛选\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>-l\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nv\">app\u003C\u002Fspan>\u003Cspan class=\"o\">=\u003C\u002Fspan>nginx\n\n\u003Cspan class=\"c1\"># 查看资源详情（事件、状态、最近状态变更，排障第一步）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>describe\u003Cspan class=\"w\"> \u003C\u002Fspan>pod\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>describe\u003Cspan class=\"w\"> \u003C\u002Fspan>node\u003Cspan class=\"w\"> \u003C\u002Fspan>my-node\n\n\u003Cspan class=\"c1\"># 查看全部资源类型\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>api-resources\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"23\">2.3 创建与更新资源\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 声明式创建\u002F更新（推荐，幂等，改完 apply 即可）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>apply\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment.yaml\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>apply\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>.\u002Fmy-config\u002F\u003Cspan class=\"w\">          \u003C\u002Fspan>\u003Cspan class=\"c1\"># 整个目录\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>apply\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>https:\u002F\u002Fexample.com\u002Fx.yaml\u003Cspan class=\"w\">   \u003C\u002Fspan>\u003Cspan class=\"c1\"># 远程 URL\u003C\u002Fspan>\n\n\u003Cspan class=\"c1\"># 命令式创建（快速试验用，生产不推荐）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>create\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u003Cspan class=\"w\"> \u003C\u002Fspan>nginx\u003Cspan class=\"w\"> \u003C\u002Fspan>--image\u003Cspan class=\"o\">=\u003C\u002Fspan>nginx\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>create\u003Cspan class=\"w\"> \u003C\u002Fspan>namespace\u003Cspan class=\"w\"> \u003C\u002Fspan>dev\n\n\u003Cspan class=\"c1\"># 用标准输入\u003C\u002Fspan>\n\u003Cspan class=\"nb\">echo\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"s1\">'...yaml...'\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"p\">|\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>kubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>apply\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>-\n\n\u003Cspan class=\"c1\"># 直接编辑线上资源（会用默认编辑器打开）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>edit\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u003Cspan class=\"w\"> \u003C\u002Fspan>nginx\n\n\u003Cspan class=\"c1\"># 对比文件与线上差异（改前先看）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>diff\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment.yaml\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"24\">2.4 扩缩容与滚动更新\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 调整副本数\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>scale\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u003Cspan class=\"w\"> \u003C\u002Fspan>nginx\u003Cspan class=\"w\"> \u003C\u002Fspan>--replicas\u003Cspan class=\"o\">=\u003C\u002Fspan>\u003Cspan class=\"m\">5\u003C\u002Fspan>\n\n\u003Cspan class=\"c1\"># 更新镜像\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nb\">set\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>image\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nv\">nginx\u003C\u002Fspan>\u003Cspan class=\"o\">=\u003C\u002Fspan>nginx:1.25\n\n\u003Cspan class=\"c1\"># 查看滚动更新状态\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>rollout\u003Cspan class=\"w\"> \u003C\u002Fspan>status\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\n\n\u003Cspan class=\"c1\"># 查看更新历史\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>rollout\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nb\">history\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\n\n\u003Cspan class=\"c1\"># 回滚到上一个版本\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>rollout\u003Cspan class=\"w\"> \u003C\u002Fspan>undo\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\n\n\u003Cspan class=\"c1\"># 回滚到指定版本\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>rollout\u003Cspan class=\"w\"> \u003C\u002Fspan>undo\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\u003Cspan class=\"w\"> \u003C\u002Fspan>--to-revision\u003Cspan class=\"o\">=\u003C\u002Fspan>\u003Cspan class=\"m\">2\u003C\u002Fspan>\n\n\u003Cspan class=\"c1\"># 手动重启（配置更新后常用）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>rollout\u003Cspan class=\"w\"> \u003C\u002Fspan>restart\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u002Fnginx\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"25-get-describe-logs\">2.5 调试与排查（get → describe → logs）\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 查看日志（排障核心）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>logs\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>logs\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\">                    \u003C\u002Fspan>\u003Cspan class=\"c1\"># 实时跟踪\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>logs\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>--previous\u003Cspan class=\"w\">            \u003C\u002Fspan>\u003Cspan class=\"c1\"># 上次崩溃容器的日志\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>logs\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>-c\u003Cspan class=\"w\"> \u003C\u002Fspan>my-container\u003Cspan class=\"w\">       \u003C\u002Fspan>\u003Cspan class=\"c1\"># 多容器 Pod 指定容器\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>logs\u003Cspan class=\"w\"> \u003C\u002Fspan>-l\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nv\">app\u003C\u002Fspan>\u003Cspan class=\"o\">=\u003C\u002Fspan>nginx\u003Cspan class=\"w\"> \u003C\u002Fspan>--tail\u003Cspan class=\"o\">=\u003C\u002Fspan>\u003Cspan class=\"m\">100\u003C\u002Fspan>\u003Cspan class=\"w\">      \u003C\u002Fspan>\u003Cspan class=\"c1\"># 按标签批量 + 只取末尾 100 行\u003C\u002Fspan>\n\n\u003Cspan class=\"c1\"># 进入容器交互式 shell\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nb\">exec\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>-it\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>--\u003Cspan class=\"w\"> \u003C\u002Fspan>\u002Fbin\u002Fbash\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"nb\">exec\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>-it\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>-c\u003Cspan class=\"w\"> \u003C\u002Fspan>my-container\u003Cspan class=\"w\"> \u003C\u002Fspan>--\u003Cspan class=\"w\"> \u003C\u002Fspan>sh\n\n\u003Cspan class=\"c1\"># 把文件拷进\u002F拷出容器\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>cp\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod:\u002Fvar\u002Flog\u002Fapp.log\u003Cspan class=\"w\"> \u003C\u002Fspan>.\u002Fapp.log\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>cp\u003Cspan class=\"w\"> \u003C\u002Fspan>.\u002Fconfig.json\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod:\u002Fetc\u002Fconfig.json\n\n\u003Cspan class=\"c1\"># 端口转发：把集群内端口映射到本地调试\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>port-forward\u003Cspan class=\"w\"> \u003C\u002Fspan>pod\u002Fmy-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"m\">8080\u003C\u002Fspan>:80\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>port-forward\u003Cspan class=\"w\"> \u003C\u002Fspan>svc\u002Fmy-service\u003Cspan class=\"w\"> \u003C\u002Fspan>\u003Cspan class=\"m\">8080\u003C\u002Fspan>:80\n\n\u003Cspan class=\"c1\"># 查看集群事件（排障高价值信息）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>events\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>events\u003Cspan class=\"w\"> \u003C\u002Fspan>--sort-by\u003Cspan class=\"o\">=\u003C\u002Fspan>.lastTimestamp\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cp>排障黄金流程：\u003Cstrong>\u003Ccode>get\u003C\u002Fcode> 看状态 → \u003Ccode>describe\u003C\u002Fcode> 看事件 → \u003Ccode>logs\u003C\u002Fcode> 看日志\u003C\u002Fstrong>，基本能定位 90% 的问题。\u003C\u002Fp>\n\u003Ch3 id=\"26\">2.6 删除资源\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>kubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>pod\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment\u003Cspan class=\"w\"> \u003C\u002Fspan>nginx\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>-f\u003Cspan class=\"w\"> \u003C\u002Fspan>deployment.yaml\u003Cspan class=\"w\">        \u003C\u002Fspan>\u003Cspan class=\"c1\"># 按文件删除（连带相关资源）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>pods\u003Cspan class=\"w\"> \u003C\u002Fspan>--all\u003Cspan class=\"w\">                \u003C\u002Fspan>\u003Cspan class=\"c1\"># 删除某命名空间下所有 Pod\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>ns\u003Cspan class=\"w\"> \u003C\u002Fspan>dev\u003Cspan class=\"w\">                    \u003C\u002Fspan>\u003Cspan class=\"c1\"># 删除整个命名空间（连带内部所有资源！）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>delete\u003Cspan class=\"w\"> \u003C\u002Fspan>pod\u003Cspan class=\"w\"> \u003C\u002Fspan>my-pod\u003Cspan class=\"w\"> \u003C\u002Fspan>--grace-period\u003Cspan class=\"o\">=\u003C\u002Fspan>\u003Cspan class=\"m\">0\u003C\u002Fspan>\u003Cspan class=\"w\"> \u003C\u002Fspan>--force\u003Cspan class=\"w\">   \u003C\u002Fspan>\u003Cspan class=\"c1\"># 强制删除（卡 Terminating 时）\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"27\">2.7 上下文与多集群切换\u003C\u002Fh3>\n\u003Cdiv class=\"highlight\">\u003Cpre>\u003Cspan>\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"c1\"># 查看当前上下文和所有上下文\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>config\u003Cspan class=\"w\"> \u003C\u002Fspan>current-context\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>config\u003Cspan class=\"w\"> \u003C\u002Fspan>get-contexts\n\n\u003Cspan class=\"c1\"># 切换上下文（多集群\u002F多环境切换的关键）\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>config\u003Cspan class=\"w\"> \u003C\u002Fspan>use-context\u003Cspan class=\"w\"> \u003C\u002Fspan>my-cluster\n\n\u003Cspan class=\"c1\"># 快捷查看默认命名空间\u003C\u002Fspan>\nkubectl\u003Cspan class=\"w\"> \u003C\u002Fspan>get\u003Cspan class=\"w\"> \u003C\u002Fspan>ns\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Ch3 id=\"28\">2.8 常用资源类型速查\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>缩写\u003C\u002Fth>\n\u003Cth>全称\u003C\u002Fth>\n\u003Cth>中文\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>po\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Pod\u003C\u002Ftd>\n\u003Ctd>最小调度单元\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>deploy\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Deployment\u003C\u002Ftd>\n\u003Ctd>无状态工作负载\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>svc\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Service\u003C\u002Ftd>\n\u003Ctd>服务发现\u002F负载均衡\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ns\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Namespace\u003C\u002Ftd>\n\u003Ctd>命名空间\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>no\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Node\u003C\u002Ftd>\n\u003Ctd>节点\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>cm\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ConfigMap\u003C\u002Ftd>\n\u003Ctd>配置\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>secret\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Secret\u003C\u002Ftd>\n\u003Ctd>密钥\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>pv\u003C\u002Fcode> \u002F \u003Ccode>pvc\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>PersistentVolume \u002F PersistentVolumeClaim\u003C\u002Ftd>\n\u003Ctd>持久化存储\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ing\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Ingress\u003C\u002Ftd>\n\u003Ctd>七层入口\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>sts\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>StatefulSet\u003C\u002Ftd>\n\u003Ctd>有状态工作负载\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ds\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>DaemonSet\u003C\u002Ftd>\n\u003Ctd>节点级守护\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>rs\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ReplicaSet\u003C\u002Ftd>\n\u003Ctd>副本集（Deployment 内部管理）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Chr>\n\u003Ch2 id=\"_1\">三、小贴士\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>多装个 alias\u003C\u002Fstrong>：\u003Ccode>alias k=kubectl\u003C\u002Fcode>，日常操作省一半打字\u003C\u002Fli>\n\u003Cli>\u003Cstrong>学会 \u003Ccode>-o\u003C\u002Fcode> 组合\u003C\u002Fstrong>：\u003Ccode>-o wide\u003C\u002Fcode>、\u003Ccode>-o yaml\u003C\u002Fcode>、\u003Ccode>-o json\u003C\u002Fcode>、\u003Ccode>-o name\u003C\u002Fcode> 是查信息的四板斧\u003C\u002Fli>\n\u003Cli>\u003Cstrong>先 diff 再 apply\u003C\u002Fstrong>：改线上配置前 \u003Ccode>kubectl diff -f\u003C\u002Fcode>，养成习惯能避免很多事故\u003C\u002Fli>\n\u003Cli>\u003Cstrong>k9s 值得一试\u003C\u002Fstrong>：终端版可视化管理工具，界面化浏览所有资源\u003C\u002Fli>\n\u003Cli>\u003Cstrong>文档权威来源\u003C\u002Fstrong>：\u003Ca href=\"https:\u002F\u002Fkubernetes.io\u002Fzh-cn\u002Fdocs\u002F\">Kubernetes 官方中文文档\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fkubernetes.io\u002Fzh-cn\u002Fdocs\u002Freference\u002Fkubectl\u002F\">kubectl 命令参考\u003C\u002Fa> 是最靠谱的学习资料\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Kubernetes 入门不难，难的是把「声明式」「期望状态」「控制循环」这套心智模型建立起来。命令敲熟 + 概念想通，后面学 Helm、Istio、Operator 都是水到渠成的事。\u003C\u002Fp>",{"id":29,"title":30,"slug":31},5,"利用Mutagen实现Win与Linux远程秒级双向工作区文件同步","利用mutagen实现win与linux远程秒级双向工作区文件同步",{"id":23,"title":33,"slug":34},"锐界幻境 MiragEdge","锐界幻境-miragedge"]