k8s常用指令集合

pod 相关

复制代码
# 1. 查看所有命名空间的Pod(全局视角)
kubectl get pods -A
kubectl get pods --all-namespaces

# 2. 查看指定命名空间的Pod(生产常用,例如ns=default)
kubectl get pods -n default
kubectl get pods -n 你的命名空间

# 3. 查看Pod详细信息(含IP、节点、状态、重启次数等)
kubectl describe pod <pod名称> -n <命名空间>
# 简写:kubectl describe po <pod名> -n <ns>

# 4. 查看Pod状态(精简输出,仅显示名称、就绪数、状态、重启次数、年龄)
kubectl get pods -n <ns> -o wide

# 5. 过滤Pod(按状态、标签等)
# 查看所有Running状态的Pod
kubectl get pods -n <ns> --field-selector status.phase=Running
# 查看所有异常状态(非Running)的Pod
kubectl get pods -n <ns> --field-selector status.phase!=Running
# 按标签过滤(例如标签app=nginx)
kubectl get pods -n <ns> -l app=nginx

# 6. 查看Pod的IP和所在节点
kubectl get pods -n <ns> -o custom-columns=NAME:.metadata.name,IP:.status.podIP,NODE:.spec.nodeName

deployment 相关

复制代码
# 1. 查看所有命名空间的Deployment
kubectl get deploy -A
kubectl get deployments --all-namespaces

# 2. 查看指定命名空间的Deployment
kubectl get deploy -n <命名空间>
kubectl get deployments -n <ns>

# 3. 查看Deployment详细信息(含副本数、镜像、滚动更新策略等)
kubectl describe deploy <deploy名称> -n <ns>

# 4. 查看Deployment的副本状态(就绪数/期望数)
kubectl get deploy -n <ns> -o wide
# 查看Deployment的Pod模板
kubectl get deploy <deploy名> -n <ns> -o yaml | grep -A 20 "template:"

# 5. 过滤Deployment(按标签)
kubectl get deploy -n <ns> -l app=nginx

service 相关

复制代码
# 1. 查看所有命名空间的Service
kubectl get svc -A
kubectl get services --all-namespaces

# 2. 查看指定命名空间的Service
kubectl get svc -n <命名空间>
kubectl get services -n <ns>

# 3. 查看Service详细信息(含端口映射、后端Pod选择器、ClusterIP等)
kubectl describe svc <svc名称> -n <ns>

# 4. 查看Service的Endpoint(验证后端Pod是否关联成功)
# Endpoint就绪=Service能正常转发流量到Pod
kubectl get endpoints <svc名称> -n <ns>
kubectl describe endpoints <svc名称> -n <ns>

# 5. 查看Service的网络详情(含NodePort/LoadBalancer地址)
kubectl get svc -n <ns> -o wide

其他资源

复制代码
# 1. 查看命名空间
kubectl get ns
kubectl describe ns <命名空间>

# 2. 查看节点(Node)状态(集群资源使用情况)
kubectl get nodes
kubectl describe node <节点名称>
# 查看节点资源使用率(CPU/内存/磁盘)
kubectl top nodes

# 3. 查看StatefulSet(有状态服务)
kubectl get sts -A
kubectl describe sts <sts名称> -n <ns>

# 4. 查看ConfigMap/Secret(配置与密钥)
kubectl get configmap -n <ns>
kubectl get secret -n <ns>
# 查看Secret明文(需解码)
kubectl get secret <secret名> -n <ns> -o jsonpath='{.data}' | jq -r 'to_entries[] | .key + ": " + (.value | @base64d)'

正常运行的 Pod 日志(实时 / 历史)

复制代码
# 1. 实时查看Pod日志(类似tail -f)
kubectl logs -f <pod名称> -n <ns>

# 2. 查看Pod日志(指定行数,例如最近100行)
kubectl logs --tail=100 <pod名称> -n <ns>

# 3. 查看Pod日志(指定时间范围,例如近1小时)
kubectl logs <pod名称> -n <ns> --since=1h
# 查看某个时间点之后的日志(格式:YYYY-MM-DDTHH:MM:SSZ)
kubectl logs <pod名称> -n <ns> --since-time="2025-01-01T00:00:00Z"

# 4. 多容器Pod日志(需指定容器名)
# 先查看Pod内的容器名
kubectl describe pod <pod名称> -n <ns> | grep "Container ID"
# 查看指定容器的日志
kubectl logs -f <pod名称> -c <容器名称> -n <ns>

# 5. 保存日志到文件(便于后续分析)
kubectl logs <pod名称> -n <ns> --tail=1000 > pod-logs-$(date +%Y%m%d).log

进入容器

复制代码
kubectl exec -it <Pod名称> [-n <命名空间>] [-c <容器名称>] -- /bin/bash
相关推荐
oMcLin13 分钟前
如何在 CentOS Stream 9 上配置并优化 PostgreSQL 15,支持高并发的数据插入与快速查询?
linux·postgresql·centos
柏木乃一14 分钟前
进程(11)进程替换函数详解
linux·服务器·c++·操作系统·exec
ben9518chen19 分钟前
Linux文件系统基础
linux·服务器·php
鋆雨无欢丶22 分钟前
docker证书认证问题
运维·docker·容器
晴天¥23 分钟前
计算机网络-Linux配置-DNS解析/为什么会出现ping: www.baidu.com: 未知的名称或服务
linux·运维·计算机网络
阿杰 AJie23 分钟前
Docker 容器启动的全方位方法汇总
运维·docker·容器
原神启动130 分钟前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
代码游侠30 分钟前
应用——Linux FrameBuffer图形显示与多线程消息系统项目
linux·运维·服务器·开发语言·前端·算法
深圳市恒讯科技32 分钟前
如何从损坏的Windows或Linux VPS中恢复文件
linux·运维·windows
我的golang之路果然有问题34 分钟前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka