kubectl 常用命令汇总
一、基础命令
查看集群信息
bash
kubectl cluster-info # 显示集群基本信息
kubectl version # 查看客户端和服务器版本
kubectl config view # 查看当前 kubeconfig 配置
查看节点和组件状态
bash
kubectl get nodes # 查看所有节点状态
kubectl get componentstatuses # 查看控制平面组件状态(如 scheduler、controller-manager)
二、资源操作
查看资源
bash
kubectl get <resource-type> # 查看资源列表(如 pods, deployments, services)
kubectl get pods -n <namespace> # 查看指定命名空间的 Pod
kubectl get pods --all-namespaces # 查看所有命名空间的 Pod
kubectl describe <resource-type> <name> # 查看资源详细信息(如 `kubectl describe pod my-pod`)
创建/删除资源
bash
kubectl create -f <manifest.yaml> # 通过 YAML 文件创建资源
kubectl delete -f <manifest.yaml> # 通过 YAML 文件删除资源
kubectl delete pod <pod-name> # 删除指定 Pod
kubectl delete deployment <deploy-name> # 删除 Deployment
更新资源
bash
kubectl apply -f <manifest.yaml> # 应用 YAML 文件更新资源
kubectl edit <resource-type> <name> # 直接编辑资源定义(如 `kubectl edit deployment my-deploy`)
kubectl replace -f <manifest.yaml> # 替换资源配置
三、Pod 相关
查看日志
bash
kubectl logs <pod-name> # 查看 Pod 日志
kubectl logs -f <pod-name> # 实时跟踪日志(类似 `tail -f`)
kubectl logs --tail=100 <pod-name> # 查看最近 100 行日志
进入 Pod 执行命令
bash
kubectl exec -it <pod-name> -- /bin/bash # 进入 Pod 的交互式 Shell
kubectl exec <pod-name> -- <command> # 在 Pod 中执行单条命令(如 `kubectl exec my-pod -- ls /`)
调试 Pod
bash
kubectl port-forward <pod-name> <local-port>:<pod-port> # 端口转发到本地(如 `8080:80`)
四、部署与扩缩容
部署管理
bash
kubectl rollout status deployment/<deploy-name> # 查看部署状态
kubectl rollout history deployment/<deploy-name> # 查看部署历史
kubectl rollout undo deployment/<deploy-name> # 回滚到上一个版本
扩缩容
bash
kubectl scale deployment/<deploy-name> --replicas=3 # 调整副本数
kubectl autoscale deployment/<deploy-name> --min=2 --max=5 --cpu-percent=80 # 自动扩缩容(HPA)
五、服务与网络
暴露服务
bash
kubectl expose deployment/<deploy-name> --port=80 --type=NodePort # 创建 NodePort 服务
kubectl expose deployment/<deploy-name> --port=80 --type=LoadBalancer # 创建 LoadBalancer 服务
查看服务
bash
kubectl get services # 查看所有服务
kubectl get endpoints # 查看服务的后端端点
六、配置管理
ConfigMap 和 Secret
bash
kubectl create configmap <name> --from-file=<file-path> # 从文件创建 ConfigMap
kubectl create secret generic <name> --from-literal=<key>=<value> # 创建 Secret
kubectl get secrets # 查看所有 Secret
管理命名空间
bash
kubectl create namespace <namespace> # 创建命名空间
kubectl get namespaces # 查看所有命名空间
七、故障排查与调试
查看资源状态
bash
kubectl top nodes # 查看节点资源使用情况(需安装 metrics-server)
kubectl top pods # 查看 Pod 资源使用情况
事件与诊断
bash
kubectl get events # 查看集群事件
kubectl api-resources # 列出所有支持的资源类型
八、高级命令
bash
kubectl proxy # 启动代理访问 Kubernetes API(默认端口 8001)
kubectl api-versions # 查看支持的 API 版本
kubectl explain <resource-type> # 查看资源字段说明(如 `kubectl explain pod.spec`)
总结
使用 -n <namespace>
指定命名空间(如 kubectl get pods -n kube-system)。 使用 -o wide
、-o yaml
或 -o json
调整输出格式。 结合 --dry-run=client
测试命令效果(如 kubectl create deployment --dry-run=client -o yaml
)。