iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 28
1
DevOps

Kubernetes and Istio 三十天系列 第 28

[Day28] Istio Horizontal Pod Autoscaler

前言

今天主要針對Istio Horizontal Pod Autoscaler做一些簡單的介紹

Horizontal Pod Autoscaler

不論身為運維人員或是開發者,都希望Kubernetes Cluster能根據目前的資源使用率,決定是否自動調整資源來回應這些流量,避免服務無法運行而失去使用者。在目前許多第三方雲端服務供應商也都提供 Autosacling 的功能,像是 AWS 或是 Google Cloud Platfrom。而 Kubernetes 本身也提供一個 API - Horizontal Pod Autoscaling,讓我們可以針對不同的 Pod 的使用量,來決定是否新增或減少 Pod 的數量。

kubectl get hpa -n istio-system

NAME                   REFERENCE                         TARGETS         MINPODS   MAXPODS   REPLICAS AGE
istio-egressgateway    Deployment/istio-egressgateway    <unknown>/60%   1         5         1 25s
istio-ingressgateway   Deployment/istio-ingressgateway   <unknown>/60%   1         5         1 25s
istio-policy           Deployment/istio-policy           <unknown>/80%   1         5         1 25s
istio-telemetry        Deployment/istio-telemetry        <unknown>/80%   1         5         1 25s

這邊會出現/60%,是因為必須要在Kubernetes Cluster安裝Metrics Server的服務。這樣Kubernetes Horizontal Pod Autoscaler才會正常運作。

Istio HPA

依據上面的敘述,比較重要的包含istio-telemetry,這項服務是Istio Monitor的服務,因此流量的的時候這項服務的MaxPods也可以開比較多

至於Istio-ingressgateway也可以依據流量把MaxPods也開大。

結語

如果要在Istio Service Mesh中使用額外調整HPA必須要注意,一樣要保持單數這樣LoadBalancer的演算法才會正常運作。


上一篇
[Day27] gRPC Istio 應用
下一篇
[Day29] Istio allow Header
系列文
Kubernetes and Istio 三十天30

尚未有邦友留言

立即登入留言