一、Kubernetes核心概念與集群搭建
1. 在線答疑
1)答疑Docker需要掌握到什么程度
- 學習目標:達到入門水平即可,重點掌握第一章Docker入門視頻內容
- 學習建議:預習時間約3-4小時,建議吸收視頻內容的80%
- 學習安排:可作為K8s學習的前置知識,實現平滑過渡
2)答疑鏡像的封裝概念
- 分層結構:鏡像采用分層組合方式,基于UFS(聯合文件系統)實現
- 空間優化:當多個鏡像共享相同基礎層時,僅存儲差異部分
- 版本控制:通過分層機制實現類似版本控制的效果
- 建議:深入了解UFS系統工作原理可更好理解鏡像封裝機制
3)答疑docker私有倉庫鏡像刪除
- 刪除方式:不同鏡像倉庫系統刪除方法不同
- Harbor示例:圖形界面提供刪除按鈕
- 通用建議:參考具體鏡像倉庫系統的官方文檔
4)答疑容器資源利用率監控
- 監控原則:
- 容器本質是應用的另一種部署方式
- 建議單個容器只運行一個應用程序
- 監控工具:
- 傳統腳本監控方法仍然適用
- 推薦使用專用工具如cAdvisor
- Kubernetes中可使用metrics-server
- 優勢:單應用容器部署可精確獲取應用資源占用情況
5)答疑docker-compose作用
- 核心功能:單機批量管理容器
- 應用場景:
- 部署由多個容器組成的應用
- 實現一鍵部署/關閉/卸載等操作
- 限制:不具備集群管理能力
6)答疑docker容器互通
- 互通基礎:容器間通信是必備功能
- 實現機制:
- 基于Linux虛擬網橋技術
- 容器啟動后自動加入網橋
- 類似交換機二層網絡通信
- 技術組件:結合網橋設備和veth pair實現
7)答疑打成鏡像數量
- 鏡像構建:支持任意層級的鏡像構建
- 數量限制:鏡像生成數量沒有上限
- 構建示例:鏡像A→容器B→鏡像B的循環構建不受限制
8)答疑docker數據持久化應用場景
- 容器數據的臨時性
- 數據丟失風險:容器是臨時性的,當容器被刪除時,容器內的數據(如MySQL數據)會隨之丟失
- 生命周期特性:數據僅在容器運行且未被刪除時存在,重建容器時無法保留原有數據
-
- 心目的:確保容器重建后仍能訪問原有數據
- 實現方式:將容器數據持久化存儲到宿主機,通過掛載卷(volume)實現數據持久化
- 數據持久化的實現方式
- 掛載機制:通過volume將容器內數據目錄映射到宿主機特定路徑
- 應用場景:數據庫容器(如MySQL)、需要保存用戶數據的應用等
9)答疑docker容器通信原理
- 底層實現:基于iptables的NAT規則實現容器間通信
- 外部訪問容器:通過iptables的DNAT規則轉發
- 容器訪問外部:通過iptables的SNAT規則實現
- 網絡組件:配合網橋(bridge)和veth設備對完成網絡連接
10)答疑k8s指定端口方式
- Service機制:k8s通過Service生成隨機端口,但可通過字段指定
- 配置方法:使用nodePort字段顯式定義服務端口
- 與Docker區別:不同于Docker直接使用
?p-p?p
參數映射端口
11)答疑批量刪除鏡像
- 刪除命令:使用docker命令手動刪除無用鏡像
- 卷處理:鏡像刪除不會自動清理關聯卷,需單獨執行卷清理命令
- 清理工具:Docker提供專用命令可清理系統無用資源
12)答疑HUB認證方式
- 證書生成:推薦使用openssl或cfssl工具生成自簽名證書
- 實踐建議:兩種工具均可滿足需求,cfssl操作更簡便
13)答疑容器數量少上swarm還是k8s
- 技術選型:Docker Swarm已被官方棄用,不再維護
- 唯一選擇:無論容器數量多少,都應選擇k8s作為容器編排方案
14)答疑部署lnmp文件目錄共享問題
- 必要性分析:Nginx需要處理靜態文件,PHP需要處理動態腳本,兩者必須共享同一程序目錄
- 解決方案:除非將靜態/動態文件物理分離,否則必須保持目錄共享
- 典型場景:網站程序通常混合存放靜態資源和PHP腳本文件
15)答疑數據庫是否應放在容器中
- 適用場景:單實例數據庫可部署在容器中
- 架構限制:主從復制等復雜架構不建議容器化部署
- 數據安全:必須配合持久化卷使用,避免數據丟失
二、知識小結
知識點 | 核心內容 | 易混淆點/考試重點 | 難度系數 |
Docker基礎掌握程度 | 入門水平即可,需掌握80%的入門視頻內容(約4小時) | 無需深入底層原理,重點理解基礎操作和概念 | ?? |
鏡像封裝原理 | 基于UFS聯合文件系統分層構建,節省磁盤空間 | 鏡像層共享機制(如A/B鏡像的磁盤占用關系) | ??? |
容器監控 | 推薦單容器單應用部署,通過cAdvisor等工具監控資源 | 傳統虛擬機監控與容器監控的差異 | ??? |
Docker Compose作用 | 單機批量管理容器,適用于多容器應用的一鍵部署/關閉 | 不支持集群管理,僅限單機場景 | ?? |
容器網絡互通 | 通過Linux網橋(類似交換機)和veth pair實現二層通信 | 與iptables NAT的區別(外部訪問走DNAT) | ???? |
數據持久化場景 | MySQL等有狀態服務需掛載宿主機目錄,防止容器刪除數據丟失 | 容器臨時存儲與持久化卷的對比 | ??? |
K8s端口管理 | 通過Service的nodePort字段指定端口(非完全隨機) | Docker直接映射端口(-p)與K8s Service的差異 | ???? |
數據庫容器化爭議 | 單實例可容器化,集群架構需謹慎 | 數據安全性與容器 ephemeral 特性的矛盾 | ???? |
LNMP目錄共享 | Nginx與PHP需共享網站目錄以同時處理靜態/PHP文件 | 動態與靜態資源未分離時的必要性 | ??? |
Swarm淘汰現狀 | 官方已停止維護,僅選K8s | Swarm與K8s的適用場景對比(歷史背景) | ?? |