下面是 Kubernetes(K8s)常用命令大全,按功能分类整理,涵盖日常开发、排查、部署的常见场景👇
🧭 一、集群信息查看
| 命令 | 说明 |
|---|
kubectl version | 查看 kubectl 和集群版本 |
kubectl cluster-info | 查看集群信息(API Server 地址等) |
kubectl get nodes | 查看所有节点 |
kubectl describe node <node-name> | 查看节点详细信息 |
kubectl top node | 查看各节点资源使用情况(需安装 metrics-server) |
📦 二、Pod 管理
| 命令 | 说明 |
|---|
kubectl get pods | 查看当前命名空间下的所有 Pod |
kubectl get pods -A | 查看所有命名空间下的 Pod |
kubectl get pods -n <namespace> | 查看指定命名空间的 Pod |
kubectl describe pod <pod-name> | 查看 Pod 详细信息 |
kubectl logs <pod-name> | 查看 Pod 日志 |
kubectl logs <pod-name> -c <container-name> | 查看 Pod 中指定容器日志 |
kubectl exec -it <pod-name> -- /bin/sh | 进入 Pod 容器交互式终端 |
kubectl delete pod <pod-name> | 删除 Pod |
kubectl get pod <pod-name> -o yaml | 查看 Pod 的完整配置 |
🧱 三、Deployment / ReplicaSet / StatefulSet 管理
| 命令 | 说明 |
|---|
kubectl get deploy | 查看 Deployment 列表 |
kubectl describe deploy <deploy-name> | 查看 Deployment 详情 |
kubectl rollout status deploy/<deploy-name> | 查看 Deployment 滚动更新状态 |
kubectl rollout history deploy/<deploy-name> | 查看历史版本 |
kubectl rollout undo deploy/<deploy-name> | 回滚到上一个版本 |
kubectl scale deploy/<deploy-name> --replicas=3 | 修改副本数 |
kubectl edit deploy/<deploy-name> | 在线编辑 Deployment 配置 |
🌐 四、Service / Ingress 管理
| 命令 | 说明 |
|---|
kubectl get svc | 查看 Service 列表 |
kubectl describe svc <svc-name> | 查看 Service 详情 |
kubectl get endpoints | 查看 Endpoint 列表 |
kubectl get ingress | 查看 Ingress 列表 |
kubectl describe ingress <ingress-name> | 查看 Ingress 详情 |
🗂 五、Namespace 与 Context
| 命令 | 说明 |
|---|
kubectl get ns | 查看命名空间 |
kubectl create ns <name> | 创建命名空间 |
kubectl delete ns <name> | 删除命名空间 |
kubectl config get-contexts | 查看所有 context |
kubectl config use-context <context-name> | 切换 context |
kubectl config current-context | 查看当前使用的 context |
🧩 六、ConfigMap / Secret 管理
| 命令 | 说明 |
|---|
kubectl get cm | 查看 ConfigMap |
kubectl describe cm <cm-name> | 查看 ConfigMap 详情 |
kubectl create cm my-config --from-file=app.conf | 从文件创建 ConfigMap |
kubectl get secret | 查看 Secret |
kubectl create secret generic my-secret --from-literal=password=123456 | 创建 Secret |
kubectl get secret my-secret -o yaml | 查看 Secret 内容(base64 编码) |
🧰 七、调试与排查
| 命令 | 说明 |
|---|
kubectl get events --sort-by=.metadata.creationTimestamp | 查看事件(按时间排序) |
kubectl describe pod <pod> | 查看 Pod 状态和问题原因 |
kubectl logs -f <pod> | 实时查看日志 |
kubectl get pod -o wide | 查看 Pod IP、所在节点等信息 |
kubectl get all -n <namespace> | 查看命名空间下所有资源 |
kubectl port-forward <pod-name> 8080:80 | 本地端口转发到 Pod |
⚙️ 八、YAML 文件操作
| 命令 | 说明 |
|---|
kubectl apply -f deploy.yaml | 部署或更新配置文件 |
kubectl delete -f deploy.yaml | 删除配置文件中的资源 |
kubectl diff -f deploy.yaml | 查看配置差异 |
kubectl create -f deploy.yaml | 创建资源 |
kubectl get -f deploy.yaml | 查看资源状态 |
🧾 九、Helm(扩展)
| 命令 | 说明 |
|---|
helm list -n <namespace> | 查看已安装的 Helm chart |
helm install <release> <chart> -n <namespace> | 安装 Helm Chart |
helm upgrade <release> <chart> -n <namespace> | 升级部署 |
helm uninstall <release> -n <namespace> | 卸载部署 |
helm get values <release> -n <namespace> | 查看部署的参数 |
💡 十、快捷技巧
kubectl config set-context --current --namespace=tobg
kubectl get pods -o name
kubectl get deploy my-deploy -o yaml > backup.yaml
watch kubectl get pods -n tobg