kubectl常用命令记录

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)。

相关推荐
农民工老王2 小时前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
广州中轴线2 小时前
OpenStack on Kubernetes 生产部署实战(十四)
kubernetes·智能路由器·openstack
人间打气筒(Ada)18 小时前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s
江畔何人初20 小时前
pod的内部结构
linux·运维·云原生·容器·kubernetes
苦逼IT运维1 天前
从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)
linux·学习·docker·容器·kubernetes
腾讯云开发者1 天前
言出法随 -- Chaterm如何通过ASR精准操作K8S
云原生·容器·kubernetes
伟大的大威1 天前
NVIDIA DGX Spark (ARM64/Blackwell) Kubernetes 集群 + GPU Operator 完整部署指南
大数据·spark·kubernetes
only_Klein1 天前
kubernetes Pod 通信过程演示
网络·kubernetes·tcpdump
为什么不问问神奇的海螺呢丶1 天前
n9e categraf k8s监控配置 -cadvisor
云原生·容器·kubernetes
炸裂狸花猫1 天前
开源域名代理与流量限制方案 - Cloudflare + Ingress + 自签名证书
运维·云原生·容器·kubernetes·cloudflare·waf·免费域名证书