程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

kubectl 命令入门速查表:从不会到能用

balukai 2025-07-09 10:57:51 文章精选 4 ℃

初学 Kubernetes,最重要也最基础的工具就是 kubectl。
但你是否曾被它的各种命令、参数搞晕?
本篇文章用一张“实用速查表 + 真实示例”,帮你从 0 上手 kubectl,做到“看得懂、敲得出、调得准”。


什么是 kubectl?

kubectl 是 Kubernetes 的命令行工具(CLI),你可以用它来:

  • 创建、更新、删除各种资源(如 Pod、Deployment)
  • 查看集群和资源的状态
  • 调试容器、日志分析
  • 管理配置与访问控制

简而言之,它是你与 Kubernetes 的“指挥部”对话的窗口


入门命令:快速掌握日常操作

类别

命令

说明

集群状态

kubectl cluster-info

查看集群信息

节点列表

kubectl get nodes

查看所有节点

所有资源

kubectl get all

查看当前命名空间的所有资源

所有命名空间资源

kubectl get all -A

所有命名空间全资源


资源管理:Pod、Deployment 快速操作

1. 获取资源状态

kubectl get pods                # 当前命名空间下所有 Pod
kubectl get deploy              # 获取 Deployment
kubectl get svc                 # 查看服务 Service
kubectl get pods -o wide        # 显示详细信息(IP、节点)
kubectl get pods -A             # 查看所有命名空间下的 Pod

2. 查看资源详细信息

kubectl describe pod my-pod     # 查看 Pod 详情
kubectl describe deploy my-deploy

提示:如果你怀疑某个 Pod 卡住了,describe 可以帮你查看事件(Events)。

3. 创建与删除资源

kubectl apply -f nginx.yaml     # 根据 YAML 创建/更新资源
kubectl delete -f nginx.yaml    # 删除 YAML 定义的资源
kubectl delete pod my-pod       # 删除指定 Pod

排错调试:日志 + 终端进入容器

1. 查看容器日志

kubectl logs my-pod                     # 查看 Pod 日志(单容器)
kubectl logs my-pod -c container-name   # 多容器 Pod 查看指定容器日志
kubectl logs -f my-pod                  # 实时追踪日志

2. 进入容器内部(类似 SSH)

kubectl exec -it my-pod -- /bin/sh
kubectl exec -it my-pod -c container-name -- /bin/bash

注意:容器镜像必须包含 sh 或 bash 才能进入。


临时测试工具 Pod(推荐技巧)

有时候你需要测试网络、DNS、连接情况,可以使用临时工具 Pod:

kubectl run testbox --rm -i -t --image=busybox -- /bin/sh

等价于快速拉起一个 busybox 容器进入交互模式,用完即删。


资源编辑、滚动更新、扩容

1. 手动编辑资源 YAML

kubectl edit deploy my-deploy

进入默认编辑器修改,保存后自动应用更新。

2. 滚动更新镜像版本

kubectl set image deploy/my-deploy nginx=nginx:1.25

更新 Deployment 中名为 nginx 的容器镜像,并触发滚动升级。

3. 扩容/缩容 Deployment 副本数

kubectl scale deploy my-deploy --replicas=3

进阶查询:label、selector、资源使用情况

1. 使用 Label 查询资源

kubectl get pods -l app=nginx

搭配命名空间查询:

kubectl get pods -n kube-system -l component=kube-proxy

2. 查看资源使用率(需安装 Metrics Server)

kubectl top pod        # 查看 Pod 的 CPU/MEM 使用
kubectl top node       # 查看各节点资源使用率

导出资源 YAML(推荐用于模板学习)

kubectl get deploy my-deploy -o yaml > my-deploy.yaml

你可以直接查看系统生成的完整 YAML 文件结构,进行自定义编辑。


常用组合参数说明

参数

含义

-n 或 --namespace

指定命名空间

-o wide

输出更多字段(如 IP、Node)

-o yaml/json

输出为 YAML 或 JSON 格式

-A

等价于 --all-namespaces

-f

指定 YAML 文件


快速上手模板(一键试用)

示例 Deployment 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80

部署命令:

kubectl apply -f nginx.yaml

小结:kubectl 命令体系记忆法

你可以这样理解:

操作类型

口诀

查看资源

kubectl get ...

查看详情

kubectl describe ...

日志输出

kubectl logs ...

进入容器

kubectl exec -it ... -- /bin/sh

创建更新

kubectl apply/delete -f ...

在线编辑

kubectl edit ...

临时工具

kubectl run ... --rm


推荐练习

  1. 使用 kubectl apply 创建一个 nginx Deployment;
  2. 用 kubectl edit 实现副本数从 2 改为 3;
  3. 用 kubectl exec 进入容器,执行 ping 操作;
  4. 用 kubectl get -o yaml 导出资源配置并手动修改;
  5. 创建 busybox 工具容器测试 DNS 解析。

关注我,不走丢,一起玩转 Kubernetes!

最近发表
标签列表