在一年前,紅帽和微軟共同發布了Kubernetes自動擴展器KEDA 1.0,而現在官方強化KEDA的擴展器,釋出第2個主要更新KEDA 2.0,能支援更多種類的觸發器,更方便地自動擴展Kubernetes部署。在今年3月的時候,考量有越來越多廠商加入KEDA專案貢獻的行列,因此發起廠商決定將KEDA貢獻給雲端原生運算基金會(Cloud Native Computing Foundation,CNCF),現為CNCF沙盒專案。

KEDA的出現,是要解決Kubernetes自動擴展的需求。微軟提到,Kubernetes雖然提供了一個容器調度平臺,但是在預設的情況,Kubernetes只能根據CPU和記憶體等系統指標進行擴展,而無視來自Azure、AWS、GCP、Redis和Kafka等大量外部指標,這代表系統回應事件的時間,可能存在大量的延遲,使得擴展不夠靈敏,趕不上流量的變化。

而KEDA能夠解決這個問題,KEDA是一個以Kubernetes為基礎的事件驅動自動擴展器,用戶可以根據需要處理的事件數量,來驅動Kubernetes中容器的擴展,KEDA提供用戶,透過使用簡單一致的API,就能進行自動擴展部署。

KEDA為一個單一用途的輕量元件,可以被加到Kubernetes叢集中,與Horizontal Pod Autoscaler(HPA)等標準Kubernetes元件一起使用,擴展功能不會互相覆蓋或是重複,官方提到,用戶可以指定要使用事件驅動的應用程式,而不會影響其他應用程式,這使得KEDA可以靈活並安全地,與其他Kubernetes應用程式和框架共同使用。

在KEDA 1.0釋出一年之後,現在官方再次釋出了主要更新2.0正式版,更新重點在於KEDA支援更多的觸發器,並且也增加許多新的模式和功能。KEDA 2.0現在可以自動擴展部署負載(Deployment)和作業(Jobs)工作負載,過去在KEDA 1.x的時候,用戶需要透過ScaledObject資源,來指定要擴展的工作負載類型,且只能指定擴展Kubernetes部署或是作業資源其中一種。

而在KEDA 2.0,這兩個選項被分開,並且引入獨立的資源,各別描述兩種類型,除了之前就有的ScaledObject,現在還為Kubernetes作業增加ScaledJob自定義資源,以滿足不同的需求。

另外,用戶現在可以在ScaledObject和ScaledJob上,設定多個觸發器,並根據例如Kafka和Prometheus等不同的觸發器,自動縮放工作負載,KEDA會從擴展器中,挑選像是目標副本數等最大的值,來定義擴展決策。

KEDA 2.0還加入多個新的擴展器,用戶除了能使用Azure Log Analytics和IBM MQ擴展器之外,還可應用新的CPU和記憶體擴展器,不再需要混用HPA和ScaledObjects,KEDA能夠完全替用戶處理HPA。而且新的外部推送擴展器,允許用戶使用推送模型(Push-Model),建置自己的擴展器和觸發器擴展行為,而非使用現有的拉取模型(Pull-Model)。

最後,KEDA 2.0還加入新的Metrics API擴展器,能夠自動縮放透過REST API提供的指標,讓用戶不需要建構自己的擴展器,這項新功能可以根據環境中可用的指標標準來源,諸如內部API或是微軟Dynamics CRM API等,來自動化縮放決策。

由於KEDA 1.0發布之後,社群逐漸壯大,IBM、Pivotal、VMware和Astronomer等公司皆對KEDA做出貢獻,而且KEDA也與Knative專案展開合作,開始進行整合,而為了要給KEDA更多獨立的發展空間,並且確保專案不會受特定供應商控制,因此發起廠商將KEDA貢獻給CNCF,作為沙盒專案,官方預計在今年稍晚或是明年初,將會進入孵化器專案。

熱門新聞

Advertisement