Kubernetes (K8s) 提供了丰富的 kubectl 命令用于管理集群、Pod、服务等。以下是 K8s 常见命令大全:


📌 一、基本命令

1
2
3
4
5
6
7
8
9
kubectl version                   # 查看 kubectl 和集群的版本
kubectl cluster-info # 查看集群信息
kubectl get nodes # 查看所有节点
kubectl get pod # 查看所有 Pod
kubectl get svc # 查看所有服务
kubectl get deployments # 查看所有 Deployment
kubectl get all # 获取所有资源(Pod、Service、Deployment 等)
kubectl config view # 查看当前 kubeconfig 配置
kubectl config use-context <name> # 切换 K8s 集群环境

📌 二、Pod 操作

1
2
3
4
5
6
7
8
9
10
kubectl get pods -o wide                          # 查看 Pod 详细信息
kubectl describe pod <pod_name> # 查看 Pod 详情
kubectl logs <pod_name> # 查看 Pod 日志
kubectl logs -f <pod_name> # 实时查看 Pod 日志
kubectl logs <pod_name> -c <container_name> # 指定容器查看日志(多容器 Pod)
kubectl exec -it <pod_name> -- /bin/sh # 进入 Pod(alpine, busybox)
kubectl exec -it <pod_name> -- /bin/bash # 进入 Pod(常见 Linux 发行版)
kubectl delete pod <pod_name> # 删除 Pod
kubectl delete pod --all # 删除所有 Pod
kubectl get pod --field-selector=status.phase=Running # 查询运行中的 Pod

📌 三、Deployment 操作

1
2
3
4
5
6
7
kubectl create deployment <name> --image=<image>    # 创建 Deployment
kubectl get deployments # 查看所有 Deployment
kubectl describe deployment <name> # 查看 Deployment 详情
kubectl scale deployment <name> --replicas=<num> # 扩缩容
kubectl delete deployment <name> # 删除 Deployment
kubectl rollout status deployment <name> # 查看滚动更新状态
kubectl rollout undo deployment <name> # 回滚 Deployment

📌 四、Service(服务)操作

1
2
3
4
kubectl expose deployment <name> --type=NodePort --port=80  # 创建 Service
kubectl get services # 查看所有 Service
kubectl describe service <name> # 查看 Service 详情
kubectl delete service <name> # 删除 Service

📌 五、ConfigMap 和 Secret

1
2
3
4
5
6
7
8
9
kubectl create configmap <name> --from-literal=key=value    # 创建 ConfigMap
kubectl get configmap # 查看 ConfigMap
kubectl describe configmap <name> # 查看 ConfigMap 详情
kubectl delete configmap <name> # 删除 ConfigMap

kubectl create secret generic <name> --from-literal=key=value # 创建 Secret
kubectl get secret # 查看 Secret
kubectl describe secret <name> # 查看 Secret 详情
kubectl delete secret <name> # 删除 Secret

📌 六、Namespace(命名空间)

1
2
3
4
5
kubectl get namespaces                         # 查看所有命名空间
kubectl create namespace <name> # 创建命名空间
kubectl delete namespace <name> # 删除命名空间
kubectl get pods -n <namespace> # 查看指定命名空间的 Pod
kubectl config set-context --current --namespace=<name> # 切换默认命名空间

📌 七、YAML 文件管理

1
2
3
4
kubectl apply -f <file>.yaml      # 通过 YAML 文件创建资源
kubectl delete -f <file>.yaml # 通过 YAML 文件删除资源
kubectl get -f <file>.yaml # 通过 YAML 查询资源
kubectl edit -f <file>.yaml # 编辑 YAML 文件

📌 八、其他实用命令

1
2
3
4
5
6
7
8
9
10
kubectl top node                  # 查看节点资源使用情况
kubectl top pod # 查看 Pod 资源使用情况
kubectl cp <pod>:<file> <local> # 从 Pod 拷贝文件到本地
kubectl cp <local> <pod>:<file> # 从本地拷贝文件到 Pod
kubectl port-forward <pod> 8080:80 # 端口转发(本地 8080 -> Pod 80)
kubectl drain <node> --ignore-daemonsets # 驱逐节点上的 Pod
kubectl cordon <node> # 标记节点为不可调度
kubectl uncordon <node> # 取消不可调度
kubectl taint nodes <node> key=value:NoSchedule # 给节点添加污点
kubectl get events --sort-by=.metadata.creationTimestamp # 查看最新事件

这份 Kubernetes 命令大全涵盖了常见操作,如果你需要更详细的帮助,可以使用:

1
2
kubectl help
kubectl <command> --help