以下是一个较为全面的 kubectl
常用命令大全,按功能分类整理,涵盖日常开发、运维、排障中常见的使用场景。
🧭 基础命令
kubectl version # 查看版本信息
kubectl config view # 查看 kubeconfig 配置
kubectl config use-context xxx # 切换集群上下文
kubectl cluster-info # 查看集群信息
kubectl get all # 查看当前 namespace 下所有资源
kubectl get ns # 获取所有命名空间
kubectl get nodes # 获取所有节点
kubectl get pods -A # 获取所有命名空间下的 Pod
kubectl get events --sort-by='.lastTimestamp' # 按时间排序事件
📦 资源管理
获取资源
kubectl get pod # 获取当前 namespace 的 Pod
kubectl get svc # 获取服务
kubectl get deployment # 获取部署
kubectl get ingress # 获取 ingress
kubectl get pod -n kube-system # 指定命名空间
kubectl get pod -o wide # 显示更多字段
kubectl describe pod POD_NAME # 查看详细信息
kubectl explain pod # 查看 pod 字段定义
创建与删除
kubectl apply -f xxx.yaml # 创建或更新资源
kubectl create -f xxx.yaml # 创建资源
kubectl delete -f xxx.yaml # 删除资源
kubectl delete pod POD_NAME # 删除 Pod
kubectl delete pod --grace-period=0 --force # 强制删除 Pod
kubectl delete ns NAMESPACE # 删除命名空间
🛠️ 排障与调试
kubectl logs POD_NAME # 查看日志
kubectl logs -f POD_NAME # 实时日志
kubectl logs POD_NAME -c CONTAINER_NAME # 指定容器日志
kubectl exec -it POD_NAME -- /bin/bash # 进入 Pod 容器
kubectl cp POD_NAME:/path/in/container /host # 从 Pod 拷贝文件
kubectl top pod # 查看 Pod 资源使用
kubectl top node # 查看 Node 资源使用
kubectl get events # 查看事件
📋 状态监控
kubectl rollout status deployment DEPLOY_NAME # 查看部署状态
kubectl rollout history deployment DEPLOY_NAME # 查看历史版本
kubectl rollout undo deployment DEPLOY_NAME # 回滚部署
🚀 滚动更新 & 回滚
kubectl set image deployment/DEPLOY_NAME \
container-name=image:tag # 更新镜像
kubectl rollout restart deployment DEPLOY_NAME # 重新部署
kubectl rollout undo deployment DEPLOY_NAME # 回滚上一个版本
🧾 Label、Annotation、Selector
kubectl label pod POD_NAME key=value # 添加 Label
kubectl annotate pod POD_NAME key=value # 添加注解
kubectl get pods -l key=value # 根据 label 过滤
kubectl delete pod -l key=value # 删除带特定 label 的 pod
🧱 资源编辑
kubectl edit deployment DEPLOY_NAME # 编辑资源
kubectl patch deployment DEPLOY_NAME -p '{"spec":{...}}' # 修改资源
🗂️ 命名空间相关
kubectl get ns
kubectl create ns my-namespace
kubectl delete ns my-namespace
kubectl config set-context --current --namespace=my-namespace
🧪 创建临时 Pod 做调试
kubectl run debug --rm -i -t --image=busybox -- sh
kubectl run -i --tty temp --image=alpine -- sh
🧱 PVC、PV 相关
kubectl get pvc
kubectl get pv
kubectl describe pvc PVC_NAME
🔐 Secret 与 ConfigMap
kubectl get secret
kubectl get configmap
kubectl create secret generic my-secret --from-literal=key1=val1
kubectl create configmap my-config --from-file=path/to/file
📤 导出与备份
kubectl get deployment my-deploy -o yaml > backup.yaml
kubectl get all --all-namespaces -o yaml > all.yaml
🧹 清理
kubectl delete pod --all # 删除所有 Pod
kubectl delete deployment --all # 删除所有 Deployment
kubectl delete all --all # 删除所有资源
⚙️ CRD 自定义资源管理
kubectl get crd
kubectl get <custom-resource> -A
kubectl describe <custom-resource> NAME
如需长期参考,我也可以为你整理成 Markdown 或 PDF 文档,是否需要?
自定义
读取目录到 configmap
将本地目录 /etc/openresty/conf.d 下的所有 .conf 文件读入并创建一个 Kubernetes ConfigMap,你可以使用以下方法:
kubectl create configmap openresty-config \
--namespace forward \
--from-file=/etc/openresty/conf.d \
--dry-run=client -o yaml > openresty-configmap.yaml
# 直接读取到 configmap 中
kubectl create configmap openresty-config \
--namespace forward \
--from-file=/etc/openresty/conf.d \
--dry-run=client -o yaml | kubectl apply -f -