Kubernetes 常用运维命令整理

目录

Kubernetes 常用运维命令整理

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

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

    • 查看集群的所有节点信息:

      bash 复制代码
      kubectl get nodes
    • 查看节点详细信息:

      bash 复制代码
      kubectl describe node <node-name>
  2. 查看集群信息

    • 查看当前集群的基本信息(包括 API server 的地址等):

      bash 复制代码
      kubectl cluster-info
  3. 检查节点状态

    • 检查节点的健康状况:

      bash 复制代码
      kubectl get nodes -o wide
二、Pod 和容器管理
  1. 查看所有 Pod

    • 查看所有命名空间下的 Pod:

      bash 复制代码
      kubectl get pods --all-namespaces
    • 查看当前命名空间下的 Pod:

      bash 复制代码
      kubectl get pods
  2. 查看 Pod 状态

    • 查看指定 Pod 的详细信息:

      bash 复制代码
      kubectl describe pod <pod-name>
    • 查看 Pod 的日志:

      bash 复制代码
      kubectl logs <pod-name>
    • 查看指定容器日志:

      bash 复制代码
      kubectl logs <pod-name> -c <container-name>
  3. 调试 Pod

    • 进入 Pod 容器进行调试:

      bash 复制代码
      kubectl exec -it <pod-name> -- /bin/bash
  4. 删除 Pod

    • 删除指定 Pod:

      bash 复制代码
      kubectl delete pod <pod-name>
三、Deployment 和应用管理
  1. 查看所有 Deployment

    • 查看所有命名空间下的 Deployment:

      bash 复制代码
      kubectl get deployments --all-namespaces
  2. 查看 Deployment 状态

    • 查看指定 Deployment 的状态:

      bash 复制代码
      kubectl describe deployment <deployment-name>
  3. 更新 Deployment

    • 更新 Deployment 使用新的镜像:

      bash 复制代码
      kubectl set image deployment/<deployment-name> <container-name>=<new-image>
  4. 滚动更新

    • 进行滚动更新:

      bash 复制代码
      kubectl rollout restart deployment <deployment-name>
  5. 回滚 Deployment

    • 回滚到上一个版本:

      bash 复制代码
      kubectl rollout undo deployment <deployment-name>
四、Service 和网络管理
  1. 查看所有 Service

    • 查看所有命名空间下的 Service:

      bash 复制代码
      kubectl get services --all-namespaces
  2. 查看 Service 详情

    • 查看指定 Service 的详细信息:

      bash 复制代码
      kubectl describe service <service-name>
  3. 暴露应用

    • 暴露 Pod 作为一个服务:

      bash 复制代码
      kubectl expose pod <pod-name> --type=LoadBalancer --name=<service-name>
  4. 查看端口映射

    • 查看集群端口映射:

      bash 复制代码
      kubectl get svc
五、存储管理
  1. 查看所有 PersistentVolume (PV)

    • 查看所有 PV:

      bash 复制代码
      kubectl get pv
  2. 查看所有 PersistentVolumeClaim (PVC)

    • 查看所有 PVC:

      bash 复制代码
      kubectl get pvc
  3. 查看 Pod 使用的 PVC

    • 查看指定 Pod 使用的 PVC:

      bash 复制代码
      kubectl describe pod <pod-name>
六、ConfigMap 和 Secret 管理
  1. 查看所有 ConfigMap

    • 查看所有 ConfigMap:

      bash 复制代码
      kubectl get configmap
  2. 查看 ConfigMap 内容

    • 查看指定 ConfigMap 的内容:

      bash 复制代码
      kubectl describe configmap <configmap-name>
  3. 查看所有 Secret

    • 查看所有 Secret:

      bash 复制代码
      kubectl get secrets
  4. 查看 Secret 内容

    • 查看指定 Secret 的内容:

      bash 复制代码
      kubectl describe secret <secret-name>
七、资源使用与监控
  1. 查看集群资源使用情况

    • 查看集群的资源使用情况:

      bash 复制代码
      kubectl top nodes
      kubectl top pods
  2. 查看 Pod 资源请求和限制

    • 查看 Pod 的资源请求和限制:

      bash 复制代码
      kubectl describe pod <pod-name>
  3. 启用集群的监控

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

    • 查看 Pod 是否被调度到节点:

      bash 复制代码
      kubectl describe pod <pod-name> | grep Node
  2. 手动调度 Pod

    • 手动指定将 Pod 调度到特定节点:

      bash 复制代码
      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:

      bash 复制代码
      kubectl get roles,rolebindings --all-namespaces
  2. 创建 Role 和 RoleBinding

    • 创建 Role 和 RoleBinding 以设置 Pod 的访问权限:

      bash 复制代码
      kubectl apply -f role.yaml
      kubectl apply -f rolebinding.yaml
  3. 查看 ClusterRole 和 ClusterRoleBinding

    • 查看 ClusterRole 和 ClusterRoleBinding:

      bash 复制代码
      kubectl get clusterroles,clusterrolebindings
十、清理资源
  1. 删除资源
    • 删除指定资源:

      bash 复制代码
      kubectl delete <resource-type> <resource-name>

总结

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

相关推荐
谢亮_vipxieliang1 小时前
容器排障实战手册:从日志到内核的分层排障
docker·云原生·容器·eureka
JieDavid1 小时前
奇智创达知识产权管理系统期限监控模块实操,告别人工期限疏漏,实现管理闭环!
大数据·运维·人工智能·经验分享·重构
工作10年+,存储芯片行业1 小时前
Linux NVMe 中断排查与性能优化:IRQ 优化(原理+排查)
linux·运维·性能优化·ssd·nvme·pcie·中断
geats人山人海2 小时前
linux 1.目录结构
linux·运维·服务器
应用市场2 小时前
嵌入式Linux从裸板到产品(一):全景地图与交叉编译环境,从四个上板翻车现场说
linux·运维·服务器
CIMPro孪大师2 小时前
CIMPro×DPE | 不止是爆炸动画,AI原生数字样机如何让设备培训与运维更高效
运维·ai-native
皓月盈江3 小时前
Linux系统PC与Linux系统服务器通过scp上传与下载文件
linux·运维·服务器·scp·文件上传·文件下载
对讲机数码科普3 小时前
危化厂区防爆专网通信建设实践:从合规框架到验收清单
运维·网络·架构
Ruiery3 小时前
Linux 6.6内核 CPU 启动深度解析(二):AP 拉起 — BSP 如何用 INIT-SIPI 唤醒其余 CPU
linux·运维·服务器
Lsetea3 小时前
OpenSSL verify报error 62:证书主机名不匹配与-verify_hostname排查
运维·https·ssl证书·openssl·san