Kubernetes 的20 个核心命令分类详解
文章目录
kubernetes 的命令行工具 kubectl 是集群管理的核心入口。本文通过 6 大场景分类,总结 20 个高频命令,并附详细示例,助你快速掌握日常操作。
一、集群与资源管理
二、应用部署与更新
三、调试与诊断
四、节点与集群维护
五、配置与权限管理
六、高阶操作
七、详细命令示例与说明
7.1. 基础命令
kubectl get - 列出资源
# 列出所有命名空间的Podkubectl get pods --all-namespaces# 列出默认命名空间的Deploymentkubectl get deployments# 列出节点信息kubectl get nodes -o wide# 以yaml格式列出Pod信息kubectl get pod nginx-pod -o yaml
kubectl describe - 显示资源详细信息
# 描述Pod详情kubectl describe pod nginx-pod# 描述节点详情kubectl describe node worker-node-1# 描述Service详情kubectl describe service nginx-service
kubectl create - 创建资源
# 通过YAML文件创建资源kubectl create -f nginx-deployment.yaml# 创建命名空间kubectl create namespace test-ns# 从docker镜像创建Deploymentkubectl create deployment nginx --image=nginx:1.20
kubectl apply - 应用配置
# 应用YAML配置(创建或更新)kubectl apply -f nginx-deployment.yaml# 应用目录下的所有配置文件kubectl apply -f ./manifests/
kubectl delete - 删除资源
# 删除Podkubectl delete pod nginx-pod# 通过标签删除资源kubectl delete pods -l app=nginx# 删除命名空间及其所有资源kubectl delete namespace test-ns --force
7.2. 故障排查命令
kubectl logs - 查看日志
# 查看Pod日志kubectl logs nginx-pod# 实时查看日志kubectl logs -f nginx-pod# 查看多容器Pod中的特定容器日志kubectl logs nginx-pod -c nginx-container# 查看之前崩溃的容器日志kubectl logs -p nginx-pod
kubectl exec - 在容器中执行命令
# 进入Pod的交互式shellkubectl exec -it nginx-pod -- /bin/bash# 在Pod中执行简单命令kubectl exec nginx-pod -- ls /etc/nginx# 在指定容器中执行命令kubectl exec -it nginx-pod -c nginx-container -- /bin/bash
kubectl port-forward - 端口转发
# 将本地8080端口转发到Pod的80端口kubectl port-forward nginx-pod 8080:80# 转发到Servicekubectl port-forward service/nginx-service 8080:80# 在后台运行端口转发kubectl port-forward nginx-pod 8080:80 &
kubectl top - 资源使用统计
# 查看节点资源使用情况kubectl top nodes# 查看Pod资源使用情况kubectl top pods# 查看指定命名空间的Pod资源使用kubectl top pods -n kube-system
kubectl cp - 文件拷贝
# 从容器拷贝文件到本地kubectl cp nginx-pod:/etc/nginx/nginx.conf ./nginx.conf# 从本地拷贝文件到容器kubectl cp ./config.txt nginx-pod:/tmp/config.txt# 拷贝到指定容器kubectl cp ./file.txt nginx-pod:/tmp/file.txt -c nginx-container
7.3.资源配置命令
kubectl edit - 编辑资源
# 编辑Deploymentkubectl edit deployment nginx-deployment# 编辑指定命名空间的资源kubectl edit deployment nginx -n production# 使用特定编辑器KUBE_EDITOR=\"vim\" kubectl edit deployment nginx
kubectl scale - 扩缩容
# 扩展Deployment副本数kubectl scale --replicas=5 deployment/nginx-deployment# 基于当前副本数进行扩展kubectl scale --current-replicas=3 --replicas=5 deployment/nginx-deployment
kubectl set - 配置资源参数
# 更新容器镜像kubectl set image deployment/nginx nginx=nginx:1.21# 设置环境变量kubectl set env deployment/nginx DEBUG=true# 更新资源限制kubectl set resources deployment/nginx -c=nginx --limits=cpu=200m,memory=512Mi
kubectl patch - 部分更新资源
# 更新容器镜像kubectl patch pod nginx -p \'{\"spec\":{\"containers\":[{\"name\":\"nginx\",\"image\":\"nginx:1.21\"}]}}\'# 添加注解kubectl patch deployment nginx -p \'{\"metadata\":{\"annotations\":{\"version\":\"v2\"}}}\'
kubectl rollout - 部署管理
# 查看部署状态kubectl rollout status deployment/nginx# 回滚部署kubectl rollout undo deployment/nginx# 查看部署历史kubectl rollout history deployment/nginx# 重启部署(触发滚动更新)kubectl rollout restart deployment/nginx
7.4. 集群管理命令
kubectl cluster-info - 集群信息
# 显示集群基本信息kubectl cluster-info# 显示详细集群信息kubectl cluster-info dump
kubectl api-resources - API资源查询
# 列出所有API资源kubectl api-resources# 显示资源的API版本kubectl api-resources --api-group=apps
kubectl config - 配置管理
# 显示当前上下文kubectl config current-context# 切换上下文kubectl config use-context production-cluster# 查看配置kubectl config view
kubectl auth - 权限检查
# 检查当前用户是否有创建Pod的权限kubectl auth can-i create pods# 检查特定用户权限kubectl auth can-i list deployments --as=system:serviceaccount:default:default
kubectl explain - 资源文档
# 查看Pod资源的文档kubectl explain pods# 查看Pod的spec字段文档kubectl explain pods.spec# 查看容器字段文档kubectl explain pods.spec.containers
7.5. 实用技巧与最佳实践
- 使用别名:为常用命令设置别名,如 alias k=‘kubectl’
- 自动补全:启用kubectl自动补全功能提高效率
- 使用 -o wide/yaml/json:获取更详细或特定格式的输出
- 标签选择器:使用 -l 参数通过标签筛选资源
- 跨命名空间操作:使用 -n 或 --all-namespaces 管理不同命名空间的资源
“人的一生会经历很多痛苦,但回头想想,都是传奇”。