#chiroito ’s blog

Java を中心とした趣味の技術について

8 分で Kubernates クラスタを構築する

Kubernates (k8s) を試したり、複数の物理ホストを使ってクラスタを組みたくなったのですが、何度も作っては壊しをしたいため Vagrantfile を作成してみました。これを使えば複数の物理サーバ上でも簡単に k8s クラスタを構築できます。

今回は以下のように物理ホストが 2 台あって、それぞれでWorker を動かし、片方で master を動かす構成で紹介します。

f:id:chiroito:20171103032843p:plain

私の使用している環境では、最低限必要な、master と 1 つの worker の構築は 8分8秒 で完了し、追加となる 2つ目の worker の構築は 3分16秒で完了しました。workerの作成は各 host でパラレルに実行しても大丈夫です。

※構築時間はhostのマシン性能、ネットワーク転送の性能、プライベートリポジトリの存在など環境に大きく依存します。

クラスタの構築には Vagrant を使用し、Vagrant のプロバイダは Oracle VirtualBox 5.1 を使用します。Vagrant プラグインはvagrant-proxyconfvagrant-disksizeを使用します。host で事前にインストールする作業は一番最後に記載してます。

続きを読む

Hot Function でファンクションのレスポンス時間を短縮 @ Fn

リクエストを処理するために新たなコンテナを作成し、処理終了後にはそのコンテナを停止します。これをリクエストのたびに繰り返します。

コンテナの作成処理は非常に時間が掛かるため、レスポンス時間がとても長くなってしまいます。また、コンテナの作成処理や終了処理に CPU などのリソースを使うため、無駄なリソースが消費されます。

Hot Function という機能を使うことで、一定期間コンテナを再利用します。これにより、一定期間の間に同一のファンクションへリクエストがあると、前回と同じコンテナがリクエストを処理します。これにより、コンテナの作成処理や停止処理の回数が減少するため、レスポンス時間の短縮や、無駄なリソースの消費を抑えられます。

私の環境では、ノートパソコン上に VirtualBox で Linux として Docker Host を実行しています。その環境下でも、Hot Function を使わない場合はレスポンス時間が 2000~3000ms 程度かかりましたが、Hot Function を使うと 40~50ms になりました。

続きを読む

AWS Lambda のファンクションを Fn へ変換する

Fn Project では AWS 社が提供する Lambda からファンクションをインポートできます。今回の例では、Lambda でファンクションを作成する際に記載されているコードを FnProject のファンクションへ変換します。 f:id:chiroito:20171014123039p:plain

インポートにはARR・AWSのリージョンが必要です。ARN はAWSのコンソールから確認できます。

Lambdaのインポート

AWS Lambda をファンクションとしてインポートするにはfn lambda aws-importコマンドを実行します。コマンドの引数はARN、リージョン、Dockerイメージ名を指定します。

続きを読む