前言
《雲原生生態週報》由阿里雲容器平臺聯合螞蟻金服共同發佈,每週一期。衆多一線社區專家與您一起“跟蹤動態,讀懂社區”,分享雲原生社區項目進展、活動發佈、精選博客等信息。以下是第四十期雲原生生態週報的內容。
業界要聞
由於新冠疫情影響,外國企業、開發者到訪中國存在不確定性,加上召集演講人、贊助商及參會者所遇到的困難,CNCF 宣佈原定於 2020 年 7 月在上海舉辦的 KubeCon + CloudNativeCon + 開源峯會取消。
同時,原計劃於 3 月 30 日 - 4 月 2 日在荷蘭阿姆斯特丹舉辦的 KubeCon + CloudNativeCon 峯會歐洲場也因疫情影響,被推遲到 2020 年 7 月或 8 月舉行。而 KubeCon + CloudNativeCon North America 2020 則將按計劃在 2020 年 11 月 17 日至 20 日在波士頓舉行。
可以基於 Kubernetes 高效地構建、訓練和部署AI應用。此次發佈中包括的核心組件如下:
-
Jupyter Notebook controller: 用戶可以方便使用 Jupyter Notebook 開發工具來開發新的機器學習模型;
-
TFJob and PyTorch Operator:用於模型訓練;
-
kfctl:用於部署和管理 Kubeflow;
-
KFServing:機器學習模型的部署和管理;
-
Kubeflow UI:集中儀表板。
阿里雲 ACK 整合阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳容器化應用運行環境。Gartner 競爭格局國內唯一入選,Forrester 報告國內排名第一。歡迎試用!歡迎廣大讀者前來試用!
上游重要進展
Kubernetes
由於 API Server 和 client 是使用 HTTP2 協議連接,HTTP2 的多個請求都會複用底層的同一個 TCP 連接並且長時間不斷開。而在 API Server 發生 RollingUpdate 或者某個 API Server 實例重啓時,又或者 API Server 使用 MaxSurge=Replica 方式升級後, Load Balance 沒有及時的將所有副本掛載完畢,client 能敏感的感知到連接的斷開並立刻發起新的請求,這時候很容易引起較後啓動(或者較後掛載 Load Balance)的 API Server 沒有一點流量,並且可能永遠都得不到負載均衡。
螞蟻金服的同學對這個問題做了修復,增加了一種通用的 HTTP filter,API Server 概率性(建議 1/1000)的隨機關閉和 Client 的鏈接(向 Client 發送 GOAWAY)。關閉是優雅的關閉,不會影響 API Server 和 client 正在進行中的長時間請求(如 Watch 等),但是收到 GOAWAY 之後,client 新的請求就會重新建立一個新的 TCP 鏈接去訪問 API Server 從而能讓 Load Balance 再做一次負載均衡。
這個修復增加了通用的 HTTP filter,能輕易的 port 回老版本的 Kubernetes,其它 HTTP2 server 也有類似問題也可以快速 port 這個通用的 filter(只依賴較新版本 golang.org/x/net package)。
給 kubelet 增加 cgroups v2 的支持。
針對 proxy connection upgrade 請求,強制採用 http1.1 協議。
Service ExternalIPs 遵守 ExternalTrafficPolicy=local 規則,從而達到保留 Client 源 IP 目的。
由於 kubelet 證書輪轉機制要求給 kubelet 返回簽發的證書時,同時也帶上籤發者的 CA 信息,用於解決 kube-controller-manager 和 kube-apiserver 的 CA 配置不一致的問題。該 PR 只解決 kube-controller-manager 這塊的問題,後續 kubelet 還需要配合修改。
目前主要從容器的 eth device 獲取容器 IP 信息,但是針對只使用 lo 和非 device(如: unix domain socket file)的容器當前的實現無法 cover,該 PR 利用 cni ADD 命令結果中返回的容器 IP 信息,而不從容器 eth device 獲取 IP 信息。
Knative
Knative 當前輕鬆支持基於 HTTP 和事件驅動的容器擴縮容,但是爲什麼不往前一步支持 FaaS 呢? 別急,Knative 社區已經開始計劃支持通過 Events 和 HTTP 觸發“function”。
開源項目推薦
基於 grpc 的隧道實現,用於定製 kube-apiserver 的 proxy 請求轉發。
新啓動一個容器和目標 Pod 共享 pid/network/user/ipc 命名空間的方式,在新啓動容器爲目標 pod 定位問題。該工具可以以 kubectl plugin 方式運行。
本週閱讀推薦
推薦使用 kubectl-plugin 的方式往 kubectl 擴展用戶的需求和功能。
從微服務數量、導入的緊迫性以及時機等方面分析是否需要使用 Service Mesh。
本文將基於之前介紹的基本網絡模型,進行了更深入的瞭解,希望給予讀者一個更廣更深的認知。
本文主要從三個方面對 Kubernetes 1.16 與 1.14 的性能進行了對比,分析了 1.16 版本和 1.14 版本的區別。
Kubernetes 1.16 版本相較於 1.14 版本有着衆多演進和增強,本文對其一一進行了解讀。
相關閱讀
雲原生生態週報 Vol. 39:Golang 1.14 發佈
雲原生生態週報 Vol. 38:Apache Flink 1.10.0 發佈
雲原生生態週報 Vol. 37:國內首個 Kubernetes SIG-Cloud-Provider 子項目揭祕
雲原生生態週報 Vol. 36:CNCF 公佈 2020 年 TOC 選舉結果
雲原生生態週報 Vol. 35:Falco 進入 CNCF Incubator 項目
雲原生生態週報 Vol. 34:VMware 完成 27 億美元的 Pivotal 收購
雲原生生態週報 Vol. 33:CNCF 宣佈 TUF 畢業
雲原生生態週報 Vol. 32:Istio 1.5 版本開發中
雲原生生態週報 Vol. 31:Kubernetes v1.17 版本解讀
雲原生生態週報 Vol. 30:Rancher 新版本默認支持 Kubernetes 1.16
雲原生生態週報 Vol. 29:Kubernetes 擬支持 Cgroup v2
雲原生生態週報 Vol. 28:Mirantis 收購 Docker 企業業務
雲原生生態週報 Vol. 27:Helm 3 發佈
雲原生生態週報 Vol. 26:2019 年容器生態統計報告發布
雲原生生態週報 Vol. 25:Canonical 開源 MicroK8
雲原生生態週報 Vol. 24:Ubuntu 19.10 發佈
雲原生生態週報 Vol. 23:全球首個開放應用模型 OAM 開源
雲原生生態週報 Vol. 22:Knative 暫時不會捐給任何基金會
雲原生生態週報 Vol. 21:Traefik 2.0 正式發佈
雲原生生態週報 Vol. 20:Kubernetes v1.16 發佈
雲原生生態週報 Vol. 19:Helm 推薦用戶轉向 V3
雲原生生態週報 Vol. 18:獨家解讀 etcd 3.4 新特性
雲原生生態週報 Vol. 17 :Helm 3 發佈首個 beta 版本
雲原生生態週報 Vol. 16:CNCF 歸檔 rkt,容器運行時“上古”之戰老兵凋零
雲原生生態週報 Vol. 15:K8s 安全審計報告發布
雲原生生態週報 Vol. 14:K8s CVE 修復指南
雲原生生態週報 Vol. 13 | Forrester 發佈企業級容器平臺報告
雲原生生態週報 Vol. 12 |K8s 1.16 API 重大變更
雲原生生態週報 Vol. 11 | K8s 1.16 早知道
雲原生生態週報 Vol. 10 | 數據庫能否運行在 K8s 當中?
雲原生生態週報 Vol. 9 | K8s 1.15 後的性能提升
雲原生生態週報 Vol. 8 | Gartner 發佈雲原生趨勢
雲原生生態週報 Vol. 7 | Docker 再爆 CVE
雲原生生態週報 Vol. 6 | KubeCon EU 亮點彙總
雲原生生態週報 Vol. 5 | etcd 性能知多少
雲原生生態週報 Vol.4 | Twitter 從 Mesos 全面轉向 Kubernetes
雲原生生態週報 Vol. 3 | Docker Hub 遭入侵,Java 8 開始提供良好的容器支持
雲原生生態週報 Vol. 2 | Godaddy 開源 KES、CNCF 提供免費雲原生課程
雲原生生態週報 Vol. 1 | Google 發佈 Cloud Run,開源項目 Kubecost 讓 K8s 花費一目瞭然
本文轉載自阿里巴巴雲原生微信公衆號(ID:Alicloudnative)。