SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
ぼうけんにでかけよう
Kubernetes KEDA
2019-12-14
Tsukasa Kato
Profile
• Tsukasa Kato / 加藤 司
• 株式会社オルターブース
テクニカルアーキテクト
• Microsoft MVP for Microsoft Azure
• https://tsukatoh.hatenablog.com/
• https://www.slideshare.net/tsukasakatou9
Agenda
• Kubernetes
• Kubernetes-based Serverless
• KEDA
上記を用いたFaaSを知っていただく
Kubernetes
Kubernetes
• コンテナーアプリケーションを管理するためのオーケスト
レーションツール
• 自動デプロイ、スケーリング、アプリ・コンテナーの運用
自動化
• Webコンソールが用意されており、GUIでの管理が可能
• Google が社内のオーケストレーションツール「Borg」を
元に開発
• CNCFに寄贈され管理されておりオープンソースで提供さ
れている
• マイクロサービスを構築する基盤として採用される事が多
い
Kubernetes Architecture
でもKubernetesって構築が面倒…
Kubernetes
managed
services
Google Kubernetes Engine
Azure Kubernetes Service
Amazon Elastic Container Service for Kubernetes
IBM Cloud Kubernetes Service
Alibaba Cloud Container Service for Kubernetes
Rancher
NetApp Kubernetes Service
そうは言ってもマスターノードだけが
マネージドでしょ?
Cluster Autoscaler
• 追加容量が必要になった場合は新しいノードが自動的に追
加され、不要になれば削除される
• 実行するワークロードの量に基づいてクラスタのサイズを
自動的に変更
• リソース制約のためにノードでスケジュールできないPod
を監視
• ノードプール単位で機能
• Horizontal Pod Autoscaler(HPA)と連携して機能してノー
ドとポッドの管理を行う
Horizontal Pod Autoscaler(HPA)
• Kubernetes クラスターのメトリック サーバーを使用して、
Podのリソースの需要をモニターし、 アプリケーションで
必要なリソースが増えるとその需要を満たすためにレプリ
ケーションコントローラー、デプロイ、レプリカセット内
のポッドの数を自動的にスケーリング
• また、リソースが不要になったときにスケールインできる
• Kubernetes 標準APIオブジェクトとコントローラとして実
装されている
Kubernetes-based
Serverless
Knative KEDA Virtual Kubelet
Kubernetes-based Serverless
Knative
• Serverless ワークロードをビルド、デプロイ、管理機能を提
供するKubernetesベースのプラットフォーム
• Scale-to-zero、自動
スケーリング、クラ
スタ内ビルド、
Kubernetes 上のク
ラウド ネイティブ
アプリケーション用
のイベント フレーム
ワークなどの機能が
ある
https://github.com/knative
Knative Components
Serving
•スケール
•カナリアリース
•ルーティング
•リクエスト受信
Building
•コンテナのビルド
•パッケージング
Eventing
•イベントソースの抽
象化
•コードの発火
Virtual Kubelet
• Kubeletの仮想実装で、汎用的にk8sクラスタから外部リソー
スを利用できる
• バースティングなど
を目的として利用す
るのがベター
• Microsoftが始めた
OSSプロジェクトで、
現在はCNCFによっ
て管理されている
https://github.com/virtual-kubelet/virtual-kubelet
Virtual
Kubelet
Alibaba Cloud ECI Provider
Azure Container Instances Provider
Azure Batch GPU Provider
AWS Fargate Provider
HashiCorp Nomad
OpenStack Zun
Serverless Container
Serverless Containers = Nodeless Containers
VM、クラスタ
(ノード)が不要
コンピュート課金
オンデマンド実行
可能
AWS FargateAzureContainer
Instances
Alibaba Elastic
Container Instance
KEDA
KEDA
(Kubernetes-based Event Driven Autoscaling Component)
K8sでイベント駆動型の
Podレベルオートスケールを可能にするフレームワーク
• Red HatとMicrosoftのエンジニアリングチームのコラボ
レーションの結果として開始されたプロジェクト
• Kubernetesクラスターにインストールしてイベントベース
のコンテナースケーリングを有効にすることができるオープ
ンソースコンポーネントとして定義される
• CPUメトリックスとメモリを活用してコンテナをゼロからス
ケーリングし、Kubernetes機能を拡張する
KEDAの特徴
イベント
ドリブン
オート
スケーリング
ビルトイン
スケーラー
複数のワーク
ロードタイプ
非ベンダー依存
Azure Functions
サポート
Architecture
• Scaler:選択したソースに接続
して、メトリックを読み取る
• Metrics adapter:Scalerに
よって読み取られたメトリック
をHorizontal Pod Autoscaler
に転送して、アプリの自動ス
ケーリングを有効にする
• Controller:0⇔1のスケーリン
グを提供する
https://keda.sh/concepts/overview/#how-keda-works
KEDA
• Kubernetesのスケーリング「Horizontal pod autoscaler
(HPA)」はPodのCPUやメモリ消費量で調整される
• KEDAは非HTTPなイベントに連動してクラスターへのデプロ
イを自動スケールできる
• HPAなどのKubernetesコンポーネントとネイティブに統合
され、クラウドとエッジの両方で実行できる
• KEDAがZero Scale in/outを行い、他はHPAがScale in/out
する
• 様々なスケーラーが用意されており、今後も追加予定
• MIT Licenseで提供され、CNCFへの登録も進められている
Scalers
Scalers
• Apache Kafka Topic
• AWS Cloudwatch
• AWS SQS Queue
• Azure Event Hubs
• Azure Service Bus
• Azure Storage Queue
• External
• Google Cloud Platform
Pub/Sub
• Huawei Cloudeye
• Liiklus Topic
• NATS Streaming
• Prometheus
• RabbitMQ Queue
• Redis Lists
KEDAを使用するには
以下の方法でデプロイすることで利用可能
• HelmでKEDAをデプロイ
→通常はこちら
• Kubectlでyamlからのデプロイ
→minikubeなどHelmを使わない場合はこちら
HelmでKEDAをデプロイ
1. Helm repoを追加
2. Helm repoをアップデート
3. KEDAのHelm chartをインストール
$ helm repo add kedacore https://kedacore.github.io/charts
$ helm repo update
$ helm install kedacore/keda --namespace keda --name keda
$ kubectl create namespace keda
$ helm install keda kedacore/keda --namespace keda
Helm 2.x
Helm 3.x
Kubectlでyamlからのデプロイ
1. Githubからサンプルをダウンロードしてインストール
https://github.com/kedacore/keda
$ kubectl create namespace keda
$ kubectl apply -f deploy/crds/keda.k8s.io_scaledobjects_crd.yaml
$ kubectl apply -f deploy/crds/keda.k8s.io_triggerauthentications_crd.yaml
$ kubectl apply -f deploy/
KEDAをデプロイ
• keda-operator podが追加される
Azure Functions Core Toolsのインストール
• Azure Functions Core Toolsをインストールすることで
Kubernetes上でAzure Functionsが利用可能となる
• 以前はスケールも自分での実装が必要だったが、KEDAを使
うことでスケールの実装が不要となった
• インストールするには以下のコマンドを投入する
※要作業端末へのAzure Functions Core Toolsインストール
$ func kubernetes install --namespace keda
Azure Functions Core Toolsをデプロイ
• kedaとosiris関連の podが追加される
DEMO
DEMO Architecture
Azure Kubernetes Service
Azure Storage Queue
まとめ
• KEDAはKubernetesの上で実行できるFaaS
• 各クラウドはもちろんオンプレミスでも実行が可能
• Virtual Kubelet + KEDAはバースティングな状況には向いて
いる
• KEDAはまだまだ発展途上のプロダクトなので今後に期待
• Serverlessの仕様が標準化され、ベンダーを意識しない世界
が来てほしい
ご清聴ありがとうございました

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introduction
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
Rootlessコンテナ
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
"Yahoo! JAPAN の Kubernetes-as-a-Service" で加速するアプリケーション開発
"Yahoo! JAPAN の Kubernetes-as-a-Service" で加速するアプリケーション開発"Yahoo! JAPAN の Kubernetes-as-a-Service" で加速するアプリケーション開発
"Yahoo! JAPAN の Kubernetes-as-a-Service" で加速するアプリケーション開発
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
Nutanix運用指南術
Nutanix運用指南術Nutanix運用指南術
Nutanix運用指南術
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
 

Similar a ぼうけんにでかけよう Kubernetes KEDA

A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
日本マイクロソフト株式会社
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
Tsukasa Kato
 

Similar a ぼうけんにでかけよう Kubernetes KEDA (20)

July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
 
kubernetes on Azure 最新情報
kubernetes on Azure 最新情報kubernetes on Azure 最新情報
kubernetes on Azure 最新情報
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
 
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019  Winter version and KnativeCNCF Updates 2019  Winter version and Knative
CNCF Updates 2019 Winter version and Knative
 
Azure Kubernetes ServiceとCI/CD pipeline
Azure Kubernetes ServiceとCI/CD pipelineAzure Kubernetes ServiceとCI/CD pipeline
Azure Kubernetes ServiceとCI/CD pipeline
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Smart store servlerless-20191030-40min
Smart store servlerless-20191030-40minSmart store servlerless-20191030-40min
Smart store servlerless-20191030-40min
 
Azure Vnet の拡張と強化
Azure Vnetの拡張と強化Azure Vnetの拡張と強化
Azure Vnet の拡張と強化
 
俺とKubernetes
俺とKubernetes俺とKubernetes
俺とKubernetes
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化
 
俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStack俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStack
 
Azuredevopsakskeda
AzuredevopsakskedaAzuredevopsakskeda
Azuredevopsakskeda
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
 
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
A02_Azure Kubernetes Service on Azure Stack HCI 、オンプレ・エッジで動く AKS とは? [Microso...
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
 
Container x azure x kubernetes
Container x azure x kubernetesContainer x azure x kubernetes
Container x azure x kubernetes
 

Más de Tsukasa Kato

Más de Tsukasa Kato (20)

すぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktopすぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktop
 
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!ニューノーマルな働き方!?Teams投稿をセンチメント分析!
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
 
WVD運用に欠かせない5つのポイント
WVD運用に欠かせない5つのポイントWVD運用に欠かせない5つのポイント
WVD運用に欠かせない5つのポイント
 
ARM版Windows Virtual Desktop事始め
ARM版Windows Virtual Desktop事始めARM版Windows Virtual Desktop事始め
ARM版Windows Virtual Desktop事始め
 
Container x AI
Container x AIContainer x AI
Container x AI
 
Power Automate with kintone
Power Automate with kintonePower Automate with kintone
Power Automate with kintone
 
Azure DevOps と開発管理
Azure DevOps と開発管理Azure DevOps と開発管理
Azure DevOps と開発管理
 
Azure Private Linkのご紹介
Azure Private Linkのご紹介Azure Private Linkのご紹介
Azure Private Linkのご紹介
 
マネージドBastion​ Azure Bastion​
マネージドBastion​ Azure Bastion​マネージドBastion​ Azure Bastion​
マネージドBastion​ Azure Bastion​
 
SendGridを使ったスマホアプリ運用
SendGridを使ったスマホアプリ運用SendGridを使ったスマホアプリ運用
SendGridを使ったスマホアプリ運用
 
よりお手軽なBotへ 〜APIで効率的なBotを〜
よりお手軽なBotへ 〜APIで効率的なBotを〜よりお手軽なBotへ 〜APIで効率的なBotを〜
よりお手軽なBotへ 〜APIで効率的なBotを〜
 
Container deployment on Azure
Container deployment on AzureContainer deployment on Azure
Container deployment on Azure
 
AKS+KEDAで実現!Container Functions Pipeline
AKS+KEDAで実現!Container Functions PipelineAKS+KEDAで実現!Container Functions Pipeline
AKS+KEDAで実現!Container Functions Pipeline
 
Build2019発表情報一気見せ
Build2019発表情報一気見せBuild2019発表情報一気見せ
Build2019発表情報一気見せ
 
俺のセキュリティを超えてゆけ
俺のセキュリティを超えてゆけ俺のセキュリティを超えてゆけ
俺のセキュリティを超えてゆけ
 
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
 
Azure serverlesssummit2018
Azure serverlesssummit2018Azure serverlesssummit2018
Azure serverlesssummit2018
 
はたらく認証
はたらく認証はたらく認証
はたらく認証
 
Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on Azure
 
あなたとわたしの仲介人♡サービスブローカー
あなたとわたしの仲介人♡サービスブローカーあなたとわたしの仲介人♡サービスブローカー
あなたとわたしの仲介人♡サービスブローカー
 

ぼうけんにでかけよう Kubernetes KEDA