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