K8S常用命令手册
2025-07-11 15:45·浮点喵
以下是Kubernetes(k8s)中最常用的命令分类整理,涵盖日常运维、资源管理、故障排查等场景,帮助你高效管理集群:
一、基础资源查看命令
# 查看节点信息
kubectl get nodes
kubectl describe node <节点名称>
# 查看命名空间
kubectl get namespaces
kubectl describe ns <命名空间名称>
# 查看Pod(默认当前命名空间)
kubectl get pods
kubectl get pods -o wide # 显示详细信息(IP、节点等)
kubectl get pods -n <命名空间> # 指定命名空间
kubectl describe pod <Pod名称> # 查看Pod详细信息
# 查看其他资源(Deployment、Service、Ingress等)
kubectl get deployments,services,ingress
kubectl describe deployment <Deployment名称>
二、Pod操作命令
# 创建Pod(基于YAML文件)
kubectl apply -f pod.yaml
# 删除Pod
kubectl delete pod <Pod名称>
kubectl delete -f pod.yaml
# 进入Pod内部(交互式终端)
kubectl exec -it <Pod名称> -n namespace -- /bin/bash //注意命名空间
kubectl exec -it <Pod名称> -c <容器名称> -n namespace -- /bin/sh # 多容器Pod指定容器
# 查看Pod日志
kubectl logs <Pod名称>
kubectl logs -f <Pod名称> # 实时跟踪日志
kubectl logs <Pod名称> -c <容器名称> # 多容器Pod指定容器
示例:
获取pod 容器名称
kubectl get pod tomcat-deployment-6764c49f98-78thd -n tomcat-test -o jsonpath='{.spec.containers[*].name}'
拷贝文件到pod 容器中命令,-c 是容器名称,容器名称获取pod获取
kubectl cp /nfs/default-tomcat-pvc-pvc-12c03e25-993d-4e02-a120-18d3ec02335d/index.jsp tomcat-test/tomcat-deployment-6764c49f98-78thd:/usr/local/tomcat/webapps -c tomcat
示例:宿主机拷贝文件到pod中
三、部署与伸缩命令
# 创建Deployment
kubectl apply -f deployment.yaml
# 扩缩容Pod数量
kubectl scale deployment <Deployment名称> --replicas=3
# 滚动更新镜像
kubectl set image deployment <Deployment名称> <容器名称>=<新镜像>:<标签>
kubectl rollout status deployment <Deployment名称> # 查看更新状态
kubectl rollout history deployment <Deployment名称> # 查看更新历史
kubectl rollout undo deployment <Deployment名称> # 回滚到上一版本
示例:扩容、缩小副本数量
说明:
正常情况:扩缩容 Pod 数量对 Ingress 访问无影响,Service 会自动适配 Pod 变化。
潜在风险:极端场景下可能有毫秒级延迟或个别请求失败,但通过合理配置(就绪探针、优雅终止时间等)可避免。
核心保障:确保 Service 的标签选择器正确、Ingress 配置指向正确的 Service,即可稳定支持 Pod 的动态扩缩容。
因此,日常扩缩容操作无需担心 Ingress 访问问题,Kubernetes 的自愈机制会处理大部分细节。
四、Service与Ingress命令
# 创建Service
kubectl apply -f service.yaml
# 查看Service
kubectl get services
kubectl describe service <Service名称>
# 创建Ingress
kubectl apply -f ingress.yaml
# 查看Ingress
kubectl get ingress
kubectl describe ingress <Ingress名称>
示例:
五、配置与存储命令
# 创建ConfigMap
kubectl create configmap <名称> --from-file=配置文件路径
kubectl apply -f configmap.yaml
# 创建Secret
kubectl create secret generic <名称> --from-literal=key1=value1
kubectl create secret tls <名称> --cert=证书路径 --key=私钥路径
# 查看PVC和PV
kubectl get pvc,pv
kubectl describe pvc <PVC名称>
六、集群与上下文管理
# 查看当前配置上下文
kubectl config view
kubectl config current-context
# 切换上下文(集群/用户/命名空间)
kubectl config use-context <上下文名称>
# 查看API资源
kubectl api-resources # 查看所有资源类型
kubectl explain <资源类型> # 查看资源字段说明
七、故障排查常用命令
# 查看Pod状态及事件
kubectl get pods -o wide
kubectl describe pod <Pod名称> # 查看详细事件
# 查看节点资源使用情况
kubectl top nodes
kubectl top pods
# 端口转发(本地访问集群内部服务)
kubectl port-forward service/<Service名称> 8080:80 # 本地8080→服务80
# 查看系统组件状态
kubectl get pods -n kube-system
kubectl logs <组件Pod名称> -n kube-system
八、高级命令技巧
# 标签筛选
kubectl get pods -l app=nginx # 筛选标签app=nginx的Pod
# 字段筛选
kubectl get pods --field-selector=status.phase=Running
# 导出资源配置(用于参考或备份)
kubectl get deployment <名称> -o yaml > deployment.yaml
# 执行一次性命令
kubectl run --image=busybox test --restart=Never -- echo "Hello World"
# 批量操作
kubectl delete pods --all # 删除所有Pod
kubectl delete deployments,services --all # 删除所有Deployment和Service
九、命名空间命令
# 创建命名空间
kubectl create namespace <命名空间名称>
kubectl apply -f namespace.yaml
# 切换默认命名空间
kubectl config set-context --current --namespace=<命名空间名称>
# 在命令中指定命名空间
kubectl get pods -n <命名空间名称>
十、资源配额与限制
# 创建资源配额
kubectl apply -f resourcequota.yaml
# 创建LimitRange限制单个容器资源
kubectl apply -f limitrange.yaml
# 查看配额使用情况
kubectl get resourcequota
命令补全设置(提高效率)
# bash shell
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
# zsh shell
source <(kubectl completion zsh)
echo "source <(kubectl completion zsh)" >> ~/.zshrc
十一、查看pod使用镜像,备份导出导入:
kubectl get pods -n tomcat-test -o wide
kubectl get pod tomcat-deployment-6764c49f98-78thd -n tomcat-test -o yaml | grep image:
ctr -n k8s.io images export tomcat-v9.0.tar docker.io/library/tomcat:9.0 //导出镜像
ctr -n k8s.io images import tomcat9.0.tar //到具体节点导入镜像
示例:
掌握这些命令后,你可以完成Kubernetes集群的日常管理、部署应用、故障排查等核心操作。建议配合官方文档(
https://kubernetes.io/docs/reference/kubectl/cheatsheet/)深入学习更多高级用法。
文档更新时间: 2025-07-13 08:07 作者:admin