メインコンテンツにスキップ
ブログコンテナ (Kubernetes、Docker)KnativeでサーバーレスKubernetesアプリケーションを管理する

Knative でサーバーレス Kubernetes アプリケーションを管理する

Knative でサーバーレス Kubernetes アプリケーションを管理するブログ画像

サーバーレスアーキテクチャは、一言で言えば、開発者がサーバーを管理する必要性をなくすということです。インフラ サーバーはバックグラウンドで稼働していますが、その維持と拡張の負担はクラウドプロバイダーに移行されます。開発者は、特定の機能までコードを大幅に効率化することができ、通常、機能が実行されたときだけリソースの料金を支払う「オンデマンド」コストモデルを利用することができます。

関数は、APIエンドポイントがイベントをトリガーしたときに実行される。これにより、予測不可能な状態や急速に変化する状態を持つアプリケーションを、プライマリアプリケーションから抽象化された関数で水平方向に拡張することができる。実際には、買い物客がeコマースサイトで商品を選択したときに関数がトリガーされ、その商品の在庫があるかどうかデータベースをチェックし、最新の価格情報を引き出すように設計されているかもしれない。

Knativeは、サーバーレスアプリケーションを管理するためにKubernetesの上に構築された強力な機能ツールセットです。Knativeは、KubernetesクラスタがPodをゼロにする一方で、必要なときにPodがスケールアップできるようにリソースを利用できるようにします。

Knativeはイベントとトリガーをサポートしており、アプリケーションの応答方法を制御するためにカスタマイズすることができます。ポータブルでベンダーニュートラルなツールなので、お好みのマネージドKubernetesサービス(私たち自身のLinode Kubernetes Engineなど)と一緒に使用したり、ローカルクラスタにインストールしたりすることができます。Kubernetesとこのインストール可能な機能プラットフォームが一緒になれば、Kubernetes上でアプリケーションを実行する際の状態管理と自己回復の利点が最適化されます。

Knativeが提供します。

  • 自動スケーリング。Knativeは、トラフィックや需要に応じてPodを自動でスケーリングします。これにより、リソースの利用率を向上させ、コストを削減することができます。
  • イベント駆動型コンピュート。Knativeは、サーバーレスワークロードがイベントやトリガーに反応することを可能にします。
  • ポータビリティ。Knativeは、異なるクラウドプロバイダーや環境間で動作するように設計されています。これにより、開発者はコードを修正することなく、サーバーレスアプリケーションを異なる環境にデプロイすることができます。
  • 拡張性。Knativeは、特定のアプリケーションの要件に合わせてカスタマイズ可能なビルディングブロックのセットを提供します。
  • 企業のスケーラビリティ。KnativeはPuppet 、Outfit7などの企業で信頼されています。

仕組み

Knativeの機能は、Knative EventingとKnative Servingに分かれています。

  • イベント化。 イベントプロデューサからイベントコンシューマへ、HTTP POSTリクエストでイベントをルーティングする、シンクを実現するAPIのコレクション。
  • サーブする。 オブジェクトのセットをKubernetes Custom Resources Definitions(CRD)として定義するか、Kubernetes APIの拡張機能を作成します。これにより、サーバーレスワークロードが以下のリソースを持つKubernetesクラスタとどのように相互作用するかを決定します。
    • ルート ネットワークエンドポイントからリビジョンエンドポイントへのマッピングとトラフィック管理。 
    • コンフィギュレーション。 コードとは別のレイヤーとして、希望する状態を維持する。
    • リビジョン。 変更と修正を行うたびに、コードと設定のスナップショットが作成されます。
    • サービスです。 オブジェクトの作成を制御し、アプリが継続的にルート、設定、最新リビジョン、または特定のリビジョンのいずれかを持つようにするワークロード管理。KnativeはデフォルトでIstioのゲートウェイ・サービスを使用します。
Kubernetesクラスタのレイヤーを示す図。Istioはクエリのルーティングとロードバランシングを処理するサービスメッシュです。KnativeはEventingとServingの機能で真ん中に位置し、Kubernetesクラスタはその底辺に位置する。
KnativeはオーケストレーターとしてKubernetesを使用し、Istioはクエリのルーティングとロードバランシングを処理します。

YAML、またはKnative Operator for Kubernetesを使ってKnativeをクラスタにインストールすることができます。また、Kubernetesコミュニティメンバーが投稿したKnative Helmチャートもあります。Knativeにはクイックスタート環境がありますが、これはあくまでテスト用として推奨します。

Akamai Cloud を始めるにあたって

KnativeはLKEに内蔵されたオートスケーラを補完する優れた機能で、クラスタのノードプール内の最小ノードと最大ノードを簡単に制御することができます。Knativeとオートスケーラを一緒に使うことで、ポッドレベルとインフラ レベルの両方できめ細かな管理が可能になります。

そして、それを始めるための新しいオンデマンドコースを用意しました!Coding for EntrepreneursのJustin Mitchelと共同で、新しいTry Knativeオンデマンドコースを2023年2月28日に提供します。このビデオシリーズでは、Terraform を使った Kubernetes クラスタの作成、Knative サービスの設定、コンテナ化されたアプリケーションのデプロイメントを紹介します。


コメント (1)

  1. Author Photo

    It was helpful

コメントを残す

あなたのメールアドレスは公開されません。必須項目には*印がついています。