Kubernetes錦囊妙計 (2版)
類似書籍推薦給您
【簡介】
✨ 睽違6年,全新改新版,深入掌握最新 Kubernetes 功能!✨
本書新版全面涵蓋Kubernetes從開發到生產環境的核心概念,整合Kubernetes廣泛生態系統中的解決方案,精選超過100個範例,助你輕鬆自信地穿越 Kubernetes 叢林,打造雲端原生應用程式。
無論你是初次接觸 Kubernetes 的新手,還是已有經驗的開發者,都能在這本書中找到實用的知識與技巧,優化使用體驗提升工作效率。
------------------------------------------------------
Kubernetes是協調(orchestration)容器與管理分散式應用程式的事實標準,廣受重視擴展性、可移植性、自動化和聲明式組態配置風格的人們喜愛。透過這本實用的祕笈,你將學會如何使用Kubernetes來自動部署、大規模縮放和操作跨主機叢集上的應用程式容器。
在這本全新的第二版,作者Sameer Naik、Sébastien Goasguen和Jonathan Michaux採用問題解決導向的風格,提供方便查詢的機制,讓你迅速找到詳細的解答。Kubernetes能協助快速部署應用程式,以可預測的方式有效應對客戶需求。這本祕笈也提供開發者和系統管理者需要的核心基礎知識,以幫助他們達成目標。
這本祕笈的主題包括:
• 建立Kubernetes叢集
• 使用Kubernetes命令列介面
• 管理基本的工作負載類型
• 和服務共事
• 探索Kubernetes API
• 管理有狀態的和非雲端原生的應用程式
• 操作volume和配置資料
• 進行叢集和應用等級的縮放
• 保護應用程式
• 進行監控和記錄
• 進行維護和排除故障
【目錄】
前言
第一章 開始使用 Kubernetes
1.1 安裝 Kubernetes CLI — kubectl
1.2 安裝 Minikube 來執行本地 Kubernetes 實例
1.3 在本地使用 Minikube 來進行開發
1.4 在 Minikube 上啟動你的第一個應用程式
1.5 使用 kind 在本地運行 Kubernetes
1.6 在 Docker Desktop 裡使用 Kubernetes
1.7 切換 kubectl context
1.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 來建立 pod
4.2 使用 kubectl create 來建立 deployment
4.3 用檔案 manifest 來建立物件
4.4 從頭開始編寫 pod manifest
4.5 使用 manifest 來啟動 deployment
4.6 更新 deployment
4.7 執行批次工作(job)
4.8 在 pod 內按照時程執行任務
4.9 在每個節點上運行基礎架構 daemon
第五章 使用服務
5.1 建立服務以公開你的應用程式
5.2 驗證服務的 DNS entry
5.3 更改服務類型
5.4 部署一個 ingress 控制器
5.5 從叢集外部使用服務
第六章 管理應用程式 manifest
6.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 安裝 Kompose
6.10 將 Docker compose 檔案轉換為 Kubernetes manifest
6.11 將 Docker compose 檔轉換成 Helm chart
6.12 安裝 kapp
6.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 來使用持久 volume
8.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 讀取容器的 log
11.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 節點,以進行維護
第十三章 服務 mesh
13.1 安裝 Istio 服務 mesh
13.2 使用 Istio sidecar 來部署微服務
13.3 使用 Istio 虛擬服務來路由流量
13.4 使用 Istio 虛擬服務來改寫 URL
13.5 安裝 Linkerd 服務 mesh
13.6 將服務部署到 Linkerd mesh 中
13.7 將流量路由至 Linkerd 裡的服務
13.8 在 Linkerd 中授權通往伺服器的流量
第十四章 無伺服器和事件驅動應用程式
14.1 安裝 Knative Operator
14.2 安裝 Knative Serving 組件
14.3 安裝 Knative CLI
14.4 建立 Knative Service
14.5 安裝 Knative Eventing 組件
14.6 部署 Knative Eventing 事件來源
14.7 啟用 Knative Eventing 資源
14.8 從 TriggerMesh 安裝事件來源
第十五章 擴展 Kubernetes
15.1 編譯原始碼
15.2 編譯特定組件
15.3 使用 Python 用戶端來與 Kubernetes API 互動
15.4 使用自訂的資源定義來擴展 API
附錄 參考資源
一般資源
教學與範例
索引
立即查看
那些文件沒有告訴你的AWS EKS:解析Kubernetes背後的奧秘(iThome鐵人賽系列書)【軟精裝】 (1版)
類似書籍推薦給您
【簡介】
EKS 從不會到入門,從入門到精通
第一本完整探討 EKS 本土書籍
透過問題分析與討論讓你培養問題解決的脈絡
本書內容改編自第 14 屆 iThome 鐵人賽 DevOps 組的優選系列文章《那些文件沒告訴你的 AWS EKS》。
本書從建立 EKS cluster 開始,由「為什麼」為引言反思AWS是如何引用原生 Kubernetes 功能並設計,並溯源 Kubernetes 的原理,進而學習底層 Linux 及網路相關知識。此外,每章節提供逐步除錯驗證,照著步驟實作也能學習到除錯概念。
全書提供 18 個「為什麼」,使用「五個為什麼(Five whys)方法論一層層從 AWS、Kubernetes、容器,最終至作業系統,沿著因果關係順著網上探討釐清整體脈絡。這些「為什麼」們包含了數個 EKS 上實務常見問題,讀者除了能熟悉 AWS 環境及 Kubernetes 限制,也同時釐清作業系統與網路脈絡,提升問題排除的能力,進而持續精進「打破砂鍋問到底」的研究精神。
【目標讀者】
• 想要掌握 Kubernetes 概念和原理的工程師
• 想從 Junior 晉升到 Senior 的 DevOps/SRE 工程師
• 沒有使用過 AWS 雲端環境入門者
• 喜歡親自動手驗證的工程師
【目錄】
CHAPTER 0 為什麼寫這本書
0.1 誰適合本書
0.2 本書內容
0.2.1 會包括以下內容
0.2.2 你需要準備什麼?
0.3 如何使用這本書
0.4 「為什麼」這麼重要
0.5 實務操作
CHAPTER 1 建立 EKS 叢集環境
1.1 版本
1.2 建立環境
1.3 其它方便的設定
CHAPTER 2 CloudWatch Logs 及 CloudWatch Logs Insights 簡介
2.1 CloudWatch Logs 服務專有名詞
2.2 CloudWatch Logs Insights 查詢語法
2.2.1 CloudWatch 控制台
2.2.2 AWS CLI 命令
CHAPTER 3 為什麼 kubectl可以存取 EKS 叢集
3.1 叢集身分驗證
3.2 AWS IAM Authenticator for Kubernetes
3.3 驗證EKS 叢集預設使用AWS IAM Authenticator for Kubernetes
3.3.1 kubectl
3.3.2 驗證控制平面記錄檔
3.3.3 aws-iam-authenticator server 原始碼
3.4 流程
CHAPTER 4 為什麼 EKS 工作節點可以自動加入 EKS 叢集
4.1 EKS node group
4.2 Amazon EKS optimized Amazon Linux AMIs
4.3 kubelet 啟動程序(bootstrap) 初始化步驟
4.4 驗證 kubelet TLS bootstrapping 及自動化核准發證設定
4.4.1 kubelet 設定檔
4.4.2 kube-apiserver
4.4.3 kube-controller-manager
4.4.4 建立一個 EKS 節點
CHAPTER 5 為什麼 EKS 叢集可以識別預設 CNI plugin 為 Amazon VPC CNI plugin
5.1 工作節點 - kubelet 及 CNI
5.1.1 Kubernetes 1.22 版本
5.1.2 Kubernetes 1.27 版本
5.2 驗證EKS-optimized AMI 是否預設設定Amazon VPC CNI plugin 設定檔案
5.2.1 未加入 EKS 叢集 EC2
5.2.2 加入 EKS 叢集,執行 Amazon VPC CNI plugin 的EC2
5.3 Amazon VPC CNI plugin 的啟動流程
5.4 是誰安裝了 VPC CNI plugin
5.5 總結
CHAPTER 6 為什麼 CoreDNS 可以解析 VPC 內的域名及外部域名
6.1 kubelet 設定檔
6.2 Pod's DNS Policy
6.3 驗證 EKS 叢集內 DNS 解析流程
6.3.1 預設 Pod dnsPolicy 設定
6.3.2 從 Pod 內發送 DNS 請求
6.3.3 CoreDNS Pod 本身的 dnsPolicy 設定
6.4 EKS 叢集內 DNS 請求流程
6.5 結論
CHAPTER 7 為什麼 EKS add-on 可以管理 Kubernetes plugin
7.1 更新 Amazon VPC CNI plugin 為 EKS add-ons
7.2 Server-Side Apply
7.3 驗證 EKS 叢集 add-ons 使用 Server-Side Apply
7.3.1 第一次 eksctl create addon
7.3.2 第二次eksctl create addon 使用參數–force
7.4 managedFields
7.4.1 Fully managed:所有 Field Management 指定了 f: 但沒有 k:,則代表 Fully managed,任何修改都會造成衝突
7.4.2 Partially managed:如果 Field Management key 有指定值,修改 key 則會造成衝突
7.5 總結
CHAPTER 8 為什麼 EKS 叢集可以讓 Pod 部署至 Fargate
8.1 建立測試 Pod 於 Fargate 環境上
8.2 驗證部署至 EC2 工作節點與 Fargate 的 Pod 差異
8.3 驗證控制平面記錄檔(一)
8.4 什麼是 Mutate webhook
8.5 0500-amazon-eks-fargate-mutation.amazonaws.com 是怎麼來的
8.6 驗證控制平面記錄檔(二)
8.7 總結
CHAPTER 9 為什麼 EKS 能將 IAM roles 與 Kubernetes service accounts 整合(IAM roles for service accounts, IRSA)
9.1 建立使用 IRSA 的 Pod
9.2 IAM、OpenID Connect(OIDC)和 Kubernetes 關係
9.2.1 IAM 與 OpenID Connect(OIDC)
9.2.2 OpenID Connect(OIDC)與 Kubernetes
9.3 驗證 IRSA 流程
9.3.1 驗證EKS 叢集API server 設定IAM OIDC 作為identity provider
9.3.2 驗證Pod 經webhook mutate
9.3.3 Pod 掛載 OIDC JWT token
9.3.4 OIDC JWT 與 STS 驗證流程
9.4 總結
CHAPTER 10 為什麼 Managed node groups 可以保持應用程式可用性
10.1 實驗(一)
10.1.1 建立 Managed node groups 及 Self-managed node groups
10.1.2 比對 Label 的差異
10.1.3 比對 kubelet systemd unit 設定檔差異
10.1.4 比對 user-data 來源
10.1.5 為什麼兩種 node group 都可以自動加入 EKS 叢集
10.2 實驗(二)
10.2.1 建立Kubernetes Deployment object 並終止其中一Managed 節點
10.2.2 驗證 managed node group 行為
10.2.3 為什麼不是使用 eksctl 命令 scale in,而是使用ASG 命令與 managed node group 互通 ?
10.2.4 ASG lifecycle hook
CHAPTER 11 為什麼透過 CloudFormation template 建立的 self-managed node group 無法自動加入至叢集
11.1 CloudFormation template
CHAPTER 12 為什麼 CDK 部署 EKS 叢集會比較慢
12.1 建立環境 - 透過 CDK 建置 EKS 叢集
12.2 分析
12.3 總結
CHAPTER 13 為什麼 Fluent Bit/Fluentd 可以收集 EKS 叢集 Pod 以及節點記錄檔
13.1 常見 Kubernetes 記錄檔架構
13.1.1 節點層級
13.1.2 叢集層級記錄檔架構
13.1.3 直接從應用程式上傳記錄檔
13.2 以CloudWatch Agent for Container Insights Kubernetes Monitoring 為例
13.2.1 為什麼收集/var/log/containers/
13.2.2 CloudWatch Agent
13.3 建置環境
13.4 驗證
13.4.1 驗證 CloudWatch Agent 及指標
CHAPTER 14 為什麼 Container insight 指標 node_network_total_bytes 與 EC2 指標 NetworkIn/NetworkOut 不一致
14.1 建置環境
14.2 驗證
14.3 指標定義
14.4 網路封包流向
14.5 總結
CHAPTER 15 為什麼 EKS 工作節點容易佔用 IP 導致 subnets IP 位址不夠
15.1 檢視測試叢集環境
15.2 每個 Instance Type 能關聯的 ENI 數量及 IP 數量上限
15.3 預設Amazon VPC CNI plugin 的行為:多建一個ENI,關聯數個IP 位址
15.4 WARM_ENI_TARGET、WARM_IP_TARGET 及MINIMUM_ IP_TARGET 環境變數
15.5 監控
15.6 總結
CHAPTER 16 為什麼 security group 可以關聯至單獨的 EKS Pod - Security groups for pods
16.1 建置環境
16.2 SGFP 流程
16.2.1 VPC interface trunking
16.3 驗證 SGFP 流程
16.3.1 vpc-resource-mutating-webhook 是怎麼來的
16.3.2 驗證節點由 VPC resource controller 更新節點 label
16.3.3 驗證 Pod 經 webhook mutate
16.3.4 驗證節點使用 vlan 路由規則
16.3.5 驗證 branch ENI 及 trunk ENI 建立時間
16.4 總結
CHAPTER 17 為什麼使用 SGFP 使用 liveness/readiness probes 需要設定環境變數DISABLE_TCP_EARLY_DEMUX
17.1 環境變數 DISABLE_TCP_EARLY_DEMUX
17.2 TCP Early Demux 的行為
17.3 問題
17.4 總結
CHAPTER 18 為什麼 EKS 使用 NLB 作為 Kubernetes service 會遇到 connection timeout
18.1 建立測試環境
18.2 EKS 如何註冊Target Group 至Service
18.3 封包從 Pod 經由節點至 NLB 路徑
18.4 分析封包
18.5 NLB client 保留 IP 問題
18.6 替代方案
CHAPTER 19 為什麼 EKS 在更新 Kubernetes Deployment 時會有 HTTP 502 錯誤
19.1 建立環境
19.2 更新 image 流程中發生了什麼事
19.3 Kubernetes Service 與 Pod 流程
19.4 為什麼會有 HTTP 502 錯誤
19.5 如何避免問題
19.5.1 preStop hook
19.5.2 terminationGracePeriodSeconds
19.6 Pod Readiness Gates
19.7 總結
CHAPTER 20 為什麼 EKS 控制平面可以升級而無停機時間
20.1 建立環境
20.1.1 健康檢查 script
20.2 驗證
20.2.1 Pod aws-cli 記錄檔
20.2.2 控制平面記錄檔
20.2.3 CloudTrail 記錄
20.3 EKS 控制平面架構
20.4 流程
20.4.1 為什麼會有 connection timeout 錯誤
附件 參考文件
立即查看
從異世界歸來發現只剩自己不會Kubernetes:初心者進入雲端世界的實戰攻略!(iThome鐵人賽系列書)【平裝】 (1版)
類似書籍推薦給您
【簡介】
佳評如潮!熱銷再版(平裝版)
★☆★ 銷售排行榜冠軍 TOP 1 ★☆★
▍覺得 Kubernetes 門檻太高?那你找對地方了!
▍九大核心主題,由淺入深逐一擊破!
本書內容改編自第 14 屆 iThome 鐵人賽 DevOps 組的優選系列文章《從異世界歸來發現只剩自己不會 Kubernetes》。此書是一本綜合性的指南,針對想要探索認識 Kubernetes 的技術人員而生。無論是初涉此領域的新手,還是已有深厚經驗的資深工程師,本書都能提供你所需的知識和技能。
本書致力於使讀者可以由淺入深,全面了解 Kubernetes 的各個面向。從基礎的概念開始,逐步深入至進階技術和策略,每一章都根據主題進行有組織的切分,以確保讀者不僅能建立堅固的基礎,還能進一步掌握要點。
在這本書中,作者展示自己在業界的實戰經驗,並精心策劃九大核心主題,引領讀者從 Kubernetes 的初步探索邁向深入的實戰應用。不僅涵蓋初學者的基礎知識,更延伸至實務部署策略,進階的權限管理,以及資源分配的技巧。每一頁都充滿了真實世界的寶貴經驗,等待著你來發掘和學習。
四大重點
☑ 漸進式學習
艱澀觀念都能迎刃而解
☑ 主題式攻略
專題深度剖析,策略全面掌握
☑ 提供實作範例
大量實作範例,讓你寫得順看得懂
☑ 過來人甘苦談
記錄從學廢到學會的心路歷程
目標讀者
● 想要快速掌握 Kubernetes 概念和技巧的初學者。
● 已經有 Docker 或是微服務基礎的後端工程師。
● 想要在 Kubernetes 部署和管理應用程式的 DevOps 工程師。
● 想要了解 Kubernetes 原理和架構的軟體工程師。
專業推薦
「這本書不僅提供了豐富的範例程式碼和操作指南,讓身為工程師的我們能實際操作來加深認知;更重要的是,它教會我如何從後端工程師的角度去思考和應用 Kubernetes。從容器的生命週期、資源管理到部署管理,每一章都與我們的日常開發工作息息相關。」──── 雷N │ 後端工程師 / iThome 鐵人賽戰友
【目錄】
Part 1 萬丈高樓平地起,開始爬吧!
第1章 Kubernetes 是什麼?
1.1 網路部署的演變
1.2 Kubernetes 的定位
第2章 Kubernetes 的元件
2.1 Kubernetes 設計原理
2.2 Kubernetes 叢集中包含哪些元件?
2.3 Kubernetes Control Plane
Part 2 一定要安裝些什麼的吧!
第3章 安裝 Kubernetes(Docker Desktop)
3.1 下載 Docker Desktop(macOS)
3.2 開啟 Docker Desktop 內建的 Kubernetes
3.3 查看 Kubernetes 狀態
第4章 安裝 Kubernetes Dashboard GUI
4.1 Kubernetes Dashboard 是什麼?
4.2 設定 Kubernetes Dashboard
Part 3 老闆總說先可以 Run 就好…
第5章 Kubernetes — 實戰做一個 Pod
5.1 建立容器(Container)
5.2 建立 Kubernetes 設定檔
5.3 在 Kubernetes 中建立 Pod
5.4 使用 kubectl port-forward 與 Local 端接軌
第6章 Kubernetes — 實戰做一個 Service
6.1 Service 是什麼?
6.2 那什麼是邏輯上的一群 Pod?
第7章 Kubernetes — 實戰做一個 Deployment
7.1 使用案例
7.2 實戰演練
7.3 更新 Deployment 實現水平擴展
7.4 使用 Rollout 查看歷史版本並回滾
第8章 Kubernetes — 實戰做一個 StatefulSet
8.1 StatefulSet 是什麼?
8.2 StatefulSet 中的有序命名及網路 ID
8.3 StatefulSet 中的穩定儲存
8.4 StatefulSet 中的 Headless Services
8.6 StatefulSet 中的部署及擴縮保證
8.7 StatefulSet 中的更新策略
8.8 實戰演練
8.9 刪除 StatefulSet
Part 4 我就知道事情沒有那麼單純
第9章 Kubernetes — Kustomize 是什麼?
9.1 Kustomize 在 Kubernetes 中的定位
9.2 Kustomize 介紹
9.3 Kustomize 安裝
9.4 基本指令
9.5 實戰演練
9.6 Kustomize 進階功能
第10章 Kubernetes — 路由守護神 Ingress
10.1 Ingress 是什麼?
10.2 Ingress 的作用
10.3 Ingress 安裝
10.4 實戰演練
第11章 Kubernetes — Pod 的生命週期
11.1 Pod 的生命週期
11.2 Pod Phase(階段)
11.3 重啟策略(Restart Policy)
11.4 初始化容器(Init Container)
11.5 生命週期鉤子(Lifecircle Hook)
11.6 健康檢查(Health Check)
第12章 Kubernetes Kubectl 指令與它的快樂夥伴
12.1 Kubectl 介紹
12.2 Kubectl 安裝設定
12.3 Kubectl 語法
12.4 Kubectl 常用指令
12.5 善加利用 Kubectl Help
Part 5 這些花式部署你學會了嗎?
第13章 Kubernetes Deployment Strategies — 常見的部署策略
13.1 重建部署(Recreate)
13.2 滾動部署(Rolling-Update)
13.3 藍綠部署(Blue / Green)
13.4 金絲雀部署(Canary)
13.5 A / B 測試(A / B Testing)
13.4 影子部署(Shadow)
第14章 Kubernetes Deployment Strategies — 重建部署與滾動部署
14.1 重建部署(Recreate)
14.2 滾動部署(Rolling-Update)
第15章 Kubernetes Deployment Strategies — 金絲雀部署
15.1 Nginx Ingress 金絲雀部署功能介紹
15.2 金絲雀部署(Canary Deployment)
15.3 使用金絲雀部署更新服務
15.4 實戰演練
Part 6 相較之下 Docker Volume 好像遜色了點?
第16章 Kubernetes Volume — Volume 是什麼?
16.1 那 Kubernetes 的 Volume 是什麼?
16.2 Volume 類型
16.3 不同 Volume 的生命週期
第17章 Kubernetes Volume — EmptyDir
17.1 EmptyDir Volume
17.2 實戰演練
第18章 Kubernetes Volume — ConfigMap
18.1 ConfigMap 的特性
18.2 建立 ConfigMap
18.3 實戰演練
第19章 Kubernetes Volume — Secret
19.1 什麼是 Secret?
19.2 建立 Secret
19.3 實際應用 Secret
19.4 聊聊關於 Secret 看起來並不那麼安全這件事
第20章 Kubernetes Volume — PV & PVC
20.1 Storage Class
20.2 Persistent Volumes(PV)
20.3 Persistent Volume Claims(PVC)
20.4 實戰演練
Part 7 資源監控一定是全新的世界
第21章 Kubernetes Resources — Resource
21.1 Resource 是什麼?
21.2 Request 和 Limit 關係
21.3 Pod 的服務品質(Quality of Service,QoS)
21.4 Resource 設定的排列組合
21.5 實戰心得分享
第22章 Kubernetes Resources — Namespace
22.1 Namespace 是什麼以及何時使用?
22.2 實戰演練
22.3 一些 Namespace 的特性
第23章 Kubernetes Resources — Resource Management
23.1 什麼是 LimitRange ?
23.2 什麼是 ResourceQuota?
23.3 實戰演練 — LimitRange
23.4 實戰演練 — ResourceQuota
第24章 Kubernetes Resources — Metrics Server
24.1 Metrics Server 是什麼?
24.2 Metrics Server 原理
24.3 安裝 Metrics Server
24.4 顯示資源使用訊息
Part 8 身為 Server 守護者的你是不是也沒辦法睡個好覺
第25章 Kubernetes AutoScaling — AutoScaling 是什麼?
25.1 Autoscaler 的種類
25.2 Cluster Autoscaler(CA)
25.3 Horizontal Pod Autoscaler(HPA)
25.4 Vertical Pod Autoscaler(VPA)
25.5 Multidimensional Pod Autoscaler(MPA)
25.6 Custom Pod Autoscaler
第26章 Kubernetes AutoScaling — Horizontal Pod AutoScaler
26.1 確認 Metrics Server 是否就緒
26.2 HPA 設定檔範例
26.3 實戰演練
第27章 Kubernetes AutoScaling — Vertical Pod AutoScaler
27.1 確認 Metrics Server 是否就緒
27.2 VPA 元件以及運作流程
27.3 安裝 Custom Resource — VPA
27.4 實戰演練
27.5 移除 VPA 模組
第28章 Kubernetes AutoScaling — Custom Pod AutoScaler
28.1 安裝 KEDA
28.2 KEDA(Kubernetes Event-Driven Autoscaling)
28.3 KEDA CRD — ScaledObject 和 ScaledJob
28.4 KEDA 觸發器
28.5 KEDA 中的防抖動機制 Debouncing
28.6 超越 Kubernetes HPA 的彈性伸縮
28.7 激活階段與縮放階段
Part 9 朕不給的,你不能搶
第29章 Kubernetes Security — 使用 Context 進行用戶管理
29.1 Kubernetes 的認證與授權
29.2 Kubernetes Context 是什麼?
29.3 用戶管理情境
29.4 實戰演練
29.5 所以說那個 Context 中的 Cluster 跟 User 呢?
第30章 Kubernetes Security — RBAC Authorization 授權管理
30.1 深入了解 Kubernetes API Server
30.2 實戰使用 RBAC(Role-Base Access Control)
30.3 Role vs ClusterRole
30.4 RoleBinding vs ClusterRoleBinding
立即查看
從異世界歸來發現只剩自己不會Kubernetes:初心者進入雲端世界的實戰攻略!(iThome鐵人賽系列書)【軟精裝】 (1版)
類似書籍推薦給您
內容簡介
覺得 Kubernetes 門檻太高?那你找對地方了!
從敬而遠之到心領神會!
九大核心主題,由淺入深逐一擊破
本書內容改編自第 14 屆 iThome 鐵人賽 DevOps 組的優選系列文章《從異世界歸來發現只剩自己不會 Kubernetes》。此書是一本綜合性的指南,針對想要探索認識 Kubernetes 的技術人員而生。無論是初涉此領域的新手,還是已有深厚經驗的資深工程師,本書都能提供你所需的知識和技能。
本書致力於使讀者可以由淺入深,全面了解 Kubernetes 的各個面向。從基礎的概念開始,逐步深入至進階技術和策略,每一章都根據主題進行有組織的切分,以確保讀者不僅能建立堅固的基礎,還能進一步掌握要點。
在這本書中,作者展示自己在業界的實戰經驗,並精心策劃九大核心主題,引領讀者從 Kubernetes 的初步探索邁向深入的實戰應用。不僅涵蓋初學者的基礎知識,更延伸至實務部署策略,進階的權限管理,以及資源分配的技巧。每一頁都充滿了真實世界的寶貴經驗,等待著你來發掘和學習。
四大重點
▶ 漸進式學習
艱澀觀念都能迎刃而解
▶ 主題式攻略
專題深度剖析,策略全面掌握
▶ 提供實作範例
大量實作範例,讓你寫得順看得懂
▶ 過來人甘苦談
記錄從學廢到學會的心路歷程
目標讀者
● 想要快速掌握 Kubernetes 概念和技巧的初學者。
● 已經有 Docker 或是微服務基礎的後端工程師。
● 想要在 Kubernetes 部署和管理應用程式的 DevOps 工程師。
● 想要了解 Kubernetes 原理和架構的軟體工程師。
專業推薦
「這本書不僅提供了豐富的範例程式碼和操作指南,讓身為工程師的我們能實際操作來加深認知;更重要的是,它教會我如何從後端工程師的角度去思考和應用 Kubernetes。從容器的生命週期、資源管理到部署管理,每一章都與我們的日常開發工作息息相關。」──── 雷N │ 後端工程師 / iThome 鐵人賽戰友
目錄
Part 1 萬丈高樓平地起,開始爬吧!
第1章 Kubernetes 是什麼?
1.1 網路部署的演變
1.2 Kubernetes 的定位
第2章 Kubernetes 的元件
2.1 Kubernetes 設計原理
2.2 Kubernetes 叢集中包含哪些元件?
2.3 Kubernetes Control Plane
Part 2 一定要安裝些什麼的吧!
第3章 安裝 Kubernetes(Docker Desktop)
3.1 下載 Docker Desktop(macOS)
3.2 開啟 Docker Desktop 內建的 Kubernetes
3.3 查看 Kubernetes 狀態
第4章 安裝 Kubernetes Dashboard GUI
4.1 Kubernetes Dashboard 是什麼?
4.2 設定 Kubernetes Dashboard
Part 3 老闆總說先可以 Run 就好…
第5章 Kubernetes — 實戰做一個 Pod
5.1 建立容器(Container)
5.2 建立 Kubernetes 設定檔
5.3 在 Kubernetes 中建立 Pod
5.4 使用 kubectl port-forward 與 Local 端接軌
第6章 Kubernetes — 實戰做一個 Service
6.1 Service 是什麼?
6.2 那什麼是邏輯上的一群 Pod?
第7章 Kubernetes — 實戰做一個 Deployment
7.1 使用案例
7.2 實戰演練
7.3 更新 Deployment 實現水平擴展
7.4 使用 Rollout 查看歷史版本並回滾
第8章 Kubernetes — 實戰做一個 StatefulSet
8.1 StatefulSet 是什麼?
8.2 StatefulSet 中的有序命名及網路 ID
8.3 StatefulSet 中的穩定儲存
8.4 StatefulSet 中的 Headless Services
8.6 StatefulSet 中的部署及擴縮保證
8.7 StatefulSet 中的更新策略
8.8 實戰演練
8.9 刪除 StatefulSet
Part 4 我就知道事情沒有那麼單純
第9章 Kubernetes — Kustomize 是什麼?
9.1 Kustomize 在 Kubernetes 中的定位
9.2 Kustomize 介紹
9.3 Kustomize 安裝
9.4 基本指令
9.5 實戰演練
9.6 Kustomize 進階功能
第10章 Kubernetes — 路由守護神 Ingress
10.1 Ingress 是什麼?
10.2 Ingress 的作用
10.3 Ingress 安裝
10.4 實戰演練
第11章 Kubernetes — Pod 的生命週期
11.1 Pod 的生命週期
11.2 Pod Phase(階段)
11.3 重啟策略(Restart Policy)
11.4 初始化容器(Init Container)
11.5 生命週期鉤子(Lifecircle Hook)
11.6 健康檢查(Health Check)
第12章 Kubernetes Kubectl 指令與它的快樂夥伴
12.1 Kubectl 介紹
12.2 Kubectl 安裝設定
12.3 Kubectl 語法
12.4 Kubectl 常用指令
12.5 善加利用 Kubectl Help
Part 5 這些花式部署你學會了嗎?
第13章 Kubernetes Deployment Strategies — 常見的部署策略
13.1 重建部署(Recreate)
13.2 滾動部署(Rolling-Update)
13.3 藍綠部署(Blue / Green)
13.4 金絲雀部署(Canary)
13.5 A / B 測試(A / B Testing)
13.4 影子部署(Shadow)
第14章 Kubernetes Deployment Strategies — 重建部署與滾動部署
14.1 重建部署(Recreate)
14.2 滾動部署(Rolling-Update)
第15章 Kubernetes Deployment Strategies — 金絲雀部署
15.1 Nginx Ingress 金絲雀部署功能介紹
15.2 金絲雀部署(Canary Deployment)
15.3 使用金絲雀部署更新服務
15.4 實戰演練
Part 6 相較之下 Docker Volume 好像遜色了點?
第16章 Kubernetes Volume — Volume 是什麼?
16.1 那 Kubernetes 的 Volume 是什麼?
16.2 Volume 類型
16.3 不同 Volume 的生命週期
第17章 Kubernetes Volume — EmptyDir
17.1 EmptyDir Volume
17.2 實戰演練
第18章 Kubernetes Volume — ConfigMap
18.1 ConfigMap 的特性
18.2 建立 ConfigMap
18.3 實戰演練
第19章 Kubernetes Volume — Secret
19.1 什麼是 Secret?
19.2 建立 Secret
19.3 實際應用 Secret
19.4 聊聊關於 Secret 看起來並不那麼安全這件事
第20章 Kubernetes Volume — PV & PVC
20.1 Storage Class
20.2 Persistent Volumes(PV)
20.3 Persistent Volume Claims(PVC)
20.4 實戰演練
Part 7 資源監控一定是全新的世界
第21章 Kubernetes Resources — Resource
21.1 Resource 是什麼?
21.2 Request 和 Limit 關係
21.3 Pod 的服務品質(Quality of Service,QoS)
21.4 Resource 設定的排列組合
21.5 實戰心得分享
第22章 Kubernetes Resources — Namespace
22.1 Namespace 是什麼以及何時使用?
22.2 實戰演練
22.3 一些 Namespace 的特性
第23章 Kubernetes Resources — Resource Management
23.1 什麼是 LimitRange ?
23.2 什麼是 ResourceQuota?
23.3 實戰演練 — LimitRange
23.4 實戰演練 — ResourceQuota
第24章 Kubernetes Resources — Metrics Server
24.1 Metrics Server 是什麼?
24.2 Metrics Server 原理
24.3 安裝 Metrics Server
24.4 顯示資源使用訊息
Part 8 身為 Server 守護者的你是不是也沒辦法睡個好覺
第25章 Kubernetes AutoScaling — AutoScaling 是什麼?
25.1 Autoscaler 的種類
25.2 Cluster Autoscaler(CA)
25.3 Horizontal Pod Autoscaler(HPA)
25.4 Vertical Pod Autoscaler(VPA)
25.5 Multidimensional Pod Autoscaler(MPA)
25.6 Custom Pod Autosacler
第26章 Kubernetes AutoScaling — Horizontal Pod AutoScaler
26.1 確認 Metrics Server 是否就緒
26.2 HPA 設定檔範例
26.3 實戰演練
第27章 Kubernetes AutoScaling — Vertical Pod AutoScaler
27.1 確認 Metrics Server 是否就緒
27.2 VPA 元件以及運作流程
27.3 安裝 Custom Resource — VPA
27.4 實戰演練
27.5 移除 VPA 模組
第28章 Kubernetes AutoScaling — Custom Pod AutoScaler
28.1 安裝 KEDA
28.2 KEDA(Kubernetes Event-Driven Autoscaling)
28.3 KEDA CRD — ScaledObject 和 ScaledJob
28.4 KEDA 觸發器
28.5 KEDA 中的防抖動機制 Debouncing
28.6 超越 Kubernetes HPA 的彈性伸縮
28.7 激活階段與縮放階段
Part 9 朕不給的,你不能搶
第29章 Kubernetes Security — 使用 Context 進行用戶管理
29.1 Kubernetes 的認證與授權
29.2 Kubernetes Context 是什麼?
29.3 用戶管理情境
29.4 實戰演練
29.5 所以說那個 Context 中的 Cluster 跟 User 呢?
第30章 Kubernetes Security — RBAC Authorization 授權管理
30.1 深入了解 Kubernetes API Server
30.2 實戰使用 RBAC(Role-Base Access Control)
30.3 Role vs ClusterRole
30.4 RoleBinding vs ClusterRoleBinding
立即查看
深入剖析Kubernetes (1版)
類似書籍推薦給您
內容簡介
一本全面且深入的Kubernetes技術指南
本書深入剖析Kubernetes的本質、核心原理和設計理念。從開發者和使用者的真實邏輯出發,逐層剖析Kubernetes的核心特性,全面涵蓋集群搭建、容器編排、網路、資源管理等核心內容,以生動有趣的文字解說Kubernetes的設計原則和容器編排理念,是一本全面且深入的Kubernetes技術指南。適合軟體開發者、架構師、運維工程師以及具備一定伺服器端基礎知識且對容器感興趣的網路相關從業人員閱讀。
帶您掌握容器技術的精髓
Kubernetes已成為容器領域當之無愧的事實標準。然而,從過去以實體機和虛擬機為主體的開發運維環境朝向以容器為核心的基礎設施的轉變過程,牽涉到對網絡、儲存、調度、作業系統、分散式原理等各方面的容器化理解和改造,很多人在面對容器技術中的種種難題時,面臨知識儲備不足與知識不成體系的難題。本書即為解決這些難題而作,透過深入剖析Kubernetes的本質、核心原理和設計理論,幫你打通學習容器技術的「任督二脈」,讓你真正掌握容器技術的精髓。
來自讀者的讚譽
"本書幫你找到一個個橫切面,從使用場景的技術切入點層層剖析,通盤讀下來,感覺可能是近幾年入門Kubernetes最好的一本書了。"
" 深入淺出,除了容器和K8s的基礎內容外,K8s的擴展實踐講解很好,儲存和網路的內容也讓我獲益匪淺,推薦! "
立即查看