Kubernetes kubectl 命令完全指南:从入门到精通
1. kubectl 简介
kubectl是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。通过 kubectl,用户可以部署应用、管理集群资源、查看日志、调试服务等。它是 Kubernetes 管理员和开发人员最常用的工具之一。
2. 基础命令
2.1 集群信息
kubectl cluster-info:显示集群信息kubectl version:查看客户端和服务器版本kubectl config view:查看当前配置
2.2 资源操作
kubectl get <resource>:列出资源(如 pods, services, deployments)kubectl describe <resource> <name>:查看资源详细信息kubectl create -f <file.yaml>:通过 YAML 文件创建资源kubectl apply -f <file.yaml>:应用配置(创建或更新)kubectl delete -f <file.yaml>:删除资源
3. Pod 管理
# 查看所有 Pod kubectl get pods 查看指定命名空间的 Pod kubectl get pods -n <namespace> 查看 Pod 详细信息 kubectl describe pod <pod-name> 查看 Pod 日志 kubectl logs <pod-name> 进入 Pod 容器 kubectl exec -it <pod-name> -- /bin/bash 删除 Pod kubectl delete pod <pod-name>4. Deployment 管理
# 创建 Deployment kubectl create deployment <name> --image=<image> 查看 Deployment kubectl get deployments 更新 Deployment 镜像 kubectl set image deployment/<name> <container>=<new-image> 扩缩容 kubectl scale deployment <name> --replicas=<number> 回滚到上一版本 kubectl rollout undo deployment/<name>5. Service 管理
# 查看 Service kubectl get services 创建 Service kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> 查看 Service 详细信息 kubectl describe service <service-name>6. 配置管理
6.1 ConfigMap
# 从文件创建 ConfigMap kubectl create configmap <name> --from-file=<file-path> 查看 ConfigMap kubectl get configmaps 查看 ConfigMap 内容 kubectl describe configmap <name>6.2 Secret
# 创建 Secret kubectl create secret generic <name> --from-literal=<key>=<value> 查看 Secret kubectl get secrets 解码 Secret 值 kubectl get secret <name> -o jsonpath='{.data.<key>}' | base64 --decode7. 调试与故障排查
kubectl logs <pod-name>:查看 Pod 日志kubectl logs <pod-name> -c <container>:查看指定容器日志kubectl exec -it <pod-name> -- <command>:在 Pod 中执行命令kubectl port-forward <pod-name> <local-port>:<pod-port>:端口转发kubectl top pod:查看 Pod 资源使用情况kubectl top node:查看节点资源使用情况
8. 高级技巧
8.1 输出格式
# JSON 格式输出 kubectl get pods -o json YAML 格式输出 kubectl get pod <pod-name> -o yaml 自定义列输出 kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase8.2 标签选择器
# 根据标签筛选 kubectl get pods -l app=nginx 排除特定标签 kubectl get pods -l 'app!=nginx'8.3 命名空间操作
# 切换到指定命名空间 kubectl config set-context --current --namespace=<namespace> 查看所有命名空间的资源 kubectl get pods --all-namespaces9. 常用命令速查表
| 功能 | 命令 |
|---|---|
| 查看集群信息 | kubectl cluster-info |
| 查看节点 | kubectl get nodes |
| 查看所有 Pod | kubectl get pods -A |
| 查看 Pod 日志 | kubectl logs <pod-name> |
| 进入 Pod | kubectl exec -it <pod-name> -- /bin/bash |
| 创建资源 | kubectl apply -f deployment.yaml |
| 删除资源 | kubectl delete -f deployment.yaml |
| 查看事件 | kubectl get events |
10. 总结
kubectl 是 Kubernetes 生态中不可或缺的工具,掌握其常用命令能够极大提高 Kubernetes 集群的管理效率。建议读者在实际工作中多练习这些命令,并结合官方文档深入学习高级功能。
