★★★《AWS自學聖經》作者Sam T.全新作★★★
★★★圖解教學★★★
✦什麼是K8S?
K8S全名為Kubernetes,是一套容器化管理框架,常與Docker等技術一起運用。近年來隨著容器化技術的成熟,各大雲端商紛紛提供K8S平台,比如說AWS EKS、GCP GKE等,來應付高漲的容器部署需求,可見K8S已成為全球企業最愛技術之一!
✦你將能學習到
▌Docker 10大常用指令,入門容器化領域
▌K8S 10大核心模板,精通運算、網路、儲存等容器資源部署
▌AWS EKS雲端部署,成為企業界最愛的「雲端+容器」人才
本書特色
本書以清晰易懂的圖解方式,帶領讀者由淺入深的開始學習。同時精選了Docker 10大常用指令及軟體業界中最為實用的K8S 10大核心模板,讓讀者用最短的時間學習到最有用的內容。
透過本書,讀者將能確實掌握Docker、Minikube、以及Kubernetes各種核心模板的撰寫與部署,並在AWS雲端上進行完整部署,最終將所學運用在實務工作上。
作者
Sam T.
✦Hahow、HiSKIO、Udemy 等知名平台現任講師,累積學員超過 10,000+
✦「AWS自學聖經」暢銷作者,通過AWS專家級認證,擁有多年業界雲端部署經驗。
✦「用圖片高效學程式」創辦人,擅長將複雜的概念,轉換為簡單易懂的圖解動畫。
目錄
1 Kubernetes 介紹
▌為何要學Kubernetes?【職缺趨勢分析】
Kubernetes 的可愛別稱:K8S
Kubernetes 源自於希臘文:掌舵者
Kubernetes 10 大核心模板
Kubernetes 的未來:雲端部署時代到臨
▌【圖解觀念】Kubernetes (K8S) 是什麼?【3大階段】
第一階段:Docker/Podman 部署包建立
第二階段:Kubernetes (K8S) 部署計畫撰寫
第三階段:Local vs AWS/GCP/Azure 資源部署
▌【圖解觀念】Kubernetes (K8S) 解決了什麼問題?【4大功用】
功用一:動態的資源增減
功用二:Self-Healing 自我治療
功用三:Zero Downtime Rolling Update
功用四:Zero Down Time Rollback
2 Docker 容器化技術入門
▌【圖解觀念】Docker 解決了什麼問題?【3大功能】
功能一:Docker 簡化部署流程
功能二:Docker 共用部署包
功能三:Docker & DockerHub 跨平台部署
▌【圖解觀念】Docker 核心架構:Dockerfile | Image | Container | Network | Volume
Dockerfile & Docker Image 架構圖解
Docker Container 架構圖解
Docker Network 架構圖解
Docker Engine 與 Host 架構圖解
Docker Volume 架構圖解
▌Docker Linux 共同環境建立
AWS EC2 頁面登入
AWS EC2 Instance 建立
AWS EC2 連線測試
▌Docker 安裝
Docker 安裝
Docker 權限設定
Docker 功能驗證
▌Docker 10 大常用指令快速上手
指令1:docker images
指令2:docker pull
指令3:docker run
指令4:docker exec
指令5:docker container ls
指令6:docker container stop
指令7:docker container rm
指令8:docker build
指令9:docker login
指令10:docker push
▌Docker Volume 永久資料保存
Docker Voulme 創建
Docker Voulme 功能驗證
Docker Voulme 清除
▌【圖解觀念】Docker 相較於 Kubernetes (K8S),少了什麼?【3面相比較】
Docker / K8S:定位面相比較
Docker / K8S:階層關係比較
Docker / K8S:適用對象比較
3 Kubernetes 十大核心模板
▌【圖解觀念】Kubernetes (K8S) 基底結構:Master Node & Worker Node
K8S Cluster 概念
K8S Master Node 概念
K8S Master Replicate Node 概念
K8S Worker Node 概念
▌【圖解觀念】什麼是 Kubernetes (K8S) Pod?
K8S Pod 是什麼?
Docker Image 從哪裡來?
▌【圖解觀念】Kubernetes (K8S) Pod 與 Worker Node 的關係
資源歸屬的概念
誰屬於 K8S 資源?
又誰屬於 Resource Provider 資源?
▌Minikube I:本地 Kubernetes (K8S) 的建立
Minikube 安裝
Kubectl 快捷鍵建立
K8S Node 運算節點查看
K8S 第一個專案部署
K8S Pod 與運算節點的關聯查看
K8S Service 網路資源建立
Minikube 資源清理
▌Minikube II:Dockerhub 整合運用
Docker 服務啟動
K8S Cluster 建立
Dockerhub Remote Image 直接運用 Part 1
Dockerhub Remote Image 直接運用 Part 2
Minikube 資源清理
▌【圖解觀念】Kubernetes (K8S) 運算架構:Deployments - ReplicaSet - Pods
K8S Pod 使用時機
K8S Pod 使用限制
K8S ReplicaSet 使用時機
K8S ReplicaSet 使用限制
K8S Deployment 使用時機
▌【模板1】Kubernetes (K8S) 運算部署 I:Pods
Minikube 服務啟動
K8S Pod 模板撰寫
K8S Pod 資源部署
K8S Pod 資源刪除
▌【模板2】Kubernetes (K8S) 運算部署 II:ReplicaSets
K8S ReplicaSet 模板撰寫
K8S ReplicaSet 資源部署
K8S ReplicaSet 運用示範:Pod 刪除
K8S ReplicaSet 資源清理
▌【模板3】Kubernetes (K8S) 運算部署 III:Deployments
K8S Deployment 模板撰寫
K8S Deployment 資源部署
K8S Deployment 運用示範:Pod 刪除
K8S Deployment 資源清理
▌【圖解觀念】Kubernetes (K8S) 網路架構:Service (L4)【3大種類】
K8S Service:Cluster IP
K8S Service:Node Port
K8S Service:Load Balancer
K8S Service 三大種類比較
▌【模板4】Kubernetes (K8S) L4 網路管理 I:Services【ClusterIP 模式】
前置環境建立
K8S Service 模板撰寫
K8S Service 資源部署
K8S Service 運用示範
▌【模板4】Kubernetes (K8S) L4 網路管理 II:Services【NodePort 模式】
K8S Service 模板撰寫
K8S Service 資源部署
K8S Service 運用示範
▌【模板4】Kubernetes (K8S) L4 網路管理 III:Services【LoadBalancer 模式】
K8S Service 模板撰寫
K8S Service 資源部署
K8S Service 運用示範
K8S Service 資源清理
▌【圖解觀念】Kubernetes (K8S) Probe 監控架構【3大機制】
K8S Startup Probe 監控機制
K8S Liveness Probe 監控機制
K8S Readiness Probe 監控機制
3 大 Probe 情境模擬與對應方式
3 大 Probe 監控機制比較
▌【模板5】Kubernetes (K8S) 監控部署 I【3大種類】
K8S Startup Probe 監控資源部署
K8S Liveness Probe 監控資源部署
K8S Liveness Probe 運用示範:失敗情境模擬
K8S 監控資源清理
▌【模板5】Kubernetes (K8S) 監控部署 II:Readiness Probe 監控他人狀態
K8S Readiness Probe 監控資源部署
K8S Readiness Probe 運用示範:失敗情境模擬
K8S 監控資源清理
▌【模板6】Kubernetes (K8S) 運算部署 IV:Rolling Updates 無中斷進版
對照組環境建立
K8S Rolling Updates 模板撰寫
K8S Rolling Updates 資源部署
K8S Rolling Updates 運作機制分析
▌【模板6】Kubernetes (K8S) 運算部署 V:Roll Back 無中斷退版
K8S Roll Back 退版:機制觸發
K8S Roll Back 退版:業界使用經驗分享
K8S 資源清理
▌【圖解觀念】Kubernetes (K8S) 儲存架構:Persistent Volume
K8S Persistent Volume (PV) 介紹
K8S PV 靜態部署 - Persistent Volumes (PV) & Claim (PVC)
K8S PV 動態部署 - StorageClass (SC)
儲存資源的實際來源
▌【模板7】K8S 儲存靜態部署:Persistent Volumes (PV) & Claim (PVC)
K8S Persistent Volume (PV) 模板撰寫
K8S Persistent Volume Claim (PVC) 模板撰寫
K8S Pod 資源部署
K8S PV 與 PVC 生命週期的運用示範
K8S 資源清理
▌【模板7】K8S 儲存動態部署:StorageClass (SC)
K8S Persistent Volume (PV) 動態部署:Storage Class
K8S Deployment 運算資源部署
K8S Persistent Volume (PV) 動態部署運用示範
K8S 資源清理
▌【圖解觀念】Kubernetes (K8S) 資源架構:Namespace
K8S 資源分類的概念
K8S Namespace 實際運用:資源分類
K8S Namespace 實際運用:資源清理
▌【模板8】Kubernetes (K8S) 資源管理:Namespace
K8S Namespace 模板撰寫
K8S Namespace 資源部署
K8S Namespace 資源清理
▌【圖解觀念】Kubernetes (K8S) 進階網路架構:Ingress (L7)
K8S Ingress 使用時機
K8S Ingress 部署概念
K8S Ingress 部署模式:Default Backend
K8S Ingress 部署模式:Hostname 分流
K8S Ingress 部署模式:Path 分流
▌【模板9】Kubernetes (K8S) L7 進階網路管理 IV:Ingress【Default Backend】
Minikube Nginx Ingress Controller 啟動與使用
K8S Ingress 部署模式:Default Backend 模板撰寫
K8S Ingress 部署模式:Default Backend 資源部署
K8S Ingress 部署模式:Default Backend 使用示範
▌【模板9】Kubernetes (K8S) L7 進階網路管理 V:Ingress【Hostname Based】
前置環境部署
K8S Ingress 部署模式:Hostname 模板撰寫
K8S Ingress 部署模式:Hostname 資源部署
K8S Ingress 部署模式:Hostname 使用示範
▌【模板9】Kubernetes (K8S) L7 進階網路管理 VI:Ingress【Path Based】
K8S Ingress 部署模式:Path 模板撰寫
K8S Ingress 部署模式:Path 資源部署
K8S Ingress 部署模式:Path 使用示範
K8S 資源清理
▌【圖解觀念】Kubernetes (K8S) 進階運算架構:Horizontal Pod Autoscaling (HPA)
K8S Horizontal Pod Autoscaling (HPA) 使用時機
K8S Horizontal Pod Autoscaling (HPA) 必備要件:Metrics Server
K8S Horizontal Pod Autoscaling (HPA) 進階必備要件:Prometheus Server
▌【模板 10】Kubernetes (K8S) 進階運算部署:Horizontal Pod Autoscaling (HPA)
前置環境部署
K8S Horizontal Pod Autoscaling (HPA) 必備要件:Metrics Server 建立
K8S Horizontal Pod Autoscaling (HPA) 資源部署
K8S Horizontal Pod Autoscaling (HPA) 監控分析
K8S Horizontal Pod Autoscaling (HPA) 資源清理
▌【圖解觀念】Minikube 架構統整 & 總複習
Minikube 圖解總架構
K8S PV 與 PVC 圖解總架構
K8S Ingress 圖解總架構
K8S HPA 圖解總架構
▌Minikube 資源總清理
Minikube 資源總清理
4 雲端上的 K8S
▌AWS Admin EC2 伺服器建立
AWS VPC 及 Security Groups 建立
AWS EC2 IAM User 建立
AWS EC2 Instance 建立
連線測試
▌AWS EKS 必要指令安裝
kubectl 指令包安裝
eksctl 指令包安裝
helm 指令包安裝
git 指令安裝
AWS CLI 指令安裝
AWS CLI 權限設定
環境參數設定
▌AWS EKS Fargate Cluster 架構介紹
AWS EKS Cluster 創建
AWS EKS Cluster 部署位置分析
AWS EKS Fargate Profile 功能介紹
▌AWS EKS Fargate Cluster 建立
AWS EKS Cluster 創建
AWS EKS OIDC 建立
▌AWS EKS 永久資料儲存 (PV, PVC) 架構介紹
AWS EFS 儲存資源建立
AWS EFS 與AWS EKS 的結合使用
▌AWS EKS 永久資料儲存 (PV, PVC) 建立
AWS EFS Security Group 建立
AWS EFS File system 建立
Kubernetes CSI 資源建立
Kubernetes PV 及 PVC 資源建立
Kubernetes Deployment 資源建立
AWS EFS 功能測試
▌AWS EKS L7 網路分流管理 (Ingress) 架構介紹
AWS EKS Load Balancer Ingress Controller 權限設定
AWS EKS Load Balancer Ingress Controller 建立
Kubernetes Ingress 建立
▌AWS EKS L7 網路分流管理 (Ingress) 建立
AWS EKS Load Balancer Ingress Controller 權限設定
AWS EKS Load Balancer Ingress Controller 建立
Multistage 專案部署
Kubernetes Ingress 建立
▌AWS EKS 自動化|運算部署 (HPA) 架構介紹
Kubernetes HPA 使用架構
Kubernetes Pod 運算節點分配
▌AWS EKS 自動化|運算部署 (HPA) 建立
監控環境建立
大量請求的模擬環境建立
Kubernetes HPA 監測狀態分析:動態新增運算資源
少量請求的模擬環境建立
Kubernetes HPA 監測狀態分析:動態減少運算資源
▌AWS EKS 資源清理
AWS EKS Cluster 資源刪除
AWS Admin EC2 資源刪除
老師的話 & What's Next?
▌老師的話
▌「用圖片高效學程式」教學品牌
序/導讀
序
大容器化時代來臨,你跟上了嗎?
Kubernetes數年來霸佔全球企業喜愛的容器化管理技術,已成為現代軟體人必學技術之一。此外,雲端時代的到臨,也震盪了傳統Kubernetes 的部署模式,促使更多企業選擇透過AWS、GCP、Azure等大型雲端平台,佈置更加全面的Kubernetes容器管理平台。為了保持軟體人的技術競爭力,本書將專注於最核心的10大K8S部署模板,透過圖解方式帶領大家快速入門K8S,那就跟著我透過本書一起成為Kubernetes雲端專家吧!