以下是 Kubernetes 常見問題(FAQ)的整理,涵蓋了初學者和運維人員常遇到的痛點:
?一、部署與安裝問題?
-
?安裝太復雜???
- 解決方案:使用 ?kubeadm?(官方工具)、Minikube?(單節點本地開發)、Kind?(Docker容器模擬集群)或云托管的K8s服務(如EKS/AKS/GKE)。
- 避坑:國內環境注意鏡像源替換(如阿里云鏡像倉庫)。
-
?節點狀態
NotReady
???- ?檢查方向?:
- 網絡插件未安裝(如Calico/Flannel運行異常)。
kubelet
服務崩潰(systemctl status kubelet
)。- 節點資源不足(內存/CPU耗盡)。
- ?檢查方向?:
?二、日常操作問題?
-
?如何快速查看資源狀態???
kubectl get pods -n <namespace> # 查看Pod kubectl describe pod <pod-name> # 排查Pod詳情(事件、錯誤日志) kubectl logs <pod-name> -c <container> # 查看容器日志 kubectl top nodes/pods # 監控資源占用
-
?誤刪了資源怎么辦???
- K8s部分資源支持優雅刪除(如
Deployment
會重建Pod),但關鍵數據(如未備份的PersistentVolume
)可能永久丟失。 - ?預防措施?:
- 啟用 ?命名空間隔離? 和 ?RBAC權限控制。
- 使用 ?Velero? 定期備份整個集群。
- K8s部分資源支持優雅刪除(如
?三、配置與調試問題?
-
?Pod卡在
Pending
狀態???- ?常見原因?:
- 資源不足(節點無足夠CPU/內存)。
- 未匹配NodeSelector/Affinity(如指定了GPU節點但不存在)。
- PersistentVolumeClaim(PVC)綁定失敗(存儲類不可用或容量不足)。
- ?常見原因?:
-
?Service無法訪問???
- ?排查步驟?:
- 檢查Service的
Endpoints
是否正常:kubectl get endpoints <service-name>
- 驗證Pod是否Ready(Readiness Probe可能失敗)。
- 網絡策略(NetworkPolicy)是否攔截流量。
- 檢查Service的
- ?排查步驟?:
?四、存儲與數據問題?
-
?PV/PVC綁定失敗???
- 檢查StorageClass配置(如AWS EBS需IAM權限)。
- 動態存儲需云提供商支持,靜態PV需手動創建。
-
?容器內文件修改后丟失???
- 默認容器文件系統是臨時的!?必須用Volume持久化數據?:
- 臨時存儲:
emptyDir
- 持久存儲:
PersistentVolumeClaim
- 配置掛載:
ConfigMap/Secret
- 臨時存儲:
- 默認容器文件系統是臨時的!?必須用Volume持久化數據?:
?五、升級與運維問題?
-
?滾動更新卡住???
- ?原因?:
- 新版本Pod啟動失敗(如配置錯誤)。
maxUnavailable
設得過低(默認25%)。
- ?強制回滾?:
kubectl rollout undo deployment/<deployment-name>
- ?原因?:
-
?如何安全擴縮容???
- 手動:
kubectl scale deployment/<name> --replicas=5
- 自動(HPA):基于CPU/內存或自定義指標自動擴縮。
- 手動:
?六、概念混淆問題?
-
?Deployment vs StatefulSet vs DaemonSet???
類型 用途 典型場景 ?Deployment? 無狀態應用 Web服務、API ?StatefulSet 有狀態應用(需穩定網絡/存儲) MySQL、Elasticsearch ?DaemonSet? 每個節點運行一個副本 日志收集(Fluentd)、節點監控 -
?ConfigMap vs Secret???
ConfigMap
:存儲非敏感配置(如環境變量)。Secret
:存儲敏感數據(密碼/TLS證書),?需加密存儲?(啟用Etcd加密)。
?七、高級問題?
-
?如何調試網絡???
- 工具鏈:
kubectl exec
進入Pod測試DNS解析。calicoctl
診斷網絡策略。- 集群級工具:Weave Scope、Istio可視化。
- 工具鏈:
-
?K8s集群性能瓶頸在哪???
- ?監控方案?:
- 內置工具:
Metrics Server
+kubectl top
。 - 完整方案:Prometheus + Grafana(監控APIServer/Etcd/節點資源)。
- 內置工具:
- ?監控方案?:
?避坑指南?
- ?鏡像拉取失敗?:檢查
imagePullSecrets
(私有倉庫認證)。 - ?Pod不斷重啟?:查看
CrashLoopBackOff
日志(通常應用啟動錯誤)。 - ?資源限制泄漏?:為Pod設置
resources.limits
,避免節點雪崩。
💡 ?學習建議?:
- 實驗環境:用
Minikube
快速嘗試基礎操作。- 官方文檔:查看 kubernetes.io/docs 的 ?Tasks? 和 ?Troubleshooting? 板塊。
- 實戰工具:
k9s
(終端管理工具)、Lens
(桌面IDE)。
遇到具體問題時可結合kubectl describe
和事件日志精準定位!