当前位置: 首页 > news >正文

Kubernetes 常用运维命令整理

目录

      • Kubernetes 常用运维命令整理
        • 一、集群管理
        • 二、Pod 和容器管理
        • 三、Deployment 和应用管理
        • 四、Service 和网络管理
        • 五、存储管理
        • 六、ConfigMap 和 Secret 管理
        • 七、资源使用与监控
        • 八、调度和容错
        • 九、Role 和权限管理
        • 十、清理资源
      • 总结

Kubernetes 常用运维命令整理

Kubernetes 是一个强大的容器编排工具,用于管理和自动化应用的部署、扩展和管理。在日常运维中,掌握一些常用的 Kubernetes 命令非常重要,这样可以有效地管理和调试集群。本文将根据不同场景整理和区分 Kubernetes 运维常用命令,帮助大家更好地管理集群和应用。

一、集群管理
  1. 查看集群节点

    • 查看集群的所有节点信息:
      kubectl get nodes
      
    • 查看节点详细信息:
      kubectl describe node <node-name>
      
  2. 查看集群信息

    • 查看当前集群的基本信息(包括 API server 的地址等):
      kubectl cluster-info
      
  3. 检查节点状态

    • 检查节点的健康状况:
      kubectl get nodes -o wide
      
二、Pod 和容器管理
  1. 查看所有 Pod

    • 查看所有命名空间下的 Pod:
      kubectl get pods --all-namespaces
      
    • 查看当前命名空间下的 Pod:
      kubectl get pods
      
  2. 查看 Pod 状态

    • 查看指定 Pod 的详细信息:
      kubectl describe pod <pod-name>
      
    • 查看 Pod 的日志:
      kubectl logs <pod-name>
      
    • 查看指定容器日志:
      kubectl logs <pod-name> -c <container-name>
      
  3. 调试 Pod

    • 进入 Pod 容器进行调试:
      kubectl exec -it <pod-name> -- /bin/bash
      
  4. 删除 Pod

    • 删除指定 Pod:
      kubectl delete pod <pod-name>
      
三、Deployment 和应用管理
  1. 查看所有 Deployment

    • 查看所有命名空间下的 Deployment:
      kubectl get deployments --all-namespaces
      
  2. 查看 Deployment 状态

    • 查看指定 Deployment 的状态:
      kubectl describe deployment <deployment-name>
      
  3. 更新 Deployment

    • 更新 Deployment 使用新的镜像:
      kubectl set image deployment/<deployment-name> <container-name>=<new-image>
      
  4. 滚动更新

    • 进行滚动更新:
      kubectl rollout restart deployment <deployment-name>
      
  5. 回滚 Deployment

    • 回滚到上一个版本:
      kubectl rollout undo deployment <deployment-name>
      
四、Service 和网络管理
  1. 查看所有 Service

    • 查看所有命名空间下的 Service:
      kubectl get services --all-namespaces
      
  2. 查看 Service 详情

    • 查看指定 Service 的详细信息:
      kubectl describe service <service-name>
      
  3. 暴露应用

    • 暴露 Pod 作为一个服务:
      kubectl expose pod <pod-name> --type=LoadBalancer --name=<service-name>
      
  4. 查看端口映射

    • 查看集群端口映射:
      kubectl get svc
      
五、存储管理
  1. 查看所有 PersistentVolume (PV)

    • 查看所有 PV:
      kubectl get pv
      
  2. 查看所有 PersistentVolumeClaim (PVC)

    • 查看所有 PVC:
      kubectl get pvc
      
  3. 查看 Pod 使用的 PVC

    • 查看指定 Pod 使用的 PVC:
      kubectl describe pod <pod-name>
      
六、ConfigMap 和 Secret 管理
  1. 查看所有 ConfigMap

    • 查看所有 ConfigMap:
      kubectl get configmap
      
  2. 查看 ConfigMap 内容

    • 查看指定 ConfigMap 的内容:
      kubectl describe configmap <configmap-name>
      
  3. 查看所有 Secret

    • 查看所有 Secret:
      kubectl get secrets
      
  4. 查看 Secret 内容

    • 查看指定 Secret 的内容:
      kubectl describe secret <secret-name>
      
七、资源使用与监控
  1. 查看集群资源使用情况

    • 查看集群的资源使用情况:
      kubectl top nodes
      kubectl top pods
      
  2. 查看 Pod 资源请求和限制

    • 查看 Pod 的资源请求和限制:
      kubectl describe pod <pod-name>
      
  3. 启用集群的监控

    • 如果集群已经启用了 Prometheus 或其他监控工具,可以查看集群监控界面,检查集群健康状况和资源使用情况。
八、调度和容错
  1. 查看调度情况

    • 查看 Pod 是否被调度到节点:
      kubectl describe pod <pod-name> | grep Node
      
  2. 手动调度 Pod

    • 手动指定将 Pod 调度到特定节点:
      kubectl label node <node-name> disktype=ssd
      kubectl run <pod-name> --image=<image-name> --overrides='
      {"apiVersion": "v1","kind": "Pod","metadata": {"name": "<pod-name>"},"spec": {"nodeSelector": {"disktype": "ssd"}}
      }'
      
九、Role 和权限管理
  1. 查看 Role 和 RoleBinding

    • 查看所有的 Role 和 RoleBinding:
      kubectl get roles,rolebindings --all-namespaces
      
  2. 创建 Role 和 RoleBinding

    • 创建 Role 和 RoleBinding 以设置 Pod 的访问权限:
      kubectl apply -f role.yaml
      kubectl apply -f rolebinding.yaml
      
  3. 查看 ClusterRole 和 ClusterRoleBinding

    • 查看 ClusterRole 和 ClusterRoleBinding:
      kubectl get clusterroles,clusterrolebindings
      
十、清理资源
  1. 删除资源
    • 删除指定资源:
      kubectl delete <resource-type> <resource-name>
      

总结

本文整理了 Kubernetes 常用的运维命令,涵盖了集群管理、Pod 管理、应用管理、网络配置、存储、权限管理、资源监控等多个场景。在实际运维中,了解并熟练使用这些命令能够帮助我们高效管理集群,及时发现并解决问题,提高集群的稳定性和可用性。希望这篇整理能对你有所帮助。

http://www.xdnf.cn/news/125569.html

相关文章:

  • TypeScript 开发实战:如何安全替换字符串中的关键字
  • C#源码分析 --- Random
  • CentOS 7 磁盘阵列搭建与管理全攻略
  • 2. Linux开发工具
  • 系统架构师/软件设计师--选择题概念题口诀与公式计算
  • 如何在windows10上英伟达gtx1060上部署通义千问-7B-Chat
  • 安恒web安全春招实战
  • AI生成内容版权管理:数字时代企业的风险防控与价值保障
  • SEO的关键词研究与优化 第一章
  • 门对讲机市场报告:预计2031年全球销售额将达到36.29亿美元
  • ArkUI常用的组件
  • 【Spec2MP:项目管理之项目风险管理】
  • 银河麒麟系统离线安装nodejs
  • Sharding-JDBC 系列专题 - 第八篇:数据治理与高级功能
  • 大屏资源汇总
  • AI在论文评审中的应用与工具推荐
  • python版本得数独游戏
  • Nest集成健康检查
  • Redis中的hash数据结构设置过期时间的坑!!!
  • 纯真社区IP库离线版发布更新
  • 2025年3月电子学会青少年机器人技术(五级)等级考试试卷-理论综合
  • LeetCode算法题(Go语言实现)_59
  • Java函数式编程深度解析:从Lambda到流式操作
  • Allegro23.1新功能之铜皮替换成Via功能操作指导
  • PowerBI-使用参数动态修改数据源路径
  • 注意力机制:Transformer如何用“数学凝视“统治AI?
  • QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信
  • 第二章:langchain文本向量化(embed)搭建与详细教程-openai接口方式(上)
  • 软件开发过程通常包含多个阶段,结合 AI 应用,可规划出以下 Markdown 文件名称的资料来记录各阶段内容
  • 每日JavaScript 4.24