news 2026/11/3 2:04:04

【Kubernetes】 常用命令速查与参数详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Kubernetes】 常用命令速查与参数详解

文章目录

    • 1. 环境管理 (Minikube)
      • 核心命令
        • `minikube start`
        • `minikube image`
        • `minikube docker-env`
        • `minikube tunnel`
    • 2. 资源查看与基础管理 (Basic Operations)
      • `kubectl get`
      • `kubectl describe`
      • `kubectl delete`
      • `kubectl explain`
    • 3. Pod 生命周期与调试 (Debugging)
      • `kubectl run`
      • `kubectl logs`
      • `kubectl exec`
      • `kubectl port-forward`
      • `kubectl cp`
    • 4. 标签与筛选 (Labels & Selectors)
      • `kubectl label`
      • Selector 参数 (`-l`)
    • 5. 控制器与应用管理 (Deployments & ReplicaSets)
      • `kubectl apply`
      • `kubectl scale`
      • `kubectl rollout`
      • `kubectl patch`
    • 6. Helm 包管理
      • 核心命令
        • `helm repo`
        • `helm search`
        • `helm install`
        • `helm upgrade`
        • `helm pull`
    • 7. 总结:常用的参数组合

本文档基于Kubernetes Up & Running学习笔记(Chapter 3 - 10),对学习过程中涉及的minikube、kubectl及helm命令进行系统性总结。

文档旨在不仅列出命令,更重点解释核心参数(Flags)的含义与使用场景,帮助理解命令背后的机制。


1. 环境管理 (Minikube)

Minikube 是我们在 macOS 上运行本地 Kubernetes 集群的工具。它在 Docker 容器中封装了一个单节点(或多节点)的 K8s 集群。

核心命令

minikube start

启动集群。

  • -p <name>: 指定配置文件的名称(Profile),用于同时管理多个集群。
  • --nodes <n>: 指定启动节点的数量。
  • --memory,--cpus: 限制虚拟机的资源(注意:集群创建后无法直接修改,需重建)。
# 启动一个名为 k8s-demo 的集群,包含 2 个节点minikube start-pk8s-demo--nodes2
minikube image

管理 Minikube 内部 Docker 环境的镜像。由于 Minikube 与宿主机 Docker 环境隔离,大镜像建议先下载到宿主机,再导入 Minikube。

  • load: 将宿主机 Docker 镜像导入 Minikube。
  • ls: 列出 Minikube 内的镜像。
# 将宿主机的 starrocks/fe-ubuntu:latest 导入 Minikubeminikube image load starrocks/fe-ubuntu:latest
minikube docker-env

配置当前 Shell 终端的环境变量,使其直接指向 Minikube 内部的 Docker Daemon。

  • 作用:执行后,宿主机的docker build命令会直接构建镜像到 Minikube 中,无需推送到远程仓库。
  • 退出:关闭终端或执行eval $(minikube docker-env -u)。
# 切换 Docker 环境指向 Minikubeeval$(minikube docker-env)
minikube tunnel

创建一个网络隧道,用于向宿主机暴露 LoadBalancer 类型的 Service。

  • 注意:该命令会独占一个终端窗口,且需要sudo权限。
sudominikube tunnel

2. 资源查看与基础管理 (Basic Operations)

这是与 K8s 交互最高频的命令组。

kubectl get

列出资源列表。

  • -o wide:最常用。显示更多列信息(如 Pod IP、所在 Node 节点、镜像名称)。
  • -o yaml/-o json: 输出资源的完整定义(常用于导出配置或查看系统添加的默认字段)。
  • --show-labels: 显示资源绑定的所有标签。
  • -w/--watch: 持续监听资源变化(类似于tail -f)。
  • -A/--all-namespaces: 列出所有命名空间的资源。
# 查看 Pod 运行在哪个节点上(排查调度问题)kubectl get pods-owide# 实时监控 Pod 创建过程kubectl get pods-w# 导出 Deployment 配置用于备份kubectl get deploy my-app-oyaml>my-app-backup.yaml

kubectl describe

查看资源的详细描述,是排错(Troubleshooting)的第一手工具。

  • 核心关注点:底部的Events区域。这里记录了调度成功、镜像拉取失败、探针检查失败等关键事件。
# 查看 Pod 启动失败的具体原因(如 ImagePullBackOff)kubectl describe pod my-pod-name

kubectl delete

删除资源。

  • -f <file>: 删除文件中定义的所有资源。
  • --now: 立即删除(忽略宽限期),强制终止。
# 根据配置文件删除资源kubectl delete-fnginx-pod.yaml

kubectl explain

内置的 API 文档手册。当忘记 YAML 字段层级时非常有用。

# 查看 Pod 的 spec.containers 字段下有哪些属性kubectl explain pod.spec.containers

3. Pod 生命周期与调试 (Debugging)

kubectl run

快速创建一个单 Pod(非 Deployment)。常用于临时测试或排错。

  • --image: 指定镜像。
  • --restart: 重启策略(Never创建普通 Pod,OnFailure创建 Job)。
  • --port: 指定容器暴露端口。
  • --dry-run=client -o yaml:技巧。不实际创建,而是生成 YAML 模板。
# 生成一个简单的 Pod YAML 模板kubectl run temp-pod--image=nginx--restart=Never --dry-run=client-oyaml>pod.yaml

kubectl logs

查看容器日志。

  • -f: 持续流式输出(Follow)。
  • -c <container>: 当 Pod 包含多个容器(如 Sidecar)时,必须指定容器名称。
  • --previous: 查看上一次崩溃前的日志(排查 CrashLoopBackOff)。
# 查看 starrocks namespace 下带有特定标签的 Pod 日志kubectl logs-nstarrocks-lapp.kubernetes.io/component=operator-f

kubectl exec

在运行的容器中执行命令。

  • -it: 分配交互式终端(Interactive TTY)。
  • --: 分隔符,用于区分 kubectl 参数和容器内命令。
# 进入容器内部 Shellkubectlexec-itmy-pod -- /bin/bash

kubectl port-forward

将集群内部端口映射到本地(localhost),用于调试未暴露公网的服务。

# 将 Pod 的 80 端口映射到本地 8080kubectl port-forward pod/nginx-pod8080:80

kubectl cp

在本地与容器之间复制文件。

# 将本地配置文件复制到容器内kubectlcp./config.toml my-pod:/etc/config/config.toml

4. 标签与筛选 (Labels & Selectors)

标签(Labels)是 K8s 组织资源的核心机制,Service 和 Deployment 均通过 Selector 关联 Pod。

kubectl label

添加或修改标签。

  • --overwrite: 覆盖已存在的标签值。
  • -: 移除标签(如key-)。
# 给 Pod 打上 env=production 标签kubectl label pods barenv=production# 移除 env 标签kubectl label pods bar env-

Selector 参数 (-l)

几乎所有 kubectl 命令都支持-l参数,用于批量操作。

# 删除所有 app=nginx 的 Podkubectl delete pods-lapp=nginx# 查看 release=canary 的所有资源kubectl get all-lrelease=canary

5. 控制器与应用管理 (Deployments & ReplicaSets)

涉及 Chapter 9 (ReplicaSets) 和 Chapter 10 (Deployments) 的核心内容。

kubectl apply

声明式配置的核心。根据文件内容创建或更新资源。

  • -f <file/dir>: 指定文件或目录。
kubectl apply-f./deployment.yaml

kubectl scale

手动调整副本数。

  • --replicas=<n>: 目标副本数。
# 将 Nginx 扩容到 3 个副本kubectl scale deployment nginx-deploy--replicas=3

kubectl rollout

管理 Deployment 的滚动更新。

  • status: 查看更新进度。
  • history: 查看历史版本。
  • undo: 回滚到上一个版本。
  • pause/resume: 暂停/恢复更新(常用于金丝雀发布)。
# 检查更新状态kubectl rollout status deployment/nginx-deploy# 回滚到上一个版本kubectl rollout undo deployment/nginx-deploy

kubectl patch

动态修改资源的特定字段,无需编辑完整 YAML。

  • --type='merge': 合并模式(默认)。
  • --type='json': JSON Patch 模式,支持更复杂的数组操作。
# 修改 Deployment 的镜像拉取策略kubectl patch deployment my-dep-p'{"spec":{"template":{"spec":{"containers":[{"name":"app","imagePullPolicy":"IfNotPresent"}]}}}}'

6. Helm 包管理

Helm 是 K8s 的包管理器,用于管理复杂的应用集合(Chart)。

核心命令

helm repo

管理 Chart 仓库。

  • add <name> <url>: 添加仓库。
  • update: 更新本地缓存。
helm search

查找 Chart。

  • repo <keyword>: 在已添加的仓库中搜索。
helm install

安装 Chart。

  • -n <ns> --create-namespace: 指定并自动创建命名空间。
  • -f values.yaml: 使用自定义配置文件覆盖默认值。
helminstallstarrocks starrocks/kube-starrocks-nstarrocks-fmy-values.yaml
helm upgrade

更新已安装的 Release。

  • 幂等性:如果配置未变,Helm 不会执行多余操作;如果变了,只更新差异部分。
  • 避坑:不要使用--force,已废弃。如有冲突,建议先 delete 冲突资源再 install/upgrade。
helm upgrade starrocks starrocks/kube-starrocks-nstarrocks-fmy-values.yaml
helm pull

下载 Chart 到本地查看。

  • --untar: 下载并自动解压。
# 下载并解压,以便查看其中的 values.yaml 默认配置helm pull starrocks/kube-starrocks--untar

7. 总结:常用的参数组合

场景推荐命令组合作用
日常巡检kubectl get pods -o wide查看 Pod IP 分布和所在节点
排查崩溃kubectl describe pod <name>查看 Events 事件和状态原因
排查应用kubectl logs -f <pod>实时查看应用日志
生成模板kubectl run tmp --image=img --dry-run=client -o yaml快速生成 YAML 骨架
批量清理kubectl delete pod -l app=demo按标签批量删除
强制删除kubectl delete pod <name> --grace-period=0 --force强制删除卡死的 Pod (慎用)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 2:03:04

Boogu-Image模型包:128Rank LoRA加速与多精度AI图像生成完整指南

Boogu-Image模型包&#xff1a;128Rank LoRA加速与多精度AI图像生成完整指南 Boogu-Image是一个专为ComfyUI优化的AI图像生成模型包&#xff0c;通过提供多种精度版本和128Rank Turbo LoRA模型&#xff0c;帮助用户在保持图像质量的同时显著提升生成效率。在前100字的介绍中&am…

作者头像 李华
网站建设 2026/11/3 2:00:04

【54】农作物虫害数据集(有v5/v8模型)/YOLO农作物虫害检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/3 1:57:58

【42】猫狗数据集(有v5/v8模型)/YOLO猫狗检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/3 1:56:17

Android自主代理评估基准创新突破:数据稀缺环境下的智能演进新范式

Android自主代理评估基准创新突破&#xff1a;数据稀缺环境下的智能演进新范式 Android自主代理技术正面临着评估标准不统一、真实环境还原度不足、测试任务覆盖有限等核心挑战。针对这些问题&#xff0c;AndroidGen项目构建了一套创新的评估基准体系&#xff0c;通过数据稀缺条…

作者头像 李华
网站建设 2026/11/3 1:53:36

Kimi-Audio-7B开源:70亿参数重新定义音频智能交互边界

Kimi-Audio-7B开源&#xff1a;70亿参数重新定义音频智能交互边界 导语 Moonshot AI正式开源Kimi-Audio-7B多模态音频大模型&#xff0c;以70亿参数实现语音识别、情感分析、音频生成等12项任务的一体化处理&#xff0c;为智能设备交互与内容创作领域带来变革性可能。 行业现…

作者头像 李华