1. 程式人生 > >雲原生生態週報 Vol. 10 | 資料庫能否執行在 K8s 當中?

雲原生生態週報 Vol. 10 | 資料庫能否執行在 K8s 當中?

業界要聞

  1. IBM 以總價 340 億美元完成里程碑意義的紅帽收購:這是這家擁有107年曆史的公司史上規模最大的一筆收購,該收購金額在整個科技行業的併購史上也能排到前三。在當天公佈的宣告中,IBM與Red Hat聯合表示,雙方合作將重點推進“混合雲”業務,即讓公司客戶自身伺服器上的資料與雲服務進行對接,這一方案兼顧了傳統企業IT服務解決方案以及新興的基於雲服務的解決方案,是最現實可行的一種路徑選擇。
  2. Garnter 釋出 2018 年全球雲端計算市場資料:據Gartner統計,2018年全球雲端計算市場向頭部進一步集中,3A(亞馬遜AWS、微軟Azure、阿里雲)佔據七成市場份額。亞馬遜依舊領跑,但市場份額已經見頂回撤。微軟和阿里雲均有市場份額增長,其中阿里雲保持3A軍團中最快增長,市場份額增長近一倍。而在另外Gartner一份《資料庫的未來就是雲》報告中,3A同樣位列前三。阿里雲的市場份額在 DBMS 供應商中排名第三,同比增長 116%。目前阿里云云原生產品家族已經納入了資料庫核心產品,阿里雲 Kubernetes 服務 (ACK)通過與阿里雲旗艦資料庫產品 PolarDB 深度結合,正在幫助使用者同時實現應用層面的快速彈性和資料層面無限擴容。

上游重要進展

Kubernetes 專案

1 Kubernetes 設計增強(KEP):
(a) 如何開發 K8s 自定義排程器外掛?上週,上游 Scheduler Framework 外掛開發的第一個指導性文件釋出, 其中列出了幾種開發排程外掛方式的利弊:

  • 直接 Vendor 上游 Scheduler 程式碼庫,然後基於其中的 Framework 庫開發外掛 (推薦)
  • 通過 Golang Plugin 機制: 這個方法對 Golang 版本依賴嚴重,跨版本無法使用;對啟動和部署也帶來很多挑戰;
  • 通過 hashicorp/go-plugin 機制: 使用方式不友好,複雜;效能較前兩種方案差

(b) Sidecar KEP(Pod 中允許宣告某些容器為 Sidecar,從而更精細化的管理這些容器的生命週期)詳細解讀:

  • Pod 內容器啟動順序: Init containers start -> Init containers finish -> Sidecars start -> Sidecars become ready -> Containers start
  • Pod 內容器刪除順序:Containers sent SIGTERM -> Once all Containers have exited: Sidecars sent SIGTERM

2 Kubernetes 重要變更:

(a) Initializer 被廢棄:Completely remove initializers

  • Initializer 機制在 1.13 deprecate, 將在 1.16中正式移除。以後在 Pod 注入容器,都推薦使用 Admission Hook 方式

Knative 專案

  1. 非同步請求demo :演示中使用header來標明是非同步請求,在queue-proxy裡面去把請求狀態和結果寫入資料庫。查詢狀態通過queue-proxy查詢。初步看社群對於該功能還是各有看法,例如是否可以通過eventing來實現。
  2. Knative Eventing CLI支援: 通過 Kevent 命令支援 importer, channel, broker, 和 sequence 命令組。每個命令組支援 CURD例如:

    Updating: kevent [resource] update [name] [same flags as create], 
    Deletion: kevent [resource] delete [name] 
    List all resources: kevent [resource] get
    Describe details of a resource: kevent [resource] describe [name]
  3. 在 Eventing 中定義 High Level 的物件:這些組合物件包括事件處理Pipeline的Sequence物件, 並行處理物件Parallel以及內建函式處理CELFilter等
  4. 整合事件指標到 dashboard 儀表盤:參考Knative Sering 可以通過在Broker 服務上設定註釋 prometheus.io/scrape: "true",實現通過Prometheus收集指標資訊。

Envoy 專案

  1. 新增cluster配置filter:這個Feature是用來給Envoy提供在cluster中配置filter,這使得Envoy發起upstream的連結的時候,也可以走filter,而不僅僅是在downstream上,這個Feature最初來自於filters: install network filters on upstream connections ,目的是為了支援http到AMQP協議的轉換。這個Feature的實現很有特點,僅僅使用了非常少的程式碼卻支援了這個比較重要的feature,得到了Envoy作者Matt的大力讚賞。
  2. 自定義實現access log:這個Feature的目的是為了可以自定義實現access log filter,在此之前access log的實現是沒辦法自定義的。

開源專案推薦

  1. Kiali (https://www.kiali.io): Istio 視覺化工具 kiali v1.0正式release:這個專案可以視覺化服務網格拓撲、斷路器或請求率等功能,提供開箱即用的分散式跟蹤功能。

本週閱讀推薦

你到底應不應該把資料庫執行在 Kubernetes 當中?這個多年懸而未決的話題,如今終於有了一個明確的結論。這不, Kubernetes 儲存領域的工程師已經為你詳細的畫出了這個命題的決策樹:

開源中國訪談 CNCF TOC 李響:雲原生未來可期在KubeCon SH 2019上,開源中國記者採訪了 CNCF TOC 成員、阿里雲容器平臺資深技術專家 Xiang Li,談及 CNCF 的最新動態和發展動向,走進阿里巴巴規模的雲原生,進一步探討雲原生的普及和發展問題。李響表示:“阿里雲致力於大規模實踐雲原生;多場景落地,多維度推動技術及社群演進。我們相信:If cloud native works for Alibaba, Cloud native works for everyone”


原文連結
本文為雲棲社群原創內容,未經