【K8S系列】Kubernetes常用 命令

发布于:2025-05-09 ⋅ 阅读:(16) ⋅ 点赞:(0)

在这里插入图片描述

以下为的 Kubernetes 超全常用命令文档,涵盖集群管理、资源操作、调试排错等核心场景,结合示例与解析, 高效运维 Kubernetes 环境。


一、集群与节点管理

1. 集群信息查看
  • 查看集群基本信息
    kubectl cluster-info  # 显示API Server、DNS等核心组件地址 
    
  • 查看当前上下文
    kubectl config current-context  # 显示当前使用的集群上下文 
    
  • 切换上下文
    kubectl config use-context <context-name>  # 用于多集群环境切换 
    
2. 节点管理
  • 列出所有节点状态
    kubectl get nodes  # 显示节点名称、状态、版本等基本信息 
    
  • 查看节点详细信息
    kubectl describe node <node-name>  # 包括资源分配(CPU/内存)、Pod分布等 
    
  • 监控节点资源使用
    kubectl top nodes  # 需提前部署 Metrics Server 
    

二、命名空间(Namespace)管理

1. 基本操作
  • 查看所有命名空间
    kubectl get ns  # 缩写形式,等同于 `kubectl get namespaces` 
    
  • 创建命名空间
    kubectl create ns <namespace-name>  # 例如 `kubectl create ns test` 
    
  • 删除命名空间及资源
    kubectl delete ns <namespace-name>  # 级联删除命名空间内所有资源 
    
2. 命名空间切换
  • 设置默认命名空间
    kubectl config set-context --current --namespace=<namespace>  # 后续命令默认使用该命名空间 
    
  • 使用插件快速切换
    安装 kubens 后,执行 kubens <namespace> 切换当前命名空间 。

三、Pod 管理

1. 基础操作
  • 查看所有 Pod
    kubectl get pods -A -o wide  # 跨命名空间显示 Pod 及所在节点信息 
    
  • 查看指定命名空间的 Pod
    kubectl get pods -n <namespace>  # 例如 `kubectl get pods -n kube-system` 
    
  • 查看 Pod 详情与事件
    kubectl describe pod <pod-name>  # 包含容器状态、事件日志等 
    
2. 交互与日志
  • 进入容器终端
    kubectl exec -it <pod-name> -- /bin/bash  # 若镜像精简,使用 `/bin/sh` 
    
  • 查看容器日志
    kubectl logs <pod-name>  # 实时日志追加 `-f` 参数 
    
3. 删除与重建
  • 强制删除 Pod
    kubectl delete pod <pod-name> --force --grace-period=0  # 立即终止 
    

四、工作负载管理(Deployment/Service)

1. Deployment 操作
  • 创建 Deployment
    kubectl create deployment nginx --image=nginx --replicas=3  # 指定镜像与副本数 
    
  • 扩缩容
    kubectl scale deployment nginx --replicas=5  # 动态调整副本数 
    
  • 回滚版本
    kubectl rollout undo deployment nginx  # 回退到上一版本 
    
2. Service 管理
  • 查看 Service 列表
    kubectl get svc -A  # 显示所有服务的 ClusterIP 和端口 
    
  • 端口转发测试
    kubectl port-forward <pod-name> 8080:80  # 本地访问 `localhost:8080` 映射到容器端口 
    

五、配置与存储管理

1. ConfigMap 与 Secret
  • 创建 ConfigMap
    kubectl create configmap app-config --from-file=config.properties  # 从文件生成 
    
  • 查看 Secret 内容
    kubectl get secret <secret-name> -o jsonpath='{.data}'  # 解码后查看明文 
    
2. 持久化存储
  • 查看 PVC/PV 状态
    kubectl get pvc  # 查看 PersistentVolumeClaim 
    kubectl get pv   # 查看 PersistentVolume 
    

六、调试与排错

1. 事件与资源状态
  • 查看集群事件
    kubectl get events --sort-by='.metadata.creationTimestamp'  # 按时间排序 
    
  • 检查资源配额
    kubectl describe quota  # 显示命名空间资源限制 
    
2. 网络测试
  • Pod 内网络连通性测试
    kubectl exec <pod-name> -- curl http://<service-name>  # 测试服务可达性 
    

七、高级命令与技巧

1. 资源导出与恢复
  • 导出资源配置
    kubectl get deployment/nginx -o yaml > nginx-backup.yaml  # 备份 YAML 文件 
    
  • 批量删除资源
    kubectl delete all --all -n <namespace>  # 清空命名空间内所有资源 
    
2. 资源缩写与格式化
  • 使用资源缩写
    kubectl get po,svc,deploy  # 等价于 `pods`, `services`, `deployments` 
    
  • JSON/自定义输出
    kubectl get pods -o json  # 输出为 JSON 格式 
    kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase  # 自定义列 
    

八、附录:常用资源类型缩写表

资源类型 缩写 示例命令
pods po kubectl get po
services svc kubectl get svc
deployments deploy kubectl get deploy
namespaces ns kubectl get ns
persistentvolumeclaims pvc kubectl get pvc
完整列表参考

以上命令覆盖了 Kubernetes 日常运维的 80% 场景,建议结合 kubectl explain <resource> 查看字段说明 。如需更完整命令或最新特性,请参考 Kubernetes 官方文档或上述来源。


网站公告

今日签到

点亮在社区的每一天
去签到