Skip to content

kubectl get - 显示资源列表

基本语法

bash
kubectl get <资源类> [资源名称] [选项参数]
  • 资源类型:支持复数形式(如 pods)、单数形式(如 pod)或缩写(如 po)。
  • 资源名称:可选,指定具体资源名称(支持通配符 *)。
  • 选项参数:控制输出格式、过滤条件等。

资源类型

核心工作负载

资源类型缩写查询示例关键字段
podspokubectl get po -o widestatus.phase, spec.nodeName
deploymentsdeploykubectl get deploy -wspec.replicas, status.availableReplicas
replicasetsrskubectl get rs --show-labelsspec.selector.matchLabels
statefulsetsstskubectl get sts -n dbspec.serviceName, spec.volumeClaimTemplates
daemonsetsdskubectl get ds -Astatus.desiredNumberScheduled
jobs-kubectl get jobs -n batchspec.completions, status.succeeded
cronjobscjkubectl get cjspec.schedule, status.lastScheduleTime

服务与网络

资源类型缩写关键用途特殊参数
servicessvc服务暴露和负载均衡-o jsonpath='{.spec.ports[*].targetPort}'
endpointsep查看实际服务端点kubectl get ep <svc-name>
ingressesing7层路由规则kubectl get ing -o yaml查看重定向规则
networkpoliciesnetpol网络隔离策略kubectl describe netpol

存储资源

资源类型缩写关键命令生产注意点
persistentvolumespvkubectl get pv --sort-by=.spec.capacity.storage关注 reclaimPolicy
persistentvolumeclaimspvckubectl get pvc -n storage检查 status.phase 是否为 Bound
storageclassessckubectl get sc确认 provisioner 类型

配置与安全

资源类型缩写典型查询重要字段
configmapscmkubectl get cm -o jsondata 字段内容
secrets-kubectl get secrets-o yaml查看 base64 解码内容
serviceaccountssakubectl get sa -n kube-system关联的 secrets
roles/rolebindings-kubectl get rolebindings -A检查 subjects.kind

扩展资源 (CRD)

资源类型缩写所属项目生产级查询示例
certificates.cert-manager.iocertCert-Managerkubectl get cert -n ingress
virtualservices.networking.istio.iovsIstiokubectl get vs -n istio-system
prometheuses.monitoring.coreos.com-Prometheus Operatorkubectl get prometheus -n monitoring

核心选项参数详解

输出控制

参数说明示例
-o, --output指定输出格式: wide(显示更多字段) yaml/json(原始定义) name(仅资源名称) custom-columns(自定义列)kubectl get po -o wide kubectl get deploy -o yaml
--show-labels显示资源的标签kubectl get po --show-labels
--no-headers隐藏表头kubectl get po --no-headers

命名空间控制

参数说明示例
-n, --namespace指定命名空间kubectl get po -n dev
-A, --all-namespaces查看所有命名空间kubectl get po -A

过滤与选择

参数说明示例
--field-selector按字段过滤(如状态)kubectl get po --field-selector=status.phase=Running
-l, --selector按标签过滤kubectl get po -l app=nginx
--sort-by按字段排序kubectl get po --sort-by=.metadata.creationTimestamp

实时监控

参数说明示例
-w, --watch实时监听资源变化kubectl get po -w
--watch-only仅监听变化(不显示初始状态)kubectl get po --watch-only

经典案例

基础查询

bash
# 查看默认命名空间的所有 Pods
kubectl get pods

# 查看所有命名空间的 Deployments
kubectl get deployments -A

# 查看指定命名空间的 Service 并显示标签
kubectl get svc -n prod --show-labels

高级过滤

bash
# 筛选状态为 Running 的 Pods
kubectl get po --field-selector=status.phase=Running

# 按标签筛选(标签键为 app,值为 nginx)
kubectl get po -l app=nginx

# 按创建时间倒序排列 Pods
kubectl get po --sort-by=.metadata.creationTimestamp --no-headers | tac

自定义输出格式

bash
# 仅显示 Pod 名称和所在节点
kubectl get po -o=custom-columns=NAME:.metadata.name,NODE:.spec.nodeName

# 输出 JSON 格式(适合脚本处理)
kubectl get po -o json

# 显示 Pod 的 IP 和状态
kubectl get po -o wide

实时监控与调试

bash
# 实时监听 Pod 状态变化
kubectl get po -w

# 监听指定命名空间的 Events
kubectl get events -n dev -w

跨资源查询

bash
# 同时查看 Pods 和 Services
kubectl get po,svc

# 查看某个 Deployment 关联的 ReplicaSet 和 Pods
kubectl get deploy,rs,po -l app=nginx