Go 微服務架構實戰 - 中篇 1- k8s 架構介紹

Go 微服務架構實戰

本系列文章主要是針對雲原生領域微服務架構的實戰,包括網關,k8s,etcd 以及 grpc 等相關技術的應用,同時也會把服務發現與註冊,熔斷,降級,限流以及分佈式鎖等加入到系列當中作爲補充,課程的最後也會安排分佈式鏈路追蹤框架的學習,監控平臺的搭建以及灰度發佈等技術服務,所以總體來講,課程範圍涉及技術領域較廣,知識面比較寬,大家下來各取所需儘量做到熟悉和應用,之後有時間了在研究下源碼,樂哉!

上篇已經完成,大家可以看下,我這裏貼出來了,中篇從這周開始陸續爲大家產出,因爲太耗費精力,所以還望大家多多支持!

  1. k8s 架構介紹 ===========

  2. k8s 是什麼


k8s 就是 k 到 s 之間的距離是 8,所以叫做 k8s。

廢話:原名是 Kubernetes,簡稱 k8s,k 到 s 中間隔 8 個字符,爲了方便記憶和書寫就省去了這八個字符,用數字 8 代替。

k8s 是 Google 公司開源的一個容器編排與調度管理框架,該項目最初是 Google 內部面向容器的集羣管理系統,而現在是由 CNCF 託管的開源平臺,由 Google、AWS、Microsoft、IBM、Intel、Cisco 和 Red Hat 等主要參與者支持,其目標是通過創建一組新的通用容器技術來推進雲原生技術和服務的開發。作爲領先的容器編排引擎,k8s 提供了一個抽象層,使其可以在物理或虛擬環境中部署容器應用程序,提供以容器爲中心的基礎架構。

這是官方說法,說白了就是你之前 docker 起的容器以及對這些容器的管理和調度比較複雜,你使用 k8s 之後,容器的創建,調度,滾動升級等都變得異常簡單,所以各個大廠小廠都在擁抱這種變化,對現有的服務進行 k8s 升級改造。

  1. k8s 能解決什麼問題

對於大多數用戶來說,k8s 的主要作用是在一個給定的集羣上把一個應用運行起來。更進一步說,k8s 需要提供的是網關、水平拓展、監控、備份、災難恢復等一系列運維能力。

  1. k8s 架構圖

k8s 系統架構遵循客戶端 / 服務端(C/S)架構,系統架構分爲 Master 和 Node 兩部分,Master 作爲服務端,Node 作爲客戶端。k8s 系統具有多個 Master 服務端,可以實現高可用。在默認的情況下,一個 Master 服務端即可完成所有工作。


  1. 主要負責
  1. 包含組件

  1. 主要負責
  1. 包含組件

除了核心組件,還有一些推薦的組件:

  1. kube-dns 負責爲整個集羣提供 DNS 服務

  2. Ingress Controller 爲服務提供外網入口

  3. Heapster 提供資源監控

  4. Flannel(提供集羣間網絡)

  5. Dashboard 提供 GUIFederation 提供跨可用區的集羣

  6. Fluentd-elasticsearch 提供集羣日誌採集,存儲與查詢

說完組件之後,接下來開始 k8s 中各個資源對象的介紹。

還有其它很多對象就不逐一介紹了,大家下去重點了解哈。

在我們瞭解了上述架構,組件以及資源對象之後,中篇後期文章所有基於這些對象和組件編排任務的流程就會清晰很多,我們會在上篇創建的基於 grpc+etcd+gateway 的項目上進行 k8s 任務編排,把裸機部署改造爲容器化部署

最後放一張 docker 相關命令圖,因爲 k8s 管理的容器目前都是基於 docker 容器運行時環境,所有 docker 相關的你就得了解它。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/HYnSs3ElTvef743JX-jXzA