Kubernetesが注目され続ける5つの理由。 KubeCon + CloudNativeCon North America 2018
12月10日から13日まで、米ワシントン州シアトルでCloud Native Computing Foundation主催のイベント「KubeCon + CloudNativeCon North America 2018」が開催されました。
4日間で20のキーノートと200を超えるセッションが行われたこのイベントから、同イベントのホスト役でもあるGoogleのソフトウェアエンジニア Janet Kuo氏によって行われたキーノートの1つ、「Kubernetes: Living Up to the Hype」(Kubernetes:期待にこたえ続ける)の内容をダイジェストで紹介しましょう。
Kubernetesが期待にこたえ続ける5つの理由
Janet Kuo氏。
Kubernetesが期待にこたえ続ける5つの理由を、5位から紹介しましょう。
5位 本番環境で10年以上コンテナを実行してきた経験を基に開発されている
GoogleはBorgを使って10年以上Google SearchやGmail、YouTubeといったサービスを稼働させてきました。
このBorgの経験から学んだことがKubernetesに込められています。
例えばスケジューリングやデプロイの最小単位であるPodは、それぞれ固有のIPアドレスを持っています。これにより運用管理の複雑さが取り除かれているのです。
というのも、これによりPodはそれ自身が仮想マシンやベアメタルサーバのように扱えるためです。これはまさに革新的なことでした。
4位 ユーザーフォーカス
Kubernetesの開発においては、ユーザーからのフィードバックを非常に重視しています。
例えば2016年当時、Kubernetesのクラスタを立ち上げるにはGitHubからスクリプトをダウンロードして実行する必要がありました。つまりスクリプトなしには起動できなかったのです。
そこで、私たちは45分以内にスクリプトを使わずにKubernetesのクラスタを立ち上げる「Kubernetes Bootstrapping Challenge」というコンテストをしました。しかし私も含めて誰も成功しませんでした。
これがきっかでさまざまなツール、例えばシングルノードのクラスタを簡単に起動するMnikubeなどのツールが開発されるようになりました。
3位 宣言的なAPIと自動化
Kubernetesの基本的なコンセプトの1つに、APIが命令的(Imperative)ではなく宣言的(Declarative)であることがあります。
いわば命令的というのはマニュアル運転で、宣言的というのは自動運転のようなものです。
命令的なAPIでは、目的を達成するためには手順を1つ1つ呼び出さなくてはなりません。一方、宣言的なAPIはなにを達成したいかをシステムに告げるだけで、あとはシステムがやってくれます。
分散システムにおいてはどのノードがいつ落ちるか分かりません。宣言的なモデルではKubernetesがクラスタの自己修復を実現してくれるため、ユーザーが一晩中起きていて落ちたノードの代わりのノードを立ち上げたり、負荷に対してノードを追加したり、といったことをしなくてもいいのです。
2位 Kubernetesはどこでも実行できる
Kuberenetesはインフラの抽象化レイヤを備えているため、さまざまな環境で動作します。
そして1位ですが……おっと時間がきたので続きは来年に。
というのは冗談です(笑)
1位はもちろん、コミュニティです。
Kuberentesは非常に強力なコミュニティを持っています。オープンソースコミュニティにおいてもっとも活発なコミュニティの1つです。
コミュニティにはオープンソースのコントリビュータだけでなく、エンドユーザーもいます。Kubernetesは銀行や小売りを含め多くの企業や組織に使われています。さらにサービスプロバイダーもいて、Kubernetesの利用を拡大してくれます。
今後さらに品質を重視していく
この成功をさらに続けていくために何をするのか? 品質の改善はいつまでも続きます。例えば、さらにスケーラブルでエンタープライズグレードのセキュリティの実現などです。
そしてユーザー体験を改善していきます。HTTPSでのエンドポイントに対応したデプロイをもっと簡単にする、といったことを改善していきます。
そして適合性(Conformance)の維持。サービスプロバイダは独自のカスタマイズをしたいという要望がありますが、一方でそれはユーザーに対してKubernetesの一貫性を欠くことになり、ロックインの要因になります。
そのためこうした分裂を防ぐための適合性が必要です。
私たちは今後もKubernetesが期待に応えていくため、コミュニティとともに協力して品質、ユーザー体験、適合性の向上を実現していくつもりです。
あわせて読みたい
クラウドネイティブとは何のことなのか? なぜそれがIT組織の変革につながると期待されるのか[PR]
≪前の記事
どのクラウドでも使えるサーバレス「GitLab Serverless」をGitLabが発表。KubernetesとKnativeがベース