Course Code: kubernetesone
Duration: 21 hours
Course Outline:

課程介紹:

進入到2020年,雲計算、虛擬化、容器微服務PaaS技術發展和運用已如日中天,新興互聯網企業、通信運營服務商、金融保險雲服務等行業通過應用以上技術,給現有的IT基礎設施等帶來了巨大的商業機遇,雲計算的發展也經曆了一系列的架構演化,從以虛擬機爲主體的“重量級”雲平台IaaS,發展到了以容器爲主體的“輕量級”微服務雲平台PaaS,作爲“輕量級”微服務與容器雲平台的代表性技術:Docker容器虛擬化,以及對應的Docker容器集群管理平台和Kubernetes容器雲平台解決方案,已經成爲事實上的工業級標准,Kubernetes從誕生起就引起開源社區和工業界的關注。全球著名的IT企業紛紛選擇 Docker 與 Kubernetes 進行自身業務服務容器化與編排,無數中小型企業也開始落地 Kubernetes,正走在容器化的道路上。

       本課程首先將幫助學員系統地掌握K8s的架構設計和核心組件的工作原理,同時通過在課程中穿插安排動手實驗,爲學員帶來K8s日常的應用、部署、監控、日志等運維工作經驗和技巧,課程還將介紹業界目前主流的基于K8s的PaaS解決方案,如何設計運維大型K8s生産方案,內容包括網絡、存儲方案的選型,最終如何將傳統應用遷移到K8s平台也是本課程的重要目標之一。

Kubernetes容器平台從原理到生産案例實戰

時間

課程內容

12月9日

晚上

16:00-20:00(4小時)

DevOps & Cloud Native

  • DevOps概述
  • 傳統IT交付模式及問題
  • Cloud Native架構發展

Kubernetes介紹

  • Kubernetes簡介和發展曆程
  • Kubernetes架構
  • 主要組件介紹
  • 基本概念與術語
  • Kubernetes的容器資源調度、負載均衡、容災、服務注冊和動態擴容等功能組件的工作原理與應用
  • Kubernetes管理Docker容器集群的架構設計
  • Kubernetes的Pods,Replication Controller,Services,Labels,Proxy功能組件部署與配置
  • Kubernetes主節點上運行的組件配置,包括API Server、Scheduler、Controller-Manager的應用部署
  • Kubernetes Node節點上的兩個運行組件包括kubelet、Kube-Proxy的應用部署

自動化部署完整的 Kubernetes 集群(老師演示)

  • 實施前准備工作
  • 生産環境K8S平台規劃
  • 服務器硬件配置推薦
  • Etcd數據庫集群部署
  • 部署Master組件
  • 部署Node組件
  • 部署K8S容器集群網絡(Flannel)

12月28日上午

自動化部署完整的 Kubernetes 集群(學員操作)

  • 部署Web UI(Dashboard)
  • 部署K8S內部DNS服務(CoreDNS)
  • 一鍵部署部署K8S高可用集群

 kubectl 命令行管理工具

  • kubectl管理命令概要
  • kubectl工具管理集群應用
  • kubectl工具遠程連接K8S集群

資源編排(YAML)

  • YAML文件格式說明
  • YAML文件創建資源對象
  • YAML字段介紹

深入理解Pod對象

  • Pod介紹與容器分類
  • Pod存在的意義
  • Pod實現機制
  • Pod鏡像拉取策略
  • Pod資源限制
  • Pod重啓策略
  • Pod健康檢查
  • Pod調度約束
  • 故障排查

最常用的控制器 Deployment

  • Deployment功能及應用場景
  • 使用Deployment部署Java應用
  • 應用升級、回滾、彈性伸縮

12月28日下午

深入理解Service(統一入口訪問應用)

  • Service介紹與定義
  • Service存在的意義
  • Service三種類型
  • Service類型小結
  • 代理模式之Iptables工作原理
  • 代理模式之IPVS工作原理
  • Iptables與IPVS小結
  • 集群內部DNS服務(CoreDNS)

Ingress(對外暴露你的應用)

  • Ingress Controller部署(Nginx)
  • Ingress HTTP
  • Ingress HTTPS
  • Ingress Nginx工作原理

Volume(數據卷)

  • emptyDir(容器數據共享)
  • hostPath(訪問宿主機數據)
  • NFS(網絡存儲)

12月29日

上午

Kubernetes控制器(管理Pod)

  • Deployment(部署無狀態應用)
  • 無狀態與有狀態服務區別
  • 從Headless Service談起(部署有狀態應用)
  • StatefulSet(部署有狀態應用)
  • DaemonSet(部署守護進程)
  • Job與CronJob(離線業務)

Kubernetes調度詳解與應用場景

  • 調度流程
  • 調試策略
  • 預選與優選
  • Pod優先級與搶占
  • 調度策略應用場景
  • 調度策略場景實戰

Kubernetes 容器持久化存儲

  • PV與PVC的關系
  • PV 靜態供給及應用案例
  • PV 動態供給(StorageClass)
  • PV 動態供給應用案例
  • StatefulSet對存儲狀態管理機制

12月29日

下午

Kubernetes配置管理

  • Secret(機密存儲)
  • ConfigMap(配置文件存儲)

Kubernetes安全機制

  • K8S安全框架,API認證
  • RBAC核心概念
  • RBAC授權普通用戶對命名空間訪問權限
  • RBAC授權ServiceAccount對命名空間訪問權限

Kubernetes包管理工具Helm

  • Helm簡介
  • 管理應用生命周期
  • 模板編寫與最佳實踐
  • 使用Helm部署應用實戰

Kubernetes/K8s部署Spring Cloud微服務電商項目

  • 傳統部署方式與K8S部署方式區別
  • 項目遷移到K8S平台的流程
  • Spring Cloud微服務電商項目概述
  • 在K8S中部署Spring Cloud微服務項目

12月30日

晚上

16:00-19:00(3小時)

Kubernetes日志處理

  • Kubernetes日志處理工作原理
  • 使用EFK進行日志收集方案
  • 部署EFK收集Kubernetes日志實戰演練

全方位監控 Kubernetes

  • K8S監控方案
  • K8S監控指標及實現思路
  • Prometheus+Grafana 全方位監控系統
  • 在K8S中部署Prometheus
  • 在K8S中部署Grafana
  • Grafana可視化展示K8S集群性能指標