K8S命令最全详解(2026最新详细版)

K8S是大型架构核心,下面我详解K8S命令@mikechen

一、查看集群信息
1、查看集群节点

kubectl get nodes

输出:

NAME       STATUS   ROLES
master01   Ready    control-plane
node01     Ready    worker
node02     Ready    worker

查看更详细信息:

kubectl get nodes -o wide

2、查看集群状态

kubectl cluster-info

输出:

Kubernetes control plane is running at https://10.0.0.1:6443
CoreDNS is running at https://10.0.0.1:6443/api/v1

作用:

  • 查看API Server地址
  • 查看核心组件状态

二、Pod管理命令
3、查看Pod
最常用命令:

kubectl get pods

查看所有命名空间:

kubectl get pods -A

查看详细信息:

kubectl get pods -o wide

查看实时变化:

kubectl get pods -w

4、查看Pod详情

kubectl describe pod nginx

查看内容:

  • IP地址
  • 镜像信息
  • 事件(Event)
  • 挂载卷
  • 资源限制

5、查看Pod日志

kubectl logs nginx

查看实时日志:

kubectl logs -f nginx

查看最近100行:

kubectl logs --tail=100 nginx

多容器Pod:

kubectl logs nginx -c app

6、进入Pod内部
类似Docker exec:

kubectl exec -it nginx -- bash

Alpine镜像:

kubectl exec -it nginx -- sh

用途:

  • 排查问题
  • 检查配置
  • 测试网络

三、Deployment管理
7、查看Deployment

kubectl get deploy

详细查看:

kubectl describe deploy nginx

8、创建Deployment

kubectl create deployment nginx \
--image=nginx:latest

查看:

kubectl get deploy

9、扩容副本数
扩容到5个实例:

kubectl scale deployment nginx \
--replicas=5

查看:

kubectl get pods

扩容前:

nginx-1

扩容后:

nginx-1
nginx-2
nginx-3
nginx-4
nginx-5

10、滚动更新
升级镜像:

kubectl set image deployment/nginx \
nginx=nginx:1.27

查看升级状态:

kubectl rollout status deployment/nginx

11、版本回滚
查看历史版本:

kubectl rollout history deployment/nginx

回滚:

kubectl rollout undo deployment/nginx

指定版本回滚:

kubectl rollout undo deployment/nginx \
--to-revision=2

四、Service管理
12、查看Service

kubectl get svc

详细查看:

kubectl describe svc nginx

输出:

NAME      TYPE        CLUSTER-IP
nginx     ClusterIP   10.96.0.10

13、暴露服务
创建Service:

kubectl expose deployment nginx \
--port=80 \
--target-port=80 \
--type=NodePort

查看:

kubectl get svc

五、配置文件管理
14、应用YAML配置
部署资源:

kubectl apply -f nginx.yaml

目录部署:

kubectl apply -f ./yaml/

查看变化:

kubectl diff -f nginx.yaml

这是生产环境最推荐方式。

15、删除资源
删除Pod:

kubectl delete pod nginx

删除Deployment:

kubectl delete deployment nginx

删除YAML资源:

kubectl delete -f nginx.yaml

七、生产环境排障命令组合
当线上服务出现故障时,大厂工程师通常按下面顺序排查:
第一步:查看Pod

kubectl get pods

第二步:查看详情

kubectl describe pod xxx

重点看:

Events

是否存在:

ImagePullBackOff
CrashLoopBackOff
OOMKilled

第三步:查看日志

kubectl logs -f xxx

第四步:进入容器

kubectl exec -it xxx -- bash

检查:

ps -ef
netstat -tunlp
curl

第五步:检查Service

kubectl get svc

第六步:检查节点

kubectl get nodes

八、面试高频问题
Q1:get和describe区别?
get
查看资源列表

kubectl get pods

describe
查看资源详细信息

kubectl describe pod nginx

Q2:apply和create区别?
create
第一次创建

kubectl create -f nginx.yaml

重复执行会报错。
apply
声明式管理

kubectl apply -f nginx.yaml

支持增量更新。

生产环境推荐:

kubectl apply

Q3:线上排查最常用哪几个命令?
TOP5:

kubectl get pods
kubectl describe pod
kubectl logs
kubectl exec
kubectl get events

总结
生产环境中使用频率最高的15个K8S命令如下:

分类 核心命令
集群管理 get nodes、cluster-info
Pod管理 get、describe、logs、exec
Deployment create、scale、rollout
Service get svc、expose
YAML管理 apply、delete
故障排查 logs、describe、events

 

评论交流
    说说你的看法