元原生生態週報 Vol.4:Twitter 從 Mesos 全面轉向 Kubernetes,Windows Terminal 帶來原生 Linux 開發體驗

前言

《雲原生生態週報》由阿里雲容器平臺聯合螞蟻金服共同發佈,每週一期。衆多一線社區專家與您一起“跟蹤動態,讀懂社區”,分享雲原生社區項目進展、活動發佈、精選博客等信息。以下是第一期雲原生生態週報的內容。

業界要聞

  1. Twitter 的基礎設施將從 Mesos 全面轉向 Kubernetes:不久前Twitter 在舊金山總部舉行了一次技術發佈會,Twitter 計算平臺(Twitter Computing Platform)產品與技術負責人正式宣佈此消息,同時解讀了Twitter決策原因、方案具體技術路徑。推薦你來閱讀這篇解讀文章來知曉一二。Twitter 拋棄 Mesos,全面轉向 Kubernetes
  2. Microsoft 在 Build 大會上通過開源開發者項目進一步拓展雲計算生態。其中最受關注的,包括了 Kubernetes-based Event Driven Autoscaling (KEDA)項目 和引發廣泛討論的 Windows Terminal
  3. KEDA 項目,爲 Kubernetes 原生的應用自動水平擴展器(HAP)提供了一個對接各種觸發源的接口(比如 Kafka 和 RabbitMQ),從而能夠通過這些渠道里的信息來觸發 K8s 應用的水平擴展,甚至直接驅動 Azure Functions(Azure 的 FaaS 服務是可以直接對接 K8s 的)。在大力投入“雲原生”體系之後,Microsoft 堅持通過 K8s 整合自身各種雲計算產品的戰略,初見成效,這也將是 Knative 項目遭受到的第一個挑戰。
  4. Windows Terminal 項目在給 Windows 帶來更原生的 Linux 開發體驗的同時,同也宣佈了 Microsoft 計劃將 Linux 內核插入 Win10 (預計今年 6 月正式發佈)的“雄偉計劃”。這將意味着,原本“開發在 Mac、部署在雲上”的工作方式,將有可能發生重大變革:Microsoft 正在用實際行動嘗試連通開發者體驗中的最後一公里。

在現今企業服務器OS市場,Windows依然佔據半壁江山,其市場分額達60%之多,把Windows應用搬站上雲不僅僅是基礎設施的遷移,更重要的是通過Kubernetes等雲原生技術讓傳統的Windows應用架構體系升級,充分利用雲上的彈性、敏捷等能力,實現業務應用的快速迭代和交付。可以參考阿里雲專家分享“通過編排模板創建Windows應用”。

上游重要進展

Kubernetes 項目

  1. K8s 1.15版本發佈時間定在 6月17日,性能有望進一步大幅提升。目前,社區已經發布了k8s 1.15.0 alpha.2 預覽版本。其中,來自 Google 的工程師與阿里雲工程師合作的 Bookmark API (#75474#74074) 赫然在列。這個更新爲 WATCH 操作添加了“書籤(Bookmark)”,使得這些海量的 WATCH 操作的建立者在重啓之後只需要對“書籤”之外的少數歷史變化進行追溯。在特定情況下,K8s APIServer 的性能會被提高 40 倍以上。
  2. KEP:NodeLocalDNS 特性即將 Beta(默認開啓),邊緣計算場景有望受益。ubernetes提供原生的DNS服務,通常以Deployment的方式部署,所以只會運行在集羣的某些節點上。這導致 Pod會經常需要跨節點進行DNS解析,效率很低。在邊緣弱網絡鏈接場景下甚至出現 DNS 解析不可用的情況。而該 KEP 則提出在每個節點以Daemonset方式部署本地DNS緩存,是的當前節點上Pod的 DNS 解析都優先走本地的 DNS 緩存。

Knative 項目

  1. Knative重新審視事件觸發源(Channel)的API 語義設計:Knative Eventing項目本週投票確定了爲每一個事件觸發源(Channel )定義單獨的 CRD 的設計,而不是像現在這樣用一個大 Provisioner 來進行描述,計劃在0.7版本實現該功能。不難看到,面對 KEDA 的潛在挑戰 ,Knative 項目正在重新審視如何通過事件觸發源來進一步擴張項目生態。
  2. Knative 正在開發 Event Registry: 通過 Event Registry,能很方便的獲知有哪些事件可以進行消費,這樣就可以對這些事件通過 Trigger 進行訂閱事件。當前功能目前進展中,該特性計劃在0.6版本發佈。

Istio/Envoy 項目

  1. Envoy正打算提供一個DNS filter用於完成DNS名稱到集羣名的映射。該filter可以通過xDS API來動態配置。實現這個filter需要依賴社區正在做的支持UDP協議的能力。
  2. Envoy新增TDS協議支持運行時配置某些feature和參數。通過將runtime映射到文件系統的目錄樹中,以文件的方式的來修改參數。控制平面可通過TDS去控制這些runtime參數。
  3. Envoy開始制定標準明確什麼是穩定的API。目的是爲了在今後升級Envoy API的時候可以做到向後兼容,使得控制平面在連接Envoy的時候也可以做到相互兼容。

Containerd 項目

  1. containerd 通過 fifo 來實現動態接管 containerd-shim 標準輸出。但是 containerd-shim 退出之後,containerd 服務端還保留着 fifo 的文件具柄,會導致大量的文件具柄泄漏。目前該問題已經得到修復。
  2. devicemapper snapshotter 實踐優化:containerd 創建 committed devicemapper 的時候,並不會 deactivate 這個 device,這會導致在它之上創建新的 snapshotter 時,需要掛起和恢復動作,這會讓鏡像下載和創建容器的速度變慢。目前該問題已經得到修復,改善了 devicemapper snapshotter 的性能。

開源項目推薦

本週推薦你關注 Klusterkit 項目。Klusterkit 是一款簡化Kubernetes部署的工具,特點如下:

a. 支持內網環境下的離線安裝;支持多種CNI插件;支持 etcd 的備份和恢復;支持k8s HA部署
b. 這個項目目前包含三個工具:

  • etcdadm,簡化etcd運維;
  • nodeadm,支持安裝kubeadm的基礎依賴;
  • cctl,支持對接Kubernetes的cluster api簡化k8s集羣的HA部署;
    c. 關於這個 K8s “部署神器”,你還可以閱讀這篇介紹參考來做更深入的瞭解。

本週閱讀推薦

  • Google Traffic Director詳細介紹: Google最近宣佈用於服務網格的Traffic Director beta測試版,爲VM和容器服務帶來全局流量管理。Traffic Director 是託管版的 Service Mesh 控制平面,主要賣點和特色是:對混合雲/多雲的支持,支持全局負載均衡;支持VM服務,可混合使用虛擬機和容器;整合 serverless 的部分特性,提供基於流量的自動伸縮能力。本文將對 Traffic Director 進行詳細介紹和產品分析。
  • Knative Tracing 介紹: 微服務架構本身會面臨一系列諸如:後臺錯誤原因分析、各個微服務組件的調用情況診斷等。所以需要有一個 Tracing 系統解決這些問題。基於 Serverless 模型來開發一個完整的業務實現,需要分解成多個 Serverless 模塊,每個模塊單獨通過 Knative 的 Serving 部署,這些不同的 Serving 之間需要調用鏈進行事務的串聯。
  • 像Google一樣構建機器學習系統 - 開發你的機器學習工作流:Google在機器學習工作流平臺上的工程經驗非常豐富,它的TensorFlow Extended機器學習平臺支撐了Google的搜索,翻譯,視頻等核心業務;更重要的是其對機器學習領域工程效率問題的理解深刻。機器學習工作流是一個任務驅動的流程,同時也是數據驅動的流程,這裏涉及到數據的導入和準備,模型訓練Checkpoint的導出評估,到最終模型的導出。

名詞解釋:KEP - Kubernetes Enhancement Proposal, 即 Kubernetes 上游設計文檔


本週報由阿里巴巴容器平臺聯合螞蟻金服共同發佈

本週作者:張磊,徙遠,天千,至簡,傅偉,敖小劍

責任編輯:木環


前期週報回顧
雲原生生態週報 Vol. 3:Docker Hub 遭入侵,Java 8 開始提供良好的容器支持
雲原生生態週報 Vol. 2:Godaddy 開源 KES、CNCF 提供免費雲原生課程
雲原生生態週報 Vol. 1:Google 發佈 Cloud Run,開源項目 Kubecost 讓 K8s 花費一目瞭然

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章