一、基础管理

1.1 Node

获取节点列表

1
2
3
4
5
# 获取集群中所有的节点
kubectl get nodes

# 查看某个节点的详细信息
kubectl get nodes <node-name> -owide

1.2 Pod

  1. 运行单个pod

Kubernetes 新版本已废弃 --replicas 字段,直接用 run 创建单个 Pod。

1
kubectl run <pod-name> --image=<image> -- <command>

示例

1
kubectl run rockylinux --image=rockylinux:9 -- sleep infinity
  1. 获取 pod 的信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 获取 default 命名空间的pod
kubectl get pod

# 显示更多信息(IP、所在节点)
kubectl get pod -o wide

# 指定命名空间
kubectl get pod -n <namespace>

# 指定pod
kubectl get pod <pod-name> -n <namespace>

# 查看Pod及其标签信息
kubectl get pods --show-labels
  1. 获取 pod 的详细信息
1
2
3
4
5
# 只查看某个pod的详细信息
kubectl describe pod/<pod-name>

# 查看前缀包含 “pod-name” 的 pod 的详细信息
kubectl describe pod <pod-name>
  1. 查看 pod 的日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看 pod 的日志
kubectl logs -f <pod-name>

# 对于多容器账号,指定容器
kubectl logs -f <pod-name> -c <container-name>

# 查看最近10分钟的日志,支持的单位:s、m、h
kubectl logs -f <pod-name> --since=10m

# 查看指定绝对时间后的日志,RFC3339 格式
kubectl logs -f <pod-name> --since-time="2026-01-01T16:22:30+08:00"

# 查看日志时,显示时间戳
kubectl logs -f <pod-name> --timestamps
  1. 拷贝文件
1
2
3
4
5
# 拷贝文件到 pod 中
kubectl cp <host-file-path> <pod-name>:<pod-file-path>

# 从 pod 中拷贝文件
kubectl cp <pod-name>:<pod-file-path> <host-file-path>
  1. 执行命令
1
2
3
4
5
6
7
8
# 执行命令
kubectl exec <pod-name> -- <command>

# 进入 pod 时,获取一个shell
kubectl exec -it <pod-name> -- bash

# 多容器 pod,进去指定的容器
kubectl exec -it <pod-name> -c <container-name> -- bash
  1. 标签管理
1
2
3
4
5
6
7
8
9
10
11
# 添加标签
kubectl label pods <pod-name> key1=value1 key2=value2

# 覆盖已有的标签
kubectl label --overwrite pods <pod-name> key1=value3

# 删除标签
kubectl label pods <pod-name> key1-

# 查看标签
kubectl get pods <pod-name> --show-labels