天天看點

雲原生生态周報 Vol. 11 | K8s 1.16 早知道

業界要聞

  1. Pivotal 釋出了完全基于 Kubernetes 的 Pivotal Application Service(PAS)預覽版 。這意味着 Pivotal 公司一直以來在持續運作的老牌 PaaS 項目 Cloud Foundry (CF)終于得以正式擁抱 Kubernetes。PAS 将 CloudFoundry 的核心控制平面完全移植到了 Kubernetes 之上,進而使得使用者可以使用 CF 聞名已久的 cf push APP 指令一鍵在 Kubernetes 上釋出應用;而與此同時,操作人員則可以通過 K8s API 來進行平台層的管理
  2. Linkerd 2.4釋出 :Linkerd 2.4 釋出,此版本增加了流量分割和服務網格接口(SMI,Service Mesh Interface)支援;Linkerd 的新流量分割功能,允許使用者動态控制服務流量的百分比。這個功能強大的特性,可以通過 Kubernetes 服務之間請求流量的增量轉移,實作灰階和藍綠部署等政策。

上遊重要進展

  1. Kubernetes 設計增強提議(KEP)

    (a) PVC/PV 克隆在 K8s 1.16 即将 Beta:

    https://github.com/kubernetes/enhancements/pull/1147
    K8s 的PVC/PVC 已經支援以克隆的形式建立,這使得使用者可以一鍵複制目前的容器應用在使用的整個存儲依賴(包括資料)。這個特性在測試、調試、搬遷等很多場景中都有需求。
               
    (b) External credential providers: https://github.com/kubernetes/enhancements/pull/1137
    • k8s client的認證方式現在隻有kubeconfig一種。目前上遊正在提議支援對接外部鑒權系統,以減少類似證書復原、證書儲存等問題;
    • 支援bearer tokens;支援mTLS;等其他動态認證方式;
    • 動态認證的配置通過configmap下發;其中包括認證系統的配置,工具等;
    (c) Service Topology: add graduation criteria: https://github.com/kubernetes/enhancements/pull/1132
    • 支援k8s服務拓撲感覺的流量管理,實作服務的“本地通路”,本地可能包括:同一個region,同一個node,同一個ns等;
    • 需要支援“本地服務”的健康檢查,LB規則等;考慮增加:PodLocator controller,kube-proxy支援感覺服務的拓撲配置,dns支援拓撲感覺;
  2. Kubernetes v1.16.0-alpha.1釋出 ,其中幾個需要重點關注的更新包括:
    • k8s原生支援api 響應壓縮;如果client請求Header中帶

      Accept-Encoding: gzip,且

      response body大于128KB,那麼用戶端會接收到GZIP壓縮的響應;go client預設支援,其他語言用戶端需要适配;參考( #77449 , @smarterclayton )
  • 新增 runtimeclass admission controller,用來給pod配置特定runtime類型的overhead,比如kata容器和runc的pod overhead就會差别很大;PodOverhead 在 1.16中是一個alpha特性;參考( #78484 @egernst

knative項目

(a)

簡化eventing的事件消費處理

: 社群正在計劃簡化事件消費處理,Google正在進行原型的設計,後續會将相關代碼進行分享。

(b)

縮容時可配置自定義政策來選擇pod縮容

:暫定将在1.0版本提供proposal

(c)

基于Envoy Filter的Knative Activator方案

:Istio Team最近給knative提出的Knative Activator新方案,通過在Ingress Gateway的Envoy中加入一個特殊的filter,來實作Activator的功能。目前正在進行POC,通過Mixer Adapter來實作激活Autoscaler。

開源項目推薦

  1. IBM開源的 Serverless 方案 -- kabanero: https://developer.ibm.com/open/projects/kabanero/ :kabanero建構在knative,istio,tekton之上,提供build、流量管理、CICD等能力,同時支援Eclipse codewind,Eclipse Che等IDE對接;目前主要面向 Java 生态。
  2. kyverno, 一個 Kubernetes 原生的 Policy Engine 項目: https://github.com/nirmata/kyverno
    (a)  kyverno作為一個 [dynamic admission controller](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) 運作在k8s叢集中,接受 APIServer 的 Admission WebHook HTTP 回調請求,來比對類似資源的類型,名稱,标簽,資源規格等檢查政策;           
    • 可以看到,相比于 OPA,kyverno 更加輕量級,可以認為隻是 K8s 本身的 Policy 能力的一個封裝
      (b)  這些檢查政策可以通過kyverno的自定義資源類型kyverno.io/v1alpha1來定義;
      
      (c)  主要的使用場景是,可以對相同應用在不同部署環境做不同政策的admission 的validating 和 mutating
                 

本周閱讀推薦

  1. 《KUBERNETES 2020: WHAT’S IN STORE FOR NEXT YEAR AND BEYOND?》 知名技術媒體釋出了對 Kubernetes 生态在 2020 年的趨勢預測,主要包括了三個重點方向:
    (a)   Serverless 架構
     (b)  混合雲架構
     (c)  端到端的 CI/CD 方案
               
  2. 初探雲原生應用管理(二): 為什麼你必須盡快轉向 Helm v3 》Helm 是目前雲原生技術體系中進行應用管理最被廣泛使用的開源項目,沒有之一。根據 CNCF 剛剛釋出的 KubeCon EU 2019 的總結報告,Kubernetes(k8s),Prometheus 和 Helm 這三個項目,再次蟬聯 KubeCon 上最被關注的開源項目前三名。如果您還不了解 Helm V3,可以移步《 深度解讀Helm 3: 猶抱琵琶半遮面
  3. 阿裡雲Kubernetes CSI實踐 》我們知道Kubernetes中關于使用存儲卷的機制有In-Tree、Flexvolume模式,那為何還要提出CSI方式呢?CSI标準使K8S和存儲提供者之間将徹底解耦,将存儲的所有的部件作為容器形式運作在K8S上,它具有怎樣的協定規範,如何部署及使用呢?

本周報由阿裡巴巴容器平台聯合螞蟻金服共同釋出

本周作者:徙遠、張磊、元毅

責任編輯:木環

前期周報回顧

雲原生生态周報 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 走向 K8s 雲原生生态周報 Vol. 3 | Java 8 ️️ Docker