業界要聞
全球首個開放應用模型 OAM 開源
2019 年 10 月 17 日,阿裡巴巴合夥人、阿裡雲智能基礎産品事業部總經理蔣江偉(花名:小邪)在 Qcon 上海重磅宣布,阿裡雲與微軟聯合推出開放應用模型 Open Application Model (OAM)開源項目。OAM 的願景是以标準化的方式溝通和連接配接應用開發者、運維人員、應用基礎設施,讓雲原生應用管理與傳遞變得更加簡潔,高效,并且可控。
KubeVirt 進入 CNCF Sandbox
KubeVirt盡管容器技術提供了各種便利,但是在特定情況下使用 VM 仍然是不可避免的(編者按:VM 隻是選擇之一,不同的安全容器解決方案都可以在不同方面代替單純的 VM)。來自 Redhat 的 KubeVirt 項目可以提供在 K8s 叢集内部準備、部署、運作和管理 VM 的能力,讓使用者可以使用 Pod 一樣來使用一個 VM。現在,這個項目已經正式進入了 CNCF 的 Sandbox 了。
Megalix 釋出 KubeAdvisor 1.0 版本
KubeAdvisor 日前釋出了 1.0 版本。KubeAdvisor 一款輔助 K8s 運維的工具,能夠掃描 K8s 叢集的資源、狀态、配置等,通過提供恰當的“可觀測性”(編者按:眼花缭亂的監控資料和曲線圖不等于可觀測性),為叢集使用者提供最有價值的資訊,來輔助保障基礎設施和上層應用的可靠性和穩定性。
上遊重要進展
1.
允許動态調整 kube-scheduler 的 log level。kube-scheduler 作為 K8s 重要的預設排程元件,在一些情況下它們的日志可以反映出不少資訊,這個 PR 允許 kube-scheduler 的日志列印級别可以動态被調整。
2.排程器方面最近的一個舉動是将一些 Prioritizing 的邏輯插件化(Score Plugin)。最近幾個相關的PR如下,感興趣的同學可以關注。
3.
為 scheduler 添加一個跟蹤 Binding 和 Prioritizing 的 goroutine 數目的 metric。
在大規模應用部署等一些特殊場景中,排程器可能成為整體性能的瓶頸。
4.這裡有兩個優化 kubeadm 使用體驗的 PR:
- kubeadm 的 structured output :結構化輸出 kubeadm 的一些輸出資訊(yaml、json 等),友善被繼續處理;
- kubeadm 添加 --with-ca flag 來顯示 ca 的過期資訊 :ca 過期是常見的造成元件不可用的願意之一,有了這個 flag 可以更友善的指導 ca 的過期資訊。
5.下面是幾個比較重要 / 有意思的 KEP,感興趣的朋友可以關注一下:
- 為 Kube API Server 的 network proxy 添加了 beta 版畢業條件 。KAS 允許配置 Kube API Server 的網絡流量到(或者不到)指定的 proxy;
- insecure kubelet log :通過一個開關,使得在 kubelet 的 serving cert 過期(kube apiserver 不認識 kubelet)但kube-apiserver 的 client cert 沒有過期(kubelet 認識 kube apiserver)的條件下,允許 kubelet 通過跳過 tls 驗證傳回一些 log。這個功能在測試和debug的場景是有用的。
- 規範化 conformanece test 的内容的實施 (文檔、API schema、代碼檢驗、專家知識等)
- 擴充 NodeRestriction Controller 來限制更多 Node 可以 Pod 進行的操作(主要是來自安全上的考慮);
- HPA 的狀态達到 implementable
- 兩個計劃中的 GA,對于想要參與到 K8s 社群的新手貢獻者來說,這兩個 KEP 是不錯的切入點(目标、方法很明确的需求)
- 根據 Node condition 給 Node 打上 taint 标記 ,自動化幫助排程器識别出不适合的排程節點;
- 之前 DaemonSet 的排程邏輯是在 DaemonSet controller 中的, 這個 KEP 希望把排程邏輯移動到排程器中實作。
開源項目推薦
VMware-Tanzu
VMware已經開始全面支援 K8s,最近該公司在開源方面的一個舉措是将幾個自己擁有的雲原生開源項目遷移到了新的 Organization:VMware-Tanzu。這個項目中目前包括下面幾個項目:
- velero:應用遷移工具
- octant:一個叢集狀态展示的 dashboard
- sonobuoy:一個 K8s 分析工具
- ······
k8s-transmogrifier
K8s 1.16 中廢棄了大量的 API,影響到很多的已經用于生産的叢集配置和 Helm chart 等。這裡有一個自動轉換 K8s 1.16 中的 depreciated 的 API 的
工具,有需要的人可以了解一下。
本周閱讀推薦
1.《
阿裡巴巴的研發模式是如何演進的?》
随着雲計算的不斷發展,很多開發者都對這一技術将為開發方式帶來的變化充滿興趣,雲計算解決的是從 CAPEX 到 OPEX 的轉變問題。雲可以帶來哪些切實的好處?在雲環境下應該怎麼做應用架構?基于從傳統架構到雲架構的親身經曆,阿裡巴巴合夥人、阿裡雲智能基礎産品事業部總經理蔣江偉(小邪)闡述了企業由新架構和新研發模式帶來的價值點。本文整理自正在召開的
QCon 上海 2019蔣江偉(小邪)的演講内容。
2.《
How Zalando manages 140+ Kubernetes Cluster本文介紹了 Zalando 的團隊在(公有雲上)管理數量棒龐大的 K8s 叢集中得到的一些實踐經驗,例如每個 domain 或者 production community 總是部署雙叢集(prod & non-prod)、使用 Github 托管配置檔案、通過 CLM(Cluster Lifecycle Manager)管理更新等等。
3.《
Liveness Probes are DangerousLiveness Probe 和 Readiness Probe 是 K8s 中判斷應用是否可用的重要工具,然而不正确的使用 Liveness Probe 或者 Readiness Probe 會帶來的風險(例如不小心使用了外部依賴、Liveness Probe 有時候反而會阻止 Pod 正确的進入失敗狀态進而無法徹底恢複健康等),這篇文章總結了使用這兩者的最佳實踐。
4.《
A Practical Guide to Setting Kubernetes Requests and LimitsKubernetes 資源定義中的 request 和 limit 是老生常談的問題了,本文除了更好的解釋這些概念意外,還從 SLA 的角度提供了如何配置它們的建議。
5.《
Protecting Kubernetes API Against CVE-2019-11253 (Billion Laughs Attack) and Other Vulnerabilities本文通過介紹 K8s 中的一個可能導緻 billions laughs attacks 漏洞的例子,講解了在生産環境中使用 K8s 的正常安全操作,包括正确配置 RBAC、定期檢查 Role 和 RoleBinding、永遠不要暴露 Master host 的位址等等。
6.《
基于 Knative Serverless 技術實作天氣服務-下篇上一期我們介紹了如何
基于 Knative Serverless 技術實作天氣服務-上篇,本篇文章我們介紹如何通過表格存儲提供的通道服務,實作 Knative 對接表格存儲事件源,訂閱并通過釘釘發送天氣提醒通知。關于 Knative 更多精彩文章請看 《
Knative 系列文章》。
“ 阿裡巴巴雲原生微信公衆号(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術公衆号。”