目錄
- 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 管理、應用管理、網絡配置、存儲、權限管理、資源監控等多個場景。在實際運維中,了解并熟練使用這些命令能夠幫助我們高效管理集群,及時發現并解決問題,提高集群的穩定性和可用性。希望這篇整理能對你有所幫助。