Oracle and/or its affiliates. Bare Metal Virtual Machine Container Function Code App Container Language Runtime Operating System Hardware Code App Container Language Runtime Operating System Code App Container Code … ユーザーの管理するレイヤー 6
Kubernetes(=カスタムリソースの塊で実現) • Kubernetesの標準コンポーネント(Pod,ReplicaSet,Deployment…)の上にサーバレス on Kubernetesの独⾃ コンポーネント(カスタムリソース)を構成 • カスタムリソースに対するコントローラーと協業することによって「サーバレス(Functions as a Service)」に近しい機構 を実現 サーバレス on Kubernetes CR1 CR2 CR3 の世界 サーバレス on Kubernetesの世界
Kubernetes • HTTP/gRPCなどのAPIリクエストに応じた起動や cron、ベンダーサービスをトリガーとする起動も可能 • ゼロスケールから起動可能 • 起動対象となるのは「コンテナ」 • Kubernetesのインフラはある程度抽象化されてい るが、多少意識する必要はある・・・ FaaSプラットフォーム • イベントに応じて起動(Object Storage、各ベン ダーのイベント・ハブ・サービスなど) • ゼロスケールから起動可能 • 起動対象となるのは「アプリケーションコード」 • インフラは全く意識しない 結局、サーバレス on KubernetesはFaaSなのか?? サーバレス on Kubernetes ≠ FaaS だけど 多少なりともFaaSの仕組みを持っているとは⾔える Developers run and manage application code with functions that are triggered by events or HTTP requests. Developers deploy small units of code to the FaaS, which are executed as needed as discrete actions, scaling without the need to manage servers or any other underlying infrastructure. 出典:CNCF Serverless Whitepaper v1.0(https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview) この辺を 満たさない…??
KEDAとHPAそのものの併⽤ 外部リソース(キューサイズなど)によるスケール 原則としてCPU/メモリによるスケール HPAによるスケールとKEDAによるスケールを併用することは非推奨。 (CPU/メモリによるHPAとVPAの併用が非推奨であるのと考え方は同じ…??) スケールのメトリクスが異なるため、想定外のスケール挙動となる可能性あり。 FAQにも記載あり。 https://keda.sh/docs/2.5/faq/#dont-combine-scaledobject-with-horizontal-pod-autoscaler-hpa “We recommend not to combine using KEDA’s ScaledObject with a Horizontal Pod Autoscaler (HPA) to scale the same workload.”