< >
✨ 睽違6年,全新改新版,深入掌握最新 Kubernetes 功能!✨本書新版全面涵蓋Kubernetes從開發到生產環境的核心概念,整合Kubernetes廣泛生態系統中的解決方案,精選超過100個範例,助你輕鬆自信地穿越 Kubernetes 叢林,打造雲端原生應用程式。無論你是初次接觸 Kubernetes 的新手,還是已有經驗的開發者,都能在這本書中找到實用的知識與技巧,優化使用體驗提升工作效率。------------------------------------------------------Kubernetes是協調(orchestration)容器與管理分散式應用程式的事實標準,廣受重視擴展性、可移植性、自動化和聲明式組態配置風格的人們喜愛。透過這本實用的祕笈,你將學會如何使用Kubernetes來自動部署、大規模縮放和操作跨主機叢集上的應用程式容器。在這本全新的第二版,作者Sameer Naik、Sébastien Goasguen和Jonathan Michaux採用問題解決導向的風格,提供方便查詢的機制,讓你迅速找到詳細的解答。Kubernetes能協助快速部署應用程式,以可預測的方式有效應對客戶需求。這本祕笈也提供開發者和系統管理者需要的核心基礎知識,以幫助他們達成目標。這本祕笈的主題包括:• 建立Kubernetes叢集• 使用Kubernetes命令列介面• 管理基本的工作負載類型• 和服務共事• 探索Kubernetes API• 管理有狀態的和非雲端原生的應用程式• 操作volume和配置資料• 進行叢集和應用等級的縮放• 保護應用程式• 進行監控和記錄• 進行維護和排除故障
Sameer Naik是具備嵌入式系統經驗的雲端原生工程師,他是Docker專案的早期使用者之一。Sameer 曾參與早期的Kubernetes專案,同時也是Helm Charts專案的創始成員之一;他曾經服務於VMware和Bitnami,也是嵌入式系統初創企業NextBit Computing的共同創始人。Sébastien Goasguen是TriggerMesh的共同創始人、Kubernetes初創公司Skippbox的創辦人。他具備20年的開源經驗,身為Apache軟體基金會的成員,在Apache CloudStack和Libcloud服務多年,後來深入鑽研容器世界。他也是Docker Cookbook和60Recipes for Apache CloudStack的作者。Jonathan Michaux是產品經理,擁有工程學背景和計算機科學博士學位,專攻並行系統的形式方法。他的職涯跨越多家初創企業和上市公司。他的使命是為開發人員提供革命性的工具,包括API管理、資料和應用程式整合、微服務、EDA設計開發工具,以及在Kubernetes上的事件驅動應用。
前言第一章 開始使用 Kubernetes1.1 安裝 Kubernetes CLI — kubectl1.2 安裝 Minikube 來執行本地 Kubernetes 實例1.3 在本地使用 Minikube 來進行開發1.4 在 Minikube 上啟動你的第一個應用程式1.5 使用 kind 在本地運行 Kubernetes1.6 在 Docker Desktop 裡使用 Kubernetes1.7 切換 kubectl context1.8 使用 kubectx 與 kubens 來切換 context 與名稱空間第二章 建立 Kubernetes 叢集2.1 為 Kubernetes 叢集準備新節點2.2 引導 Kubernetes 控制平面節點2.3 安裝容器網路附加組件,以進行叢集網路通訊2.4 將工作節點加入 Kubernetes 叢集2.5 部署 Kubernetes 儀表板2.6 操作 Kubernetes 儀表板2.7 部署 Kubernetes Metrics 伺服器 2.8 從 GitHub 下載 Kubernetes 版本2.9 下載用戶端和伺服器的二進制檔2.10 使用 systemd 單元檔案來運行 Kubernetes 組件2.11 在 Google Kubernetes Engine 上建立 Kubernetes 叢集2.12 在 Azure Kubernetes Service 上建立 Kubernetes 叢集2.13 在 Amazon Elastic Kubernetes Service 上建立 Kubernetes 叢集第三章 使用 Kubernetes 用戶端3.1 列出資源3.2 刪除資源3.3 使用 kubectl 來觀察資源的變化3.4 使用 kubectl 來編輯物件3.5 要求 kubectl 解釋資源與欄位第四章 建立和修改基本工作負載4.1 使用 kubectl run 來建立 pod4.2 使用 kubectl create 來建立 deployment4.3 用檔案 manifest 來建立物件4.4 從頭開始編寫 pod manifest4.5 使用 manifest 來啟動 deployment4.6 更新 deployment4.7 執行批次工作(job)4.8 在 pod 內按照時程執行任務4.9 在每個節點上運行基礎架構 daemon第五章 使用服務5.1 建立服務以公開你的應用程式5.2 驗證服務的 DNS entry5.3 更改服務類型5.4 部署一個 ingress 控制器5.5 從叢集外部使用服務第六章 管理應用程式 manifest6.1 安裝 Helm — Kubernetes 的 Package 管理器6.2 將 chart 版本庫加入 Helm 6.3 使用 Helm 來安裝應用程式6.4 檢視 chart 的可自訂參數6.5 覆寫 chart 參數6.6 取得使用者提供的 Helm 版本參數6.7 用 Helm 來反安裝應用程式6.8 建立自己的 chart,以使用 Helm 來打包你的應用程式6.9 安裝 Kompose6.10 將 Docker compose 檔案轉換為 Kubernetes manifest6.11 將 Docker compose 檔轉換成 Helm chart6.12 安裝 kapp6.13 使用 kapp 來部署 YAML manifest第七章 探索 Kubernetes API 與關鍵的詮釋資料7.1 發現 Kubernetes API 伺服器的端點7.2 瞭解 Kubernetes manifest 的結構7.3 建立名稱空間以避免名稱衝突7.4 為名稱空間設定配額7.5 標記物件7.6 用標記來查詢7.7 用一個命令來附註資源第八章 volume 與配置資料8.1 透過本地 volume 在容器之間交換資料8.2 使用 secret 來向 pod 傳遞 API 訪問密鑰8.3 提供配置資料給應用程式8.4 用 Minikube 來使用持久 volume8.5 在 Minikube 瞭解資料可否持久保存8.6 將加密後的祕密資訊儲存在版本控制系統中第九章 規模縮放9.1 縮放部署9.2 使用水平 pod 自動縮放9.3 自動縮放 GKE 裡的叢集9.4 自動縮放 Amazon EKS 叢集 第十章 資訊安全10.1 為應用程式提供唯一的身分10.2 列出與查看訪問控制資訊10.3 控制對於資源的訪問10.4 保護 pod第十一章 監視與記錄11.1 讀取容器的 log11.2 使用 liveness probe 從故障狀態中恢復11.3 使用 readiness probe 來控制進入 pod 的流量11.4 使用 start-up probe 來保護啟動速度緩慢的容器11.5 將 liveness 與 readiness probe 加入你的部署11.6 透過 CLI 取得 Kubernetes 統計數據11.7 在 Minikube 上使用 Prometheus 和 Grafana第十二章 維護與問題排除12.1 啟用 kubectl 的自動完成12.2 將服務裡的 pod 移除12.3 在叢集外訪問 ClusterIP 服務12.4 瞭解與解析資源狀態12.5 對 pod 進行偵錯12.6 影響 pod 的啟動行為12.7 取得叢集狀態的詳細快照12.8 加入 Kubernetes 工作節點12.9 drain Kubernetes 節點,以進行維護第十三章 服務 mesh13.1 安裝 Istio 服務 mesh13.2 使用 Istio sidecar 來部署微服務13.3 使用 Istio 虛擬服務來路由流量13.4 使用 Istio 虛擬服務來改寫 URL13.5 安裝 Linkerd 服務 mesh13.6 將服務部署到 Linkerd mesh 中13.7 將流量路由至 Linkerd 裡的服務13.8 在 Linkerd 中授權通往伺服器的流量 第十四章 無伺服器和事件驅動應用程式14.1 安裝 Knative Operator14.2 安裝 Knative Serving 組件14.3 安裝 Knative CLI14.4 建立 Knative Service14.5 安裝 Knative Eventing 組件14.6 部署 Knative Eventing 事件來源14.7 啟用 Knative Eventing 資源14.8 從 TriggerMesh 安裝事件來源第十五章 擴展 Kubernetes15.1 編譯原始碼15.2 編譯特定組件15.3 使用 Python 用戶端來與 Kubernetes API 互動15.4 使用自訂的資源定義來擴展 API附錄 參考資源一般資源教學與範例索引
Kubernetes建置與執行 第三版 微服務開發指南|使用Spring Cloud與Docker 深入剖析Kubernetes
購買紙本書