Kubernetes 常用运维命令整理
目录
- Kubernetes 常用运维命令整理
- 一、集群管理
- 二、Pod 和容器管理
- 三、Deployment 和应用管理
- 四、Service 和网络管理
- 五、存储管理
- 六、ConfigMap 和 Secret 管理
- 七、资源使用与监控
- 八、调度和容错
- 九、Role 和权限管理
- 十、清理资源
 
- 总结
 
 
Kubernetes 常用运维命令整理
Kubernetes 是一个强大的容器编排工具,用于管理和自动化应用的部署、扩展和管理。在日常运维中,掌握一些常用的 Kubernetes 命令非常重要,这样可以有效地管理和调试集群。本文将根据不同场景整理和区分 Kubernetes 运维常用命令,帮助大家更好地管理集群和应用。
一、集群管理
-  查看集群节点 - 查看集群的所有节点信息:kubectl get nodes
- 查看节点详细信息:kubectl describe node <node-name>
 
- 查看集群的所有节点信息:
-  查看集群信息 - 查看当前集群的基本信息(包括 API server 的地址等):kubectl cluster-info
 
- 查看当前集群的基本信息(包括 API server 的地址等):
-  检查节点状态 - 检查节点的健康状况:kubectl get nodes -o wide
 
- 检查节点的健康状况:
二、Pod 和容器管理
-  查看所有 Pod - 查看所有命名空间下的 Pod:kubectl get pods --all-namespaces
- 查看当前命名空间下的 Pod:kubectl get pods
 
- 查看所有命名空间下的 Pod:
-  查看 Pod 状态 - 查看指定 Pod 的详细信息:kubectl describe pod <pod-name>
- 查看 Pod 的日志:kubectl logs <pod-name>
- 查看指定容器日志:kubectl logs <pod-name> -c <container-name>
 
- 查看指定 Pod 的详细信息:
-  调试 Pod - 进入 Pod 容器进行调试:kubectl exec -it <pod-name> -- /bin/bash
 
- 进入 Pod 容器进行调试:
-  删除 Pod - 删除指定 Pod:kubectl delete pod <pod-name>
 
- 删除指定 Pod:
三、Deployment 和应用管理
-  查看所有 Deployment - 查看所有命名空间下的 Deployment:kubectl get deployments --all-namespaces
 
- 查看所有命名空间下的 Deployment:
-  查看 Deployment 状态 - 查看指定 Deployment 的状态:kubectl describe deployment <deployment-name>
 
- 查看指定 Deployment 的状态:
-  更新 Deployment - 更新 Deployment 使用新的镜像:kubectl set image deployment/<deployment-name> <container-name>=<new-image>
 
- 更新 Deployment 使用新的镜像:
-  滚动更新 - 进行滚动更新:kubectl rollout restart deployment <deployment-name>
 
- 进行滚动更新:
-  回滚 Deployment - 回滚到上一个版本:kubectl rollout undo deployment <deployment-name>
 
- 回滚到上一个版本:
四、Service 和网络管理
-  查看所有 Service - 查看所有命名空间下的 Service:kubectl get services --all-namespaces
 
- 查看所有命名空间下的 Service:
-  查看 Service 详情 - 查看指定 Service 的详细信息:kubectl describe service <service-name>
 
- 查看指定 Service 的详细信息:
-  暴露应用 - 暴露 Pod 作为一个服务:kubectl expose pod <pod-name> --type=LoadBalancer --name=<service-name>
 
- 暴露 Pod 作为一个服务:
-  查看端口映射 - 查看集群端口映射:kubectl get svc
 
- 查看集群端口映射:
五、存储管理
-  查看所有 PersistentVolume (PV) - 查看所有 PV:kubectl get pv
 
- 查看所有 PV:
-  查看所有 PersistentVolumeClaim (PVC) - 查看所有 PVC:kubectl get pvc
 
- 查看所有 PVC:
-  查看 Pod 使用的 PVC - 查看指定 Pod 使用的 PVC:kubectl describe pod <pod-name>
 
- 查看指定 Pod 使用的 PVC:
六、ConfigMap 和 Secret 管理
-  查看所有 ConfigMap - 查看所有 ConfigMap:kubectl get configmap
 
- 查看所有 ConfigMap:
-  查看 ConfigMap 内容 - 查看指定 ConfigMap 的内容:kubectl describe configmap <configmap-name>
 
- 查看指定 ConfigMap 的内容:
-  查看所有 Secret - 查看所有 Secret:kubectl get secrets
 
- 查看所有 Secret:
-  查看 Secret 内容 - 查看指定 Secret 的内容:kubectl describe secret <secret-name>
 
- 查看指定 Secret 的内容:
七、资源使用与监控
-  查看集群资源使用情况 - 查看集群的资源使用情况:kubectl top nodes kubectl top pods
 
- 查看集群的资源使用情况:
-  查看 Pod 资源请求和限制 - 查看 Pod 的资源请求和限制:kubectl describe pod <pod-name>
 
- 查看 Pod 的资源请求和限制:
-  启用集群的监控 - 如果集群已经启用了 Prometheus 或其他监控工具,可以查看集群监控界面,检查集群健康状况和资源使用情况。
 
八、调度和容错
-  查看调度情况 - 查看 Pod 是否被调度到节点:kubectl describe pod <pod-name> | grep Node
 
- 查看 Pod 是否被调度到节点:
-  手动调度 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"}} }'
 
- 手动指定将 Pod 调度到特定节点:
九、Role 和权限管理
-  查看 Role 和 RoleBinding - 查看所有的 Role 和 RoleBinding:kubectl get roles,rolebindings --all-namespaces
 
- 查看所有的 Role 和 RoleBinding:
-  创建 Role 和 RoleBinding - 创建 Role 和 RoleBinding 以设置 Pod 的访问权限:kubectl apply -f role.yaml kubectl apply -f rolebinding.yaml
 
- 创建 Role 和 RoleBinding 以设置 Pod 的访问权限:
-  查看 ClusterRole 和 ClusterRoleBinding - 查看 ClusterRole 和 ClusterRoleBinding:kubectl get clusterroles,clusterrolebindings
 
- 查看 ClusterRole 和 ClusterRoleBinding:
十、清理资源
- 删除资源 - 删除指定资源:kubectl delete <resource-type> <resource-name>
 
- 删除指定资源:
总结
本文整理了 Kubernetes 常用的运维命令,涵盖了集群管理、Pod 管理、应用管理、网络配置、存储、权限管理、资源监控等多个场景。在实际运维中,了解并熟练使用这些命令能够帮助我们高效管理集群,及时发现并解决问题,提高集群的稳定性和可用性。希望这篇整理能对你有所帮助。
