kubernetes常用命令 k8s指令大全

以下是 Kubernetes 常用命令的整理,涵盖集群管理、资源操作、调试排错等场景,帮助您快速掌握核心操作:

一、集群管理

命令 说明
kubectl cluster-info 查看集群信息
kubectl config get-contexts 列出所有上下文(集群配置)
kubectl config use-context <context-name> 切换集群或命名空间
kubectl get componentstatuses 检查集群组件状态(如 scheduler、controller-manager)

二、资源管理

通用操作
命令 说明
kubectl get <resource> 查看资源列表(如 pods, deployments, services
kubectl describe <resource> <name> 查看资源详细信息(事件、状态等)
kubectl create -f <file.yaml> 通过 YAML 文件创建资源
kubectl apply -f <file.yaml> 应用/更新资源配置
kubectl delete -f <file.yaml> 删除 YAML 中定义的资源
kubectl delete <resource> <name> 删除指定资源(如 pod/my-pod
kubectl edit <resource> <name> 直接编辑资源配置(实时生效)
常用资源别名
  • po: Pods
  • deploy: Deployments
  • svc: Services
  • ns: Namespaces
  • pv: PersistentVolumes
  • pvc: PersistentVolumeClaims

三、部署与扩缩容

命令 说明
kubectl scale deploy/<name> --replicas=3 扩展 Deployment 的副本数
kubectl rollout status deploy/<name> 查看部署状态(如滚动更新进度)
kubectl rollout history deploy/<name> 查看部署历史版本
kubectl rollout undo deploy/<name> 回滚到上一个版本
kubectl set image deploy/<name> <container>=<new-image> 更新容器镜像(触发滚动更新)

四、调试与日志

命令 说明
kubectl logs <pod-name> 查看 Pod 日志
kubectl logs -f <pod-name> 实时跟踪日志(类似 tail -f
kubectl exec -it <pod-name> -- /bin/sh 进入 Pod 的 Shell 环境
kubectl port-forward <pod-name> 8080:80 将 Pod 端口转发到本地(如访问服务)
kubectl top pod 查看 Pod 资源使用(需安装 metrics-server)
kubectl get events --sort-by=.metadata.creationTimestamp 查看集群事件(按时间排序)

五、网络与服务

命令 说明
kubectl expose deploy/<name> --port=80 --type=NodePort 创建 Service 暴露 Deployment
kubectl get endpoints <service-name> 查看 Service 关联的 Pod IP
kubectl get ingress 查看 Ingress 配置

六、配置与存储

命令 说明
kubectl get configmaps 查看所有 ConfigMap
kubectl get secrets 查看所有 Secret
kubectl create secret generic <name> --from-file=<key>=<path> 创建 Secret

七、高级操作

命令 说明
kubectl patch <resource> <name> -p '{"spec": {"replicas": 2}}' 部分更新资源配置
kubectl label <resource> <name> key=value 添加/修改标签
kubectl annotate <resource> <name> key=value 添加/修改注解
kubectl get <resource> -o yaml > file.yaml 导出资源配置到 YAML 文件
kubectl delete pod --force --grace-period=0 <pod-name> 强制删除 Pod(慎用)

八、插件与工具

命令 说明
kubectl krew install <plugin> 使用 Krew 安装插件(如 ctx, ns
kubectl helm install <chart> 通过 Helm 安装应用(需安装 Helm)

常用示例场景

  1. 快速创建 Pod

    复制代码
    kubectl run nginx --image=nginx --port=80
  2. 查看所有命名空间的 Pod

    复制代码
    kubectl get pods -A
  3. 查看特定标签的 Pod

    复制代码
    kubectl get pods -l app=web
  4. 调试启动失败的 Pod

    复制代码
    kubectl describe pod/<name>  # 查看错误原因
    kubectl logs <pod-name> -c <container-name>  # 查看指定容器日志
相关推荐
李昊哲小课18 分钟前
Ubuntu 24.04 MariaDB 完整安装与配置文档
linux·ubuntu·mariadb
人间打气筒(Ada)2 小时前
zerotier内网穿透部署(rockylinux部署本地服务器)超详细~~~
linux·内网穿透·内网·公网·zerotier·穿透
Elias不吃糖2 小时前
Git常用指令合集
linux·git
_OP_CHEN2 小时前
Linux网络编程:(七)Vim 编辑器完全指南:从入门到精通的全方位实战教程
linux·运维·服务器·编辑器·vim·linux生态·linux软件
Maple_land2 小时前
第1篇:Linux工具复盘上篇:yum与vim
linux·运维·服务器·c++·centos
shizhan_cloud3 小时前
Linux 硬盘分区管理
linux·运维
蓁蓁啊3 小时前
Ubuntu 虚拟机文件传输到 Windows的一种好玩的办法
linux·运维·windows·单片机·ubuntu
9ilk4 小时前
【仿RabbitMQ的发布订阅式消息队列】 ---- 功能测试联调
linux·服务器·c++·分布式·学习·rabbitmq
q***7484 小时前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
曦樂~5 小时前
【Docker】Dockerfile自定义镜像
运维·docker·容器