一、關於這個系列
自從去年(2018年)底離開工作了3年的M公司加入X公司之后,開始了ASP.NET Core的實踐,包括微服務架構與容器化等等。我們的實踐是漸進的,當我們的微服務數量到了一定值時,發現運維工作量已將增加了很多,因此容器編排引擎的需求也隨之產生(雖然我們一直都知道K8S的必要性)。同時,在張隊發的《.NET雲原生采用情況調查》中已經表明,容器編排和自動化領域Kubernetes已經占據了主體地位,學習Kubernetes刻不容緩!
所以,我將K8S的學習放到了今年的學習列表中,並總結了一些學習筆記和實踐總結的文章並匯總在這里,希望對各位園友有幫助!
二、重點內容索引
2.1 Docker基礎
學習K8S之前需要了解一點Docker基礎,如果沒有Docker基礎請先補補課:
⑥ Docker容器監控工具與方案:
⑴ Docker自帶監控子命令 & 開源監控工具Weave Scope
⑦ Docker日志管理工具與方案:
⑴ Docker logs & logging driver
2.2 Kubernetes初探
如果你想在Windows開發機上快速體驗一把K8S,那么可以借助Docker for Windows來快速體驗一下:
① ASP.NET Core on K8S學習初探:單節點環境搭建
② ASP.NET Core on K8S學習初探:基本概念快速一覽
③ ASP.NET Core on K8S學習初探:部署WebAPI到K8S
如果你嫌在Linux上搭建環境麻煩,那么可以借助K8S在線實驗室玩一下快速的交互實驗體驗一下:
● Hello Kubernetes - 快速交互實驗10分鍾把玩手冊
2.3 Kubernetes深入
想要深入學習K8S,必須在Linux下搭建一個K8S集群,嘗試學習和實踐各個核心組件:
⑴ ASP.NET Core on K8S深入學習(1)K8S基礎知識與集群搭建
⑵ ASP.NET Core on K8S深入學習(2)部署過程解析與部署Dashboard
⑶ ASP.NET Core on K8S深入學習(3-1)Deployment
⑷ ASP.NET Core on K8S深入學習(3-2)DaemonSet與Job
⑸ ASP.NET Core on K8S深入學習(4)你必須知道的Service
⑸ ASP.NET Core on K8S深入學習(5)Rolling Update
⑹ ASP.NET Core on K8S深入學習(6)Health Check
⑺ ASP.NET Core on K8S深入學習(7)Dashboard知多少
⑻ ASP.NET Core on K8S深入學習(8)數據管理
⑼ ASP.NET Core on K8S深入學習(9)Secret & Configmap
⑽ ASP.NET Core on K8S深入學習(10)K8S包管理器Helm
⑾ ASP.NET Core on K8S深入學習(11)K8S網絡知多少
關於K8S網絡的基本原理與講解,強力推薦參考以下文章:
-
- Kubernetes網絡三部曲-Pod網絡(From 楊波老師)
- Kubernetes網絡三部曲-Service網絡(From 楊波老師)
- Kubernetes網絡三部曲-外部接入網絡(From 楊波老師)
⑿ ASP.NET Core on K8S深入學習(12)Nginx Ingress
⒀ ASP.NET Core on K8S深入學習(13)Ocelot API網關接入
⒁ ASP.NET Core on K8S深入學習(14)Nginx Ingress實現灰度發布
想要深度應用K8S,需要嘗試遷移現有各類應用&中間件至K8S:
⑴ 常見應用K8S部署之GFS
⑵ 常見應用K8S部署之Helm
⑶ 常見應用K8S部署之Redis集群
⑷ 常見應用K8S部署之RabbitMQ集群
⑸ 常見應用K8S部署之GitLab集群
⑹ 常見應用K8S部署之Jenkins
⑺ 常見應用K8S部署之Harbor
⑻ 常見應用K8S部署之Prometheus+Grafana
⑼ 常見應用K8S部署之EFK
2.4 K8S+Jenkins實現CI&CD
本部分會介紹在實際環境中持續集成和持續部署的使用,通過實現Jenkins流水線腳本自動發布應用到K8S集群中。
2.5 阿里雲容器服務(ACK)實踐
阿里雲容器服務 Kubernetes 版(簡稱 ACK)提供高性能可伸縮的容器應用管理能力,支持企業級 Kubernetes 容器化應用的全生命周期管理。容器服務 Kubernetes 版簡化集群的搭建和擴容等工作,整合阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳的 Kubernetes 容器化應用運行環境。
2.6 騰訊雲容器服務(TKE)實踐
騰訊雲容器服務(Tencent Kubernetes Engine ,簡稱TKE)基於原生 kubernetes 提供以容器為核心的、高度可擴展的高性能容器管理服務。騰訊雲容器服務完全兼容原生 kubernetes API ,擴展了騰訊雲的雲硬盤、負載均衡等 kubernetes 插件,為容器化的應用提供高效部署、資源調度、服務發現和動態伸縮等一系列完整功能,解決用戶開發、測試及運維過程的環境一致性問題,提高了大規模容器集群管理的便捷性,幫助用戶降低成本,提高效率。
2.7 Service Mesh初探之Istio
Istio作為K8S原生的Service Mesh,將業務應用的流量控制、服務發現、安全通信等強大的功能實現變得簡單明了,同時對業務應用和開發人員透明,還可以跨語言使用,大大降低了開發難度,帶給微服務開發領域一次顛覆性的變革!
三、參考資料
① CloudMan,《每天5分鍾玩轉Docker容器技術》、《每天5分鍾玩轉Kubernetes》
② 杜寬,《再也不踩坑的Kubernetes實戰指南》
③ 李振良,《Kubernetes入門與進階》(收費課程260RMB,但是質量較高)
④ 馬哥(馬永亮),《Kubernetes快速入門》
⑤ Jesse(劉騰飛),《ASP.NET Core on K8S快速入門》
⑥ 楊波,《SprintBoot與Kubernetes雲原生應用實踐》(極客時間上的課程,雖然是Java系,但仍然強烈推薦)
更多分享
本文首發於我的公眾號“恰童鞋騷年”,此公眾號會長期關注和分享.NET Core、微服務、雲原生、DevOps 及 企業數字化轉型等技術內容文章,還會與你分享個人生活成長的點滴及各類好書的讀書筆記,希望能對你有所幫助,一起成長!
寫在最后:學習與碼字不易,需要花費我很多的個人時間和精力,如果你能點個贊,可以更加激勵我的學習和分享,謝謝!