K8S 生態周報| Istio 1.3 正式發布

  • 2019 年 10 月 4 日
  • 筆記

「K8S 生態周報」內容主要包含我所接觸到的 K8S 生態相關的每周值得推薦的一些資訊。歡迎訂閱知乎專欄「k8s生態」。

1

Istio 1.3.0 正式發布

上周 k8s 生態周報中,我推送了關於 Istio 1.3.0-rc2 發布的消息後,有小夥伴專門私聊我,說想問問 Istio 1.3 到底有什麼新特性;以及為何上次沒有對 Istio 1.3 的新特性進行介紹。

這裡我來做下說明,首先關於為何上次沒有對 Istio 1.3 新特性進行介紹。有兩個主要原因:1. 上周時,正式版尚未發布;2. 對 1.3 這個版本而言沒有太多新特性,此版本主要在於改善用戶體驗。

對 Istio 而言,今年是個很重要的節點,而且自從 3 月份發布 1.1 版本以來, Istio 的更新頻率基本穩定在了 3 個月發布一個版本。1.1 版本專註於企業就緒,在此版本中一方面是提升系統的穩定性,另一方面則是解決企業落地時,可能遇到的一些問題,所以 1.1 中有大量的新特性。而 1.2 版本其實也類似,雖然花費了很多精力在保證品質上,但其中也有不少功能從 Beta 到了 Stable 階段。

其次是關於 1.3 版本到底有哪些新特性:

  • 出站流量自動確定協議:之前版本中,Istio 要求 Service 需要按照指定的規則進行命名才可以自動確認其協議,而在此版本中則可以自動確認其是 HTTP 或 HTTP/2 流量,如果無法自動確認,則認為其是純 TCP 流量,如果是通過 Helm 安裝的話,可以使用 --set pilot.enableProtocolSniffing=false 關閉此功能;
  • Pod spec 中不再需要定義 containerPort,默認情況下會捕獲所有埠,當然你也可以通過 traffic.sidecar.istio.io/includeInboundPorts 覆蓋此行為或者通過 traffic.sidecar.istio.io/excludeOutboundPorts 繞過要捕獲的埠;
  • 當使用 Redis proxy 時,現在默認的負載均衡器是 Envoy 的 MAGLEV;
  • 改善了 EnvoyFilter API 現在你可以添加或更新所有配置;
  • 實驗性的使用 Prometheus 為代理內生成服務指標的支援;
  • 廢棄了 Mixer adapters 兩個版本後移除;
  • istioctl 命令有了一些變化:istioctl experimental dashboard 晉陞為了 istioctl dashboardistioctl experimental convert-ingress 晉陞為了 istioctl convert-ingress,以及增加了一些便於調試使用的 metrics 或者 describe pod 之類的實驗性命令;

以上便是我個人看來 1.3 中值得關注的內容,但其實很明顯,這個版本的主題確實還都在改善用戶體驗上,如果對此版本有興趣的小夥伴,可自行參看 ReleaseNote

2

從 Helm v2 遷移至 Helm v3

這是來自 Helm 官方部落格的一篇文章 先來一張圖:

其實這篇文章主旨就是介紹一個 Helm 的插件 helm-2to3 這也是「官方工具」,推薦需要從 Helm v2 遷移至 v3 的小夥伴使用。

另外,看 Helm v3 現在的狀態,雖然正式版仍未發布,但也應該不會太久了。

3

上游進展

Kubernetes v1.16.0 正式版即將發布,不出意外的話,應該也就是最後一周了。當然,需要注意的是,當 Kubernetes 發布新版本後,意味著舊版本將有一個 EOL 請及時升級。

因為現在是 Code Freeze 階段,所以上游的開發進展沒有很多。

  • #82199 將 etcd server 從 3.3.10 更新到了 3.3.15 ,實際上這個變更可能是個遺漏 hah

Prometheus 已經基本成為了事實上的標準,包括 Istio 也都會將服務指標暴露為 Prometheus 支援的格式,最近有本新書《Prometheus 監控實戰》,推薦大家學習: