以下為的 Kubernetes 超全常用命令文檔,涵蓋集群管理、資源操作、調試排錯等核心場景,結合示例與解析, 高效運維 Kubernetes 環境。
一、集群與節點管理
1. 集群信息查看
- 查看集群基本信息
kubectl cluster-info # 顯示API Server、DNS等核心組件地址
- 查看當前上下文
kubectl config current-context # 顯示當前使用的集群上下文
- 切換上下文
kubectl config use-context <context-name> # 用于多集群環境切換
2. 節點管理
- 列出所有節點狀態
kubectl get nodes # 顯示節點名稱、狀態、版本等基本信息
- 查看節點詳細信息
kubectl describe node <node-name> # 包括資源分配(CPU/內存)、Pod分布等
- 監控節點資源使用
kubectl top nodes # 需提前部署 Metrics Server
二、命名空間(Namespace)管理
1. 基本操作
- 查看所有命名空間
kubectl get ns # 縮寫形式,等同于 `kubectl get namespaces`
- 創建命名空間
kubectl create ns <namespace-name> # 例如 `kubectl create ns test`
- 刪除命名空間及資源
kubectl delete ns <namespace-name> # 級聯刪除命名空間內所有資源
2. 命名空間切換
- 設置默認命名空間
kubectl config set-context --current --namespace=<namespace> # 后續命令默認使用該命名空間
- 使用插件快速切換
安裝kubens
后,執行kubens <namespace>
切換當前命名空間 。
三、Pod 管理
1. 基礎操作
- 查看所有 Pod
kubectl get pods -A -o wide # 跨命名空間顯示 Pod 及所在節點信息
- 查看指定命名空間的 Pod
kubectl get pods -n <namespace> # 例如 `kubectl get pods -n kube-system`
- 查看 Pod 詳情與事件
kubectl describe pod <pod-name> # 包含容器狀態、事件日志等
2. 交互與日志
- 進入容器終端
kubectl exec -it <pod-name> -- /bin/bash # 若鏡像精簡,使用 `/bin/sh`
- 查看容器日志
kubectl logs <pod-name> # 實時日志追加 `-f` 參數
3. 刪除與重建
- 強制刪除 Pod
kubectl delete pod <pod-name> --force --grace-period=0 # 立即終止
四、工作負載管理(Deployment/Service)
1. Deployment 操作
- 創建 Deployment
kubectl create deployment nginx --image=nginx --replicas=3 # 指定鏡像與副本數
- 擴縮容
kubectl scale deployment nginx --replicas=5 # 動態調整副本數
- 回滾版本
kubectl rollout undo deployment nginx # 回退到上一版本
2. Service 管理
- 查看 Service 列表
kubectl get svc -A # 顯示所有服務的 ClusterIP 和端口
- 端口轉發測試
kubectl port-forward <pod-name> 8080:80 # 本地訪問 `localhost:8080` 映射到容器端口
五、配置與存儲管理
1. ConfigMap 與 Secret
- 創建 ConfigMap
kubectl create configmap app-config --from-file=config.properties # 從文件生成
- 查看 Secret 內容
kubectl get secret <secret-name> -o jsonpath='{.data}' # 解碼后查看明文
2. 持久化存儲
- 查看 PVC/PV 狀態
kubectl get pvc # 查看 PersistentVolumeClaim kubectl get pv # 查看 PersistentVolume
六、調試與排錯
1. 事件與資源狀態
- 查看集群事件
kubectl get events --sort-by='.metadata.creationTimestamp' # 按時間排序
- 檢查資源配額
kubectl describe quota # 顯示命名空間資源限制
2. 網絡測試
- Pod 內網絡連通性測試
kubectl exec <pod-name> -- curl http://<service-name> # 測試服務可達性
七、高級命令與技巧
1. 資源導出與恢復
- 導出資源配置
kubectl get deployment/nginx -o yaml > nginx-backup.yaml # 備份 YAML 文件
- 批量刪除資源
kubectl delete all --all -n <namespace> # 清空命名空間內所有資源
2. 資源縮寫與格式化
- 使用資源縮寫
kubectl get po,svc,deploy # 等價于 `pods`, `services`, `deployments`
- JSON/自定義輸出
kubectl get pods -o json # 輸出為 JSON 格式 kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase # 自定義列
八、附錄:常用資源類型縮寫表
資源類型 | 縮寫 | 示例命令 |
---|---|---|
pods | po | kubectl get po |
services | svc | kubectl get svc |
deployments | deploy | kubectl get deploy |
namespaces | ns | kubectl get ns |
persistentvolumeclaims | pvc | kubectl get pvc |
完整列表參考 |
以上命令覆蓋了 Kubernetes 日常運維的 80% 場景,建議結合 kubectl explain <resource>
查看字段說明 。如需更完整命令或最新特性,請參考 Kubernetes 官方文檔或上述來源。