T1#open-source
Kubernetes 公開 ── Google 発のコンテナオーケストレーション
メタデータ
- 日付
- 年代
- 2010s
- Tier
- T1
- 参照年表
- クラウドコンピューティングの歴史
- 出典数
- 09
- 関連項目
- 03
- Tags
- #open-source
Kubernetes がオープンソースのプロジェクトとして発表されたのは 2014年6月10日 である。この日、Google のインフラ担当副社長 Eric Brewer が、サンフランシスコで開かれた第1回 DockerCon の2日目の基調講演と、Google Cloud Platform ブログの記事でこれを紹介した。リポジトリの最初のコミット(Joe Beda)は 2014年6月6日 付で、設計は2013年秋に Craig McLuckie・Joe Beda・Brendan Burns の3人が始めていた。Kubernetes 1.0 は 2015年7月21日 に OSCON で宣言され、Google は同時に、新設の Cloud Native Computing Foundation(CNCF) にプロジェクトを委ねると発表した。
名前はギリシャ語で船の「舵取り」を意味する。Brewer の記事は発音まで添えており(koo-ber-nay'-tace)、ロゴが舵輪なのはこのためである。
何のために作られたか
2013年3月に公開された Docker は、アプリケーションをコンテナに詰めて1台の機械で動かすことを簡単にした。だが何千ものコンテナを何百台もの機械で動かすこと ── どれをどこに置くか決め、落ちたら立ち上げ直し、決まった数を保ち、互いに見つけ合えるようにすること ── については何も言っていなかった。
Google は社内でそれを何年も続けていた。Brewer の記事は、検索から Gmail まで Google のあらゆるものが Linux コンテナで動いており、毎週20億を超えるコンテナを起動しているという主張から始まる。Kubernetes は、Google ほど大きな要求を持たない開発者向けの、軽量なオープンソースのコンテナマネージャとして差し出された。
Borg、Omega、Kubernetes
Kubernetes は Google の社内システム Borg のオープンソース版だと説明されることが多い。だが複製ではないし、2014年の発表は Borg に一言も触れていない。Brewer の記事が社内で使っているシステムとして名を挙げたのは Omega だった。
Borg が公になったのは翌年である。2015年4月、Google は学会 EuroSys の論文で Borg を説明した。多数のアプリケーションから来る数十万のジョブを、それぞれ最大数万台の機械からなる複数のクラスタで動かすクラスタ管理システムである。Kubernetes のブログは2015年4月23日にこれに合わせた記事を載せ、関係を説明している。Kubernetes に取り組む開発者の多くはかつて Borg に携わっており、Borg の良い考えを持ち込みつつ、Borg の利用者が長年指摘してきた問題を直そうとした、というものだ。
| システム | 何か | 公開状況 |
|---|---|---|
| Borg | Google の本番用クラスタ管理システム | 2015年の EuroSys 論文で説明 |
| Omega | Google の別のクラスタシステム。2014年の発表が名を挙げたのはこちら | 社内 |
| Kubernetes | 元 Borg の技術者による新しいオープンソースのコンテナマネージャ | 2014年6月からオープンソース |
2013年秋から2014年6月まで
2018年に Kubernetes ブログに寄せた回顧で、Brendan Burns は、始まりは2013年秋、自分と Craig McLuckie、Joe Beda の3人が Google でパブリッククラウドの基盤に取り組んでいたときだったと書いている。Docker を見てみようと最初に言ったのは、たしか Joe で、2013年の夏だったという。3人にはその意味がすぐ分かった。同時に限界も見えた。1台の機械に焦点を当てた Docker だけでは完全な解決にならない。オープンソースのオーケストレーターを作るという結論が固まったのは、2013年の晩秋だった。
2013年から2014年に変わるころ、Ville Aikas、Tim Hockin、Dawn Chen、Brian Grant、Daniel Smith が加わった。Burns は目標を「minimally viable orchestrator」と呼び、その中身を挙げている。
- レプリケーション ── アプリケーションの複製を決まった数だけ動かす
- 負荷分散とサービスディスカバリ ── 複製されたコンテナに通信を振り分け、互いに見つけられるようにする
- ヘルスチェックと修復 ── 故障に気づき、自己修復する
- スケジューリング ── 多数の機械を1つのプールにまとめ、仕事を割り振る
2014年6月に公開されたときの基本機能は、これで全部だったと Burns は書く。それまでの仕事の一部は、プロジェクトをオープンソースにするのが良い考えだと Google の経営陣を説得することだった。GitHub の最初のコミットは2014年6月6日付、題は単に「First commit」で、4万7千行を超えるコードを加えている。4日後、プロジェクトは公になった。
1.0 と財団
| 日付 | 出来事 |
|---|---|
| 2013年秋 | 設計開始(McLuckie、Beda、Burns) |
| 2014年6月6日 | GitHub に最初のコミット |
| 2014年6月10日 | DockerCon と Google のブログで発表 |
| 2015年4月23日 | Borg が公に。Kubernetes ブログが系譜を説明 |
| 2015年7月21日 | OSCON で Kubernetes 1.0。新設の CNCF への寄贈を発表 |
| 2018年3月6日 | CNCF で最初の卒業プロジェクトに |
2015年7月21日の OSCON で、Google は Kubernetes が本番利用に耐えると宣言し、その技術を Linux Foundation のもとに新設される Cloud Native Computing Foundation に寄贈すると発表した。設立メンバーには IBM、Red Hat、Docker、CoreOS、Intel、Cisco、VMware、Twitter、Huawei などが名を連ねた。
Burns は、公開後の1年をかけてこの最小限のオーケストレーターを作り込み、磨き、直して 1.0 にしたと書き、早い段階で加わった OpenShift チームが技術と企業での実務経験の面で大きく貢献したと記している。2018年3月6日、CNCF は Kubernetes が同財団で初めてインキュベーションを卒業したプロジェクトになったと発表した。
その後
Kubernetes が現れたのは混み合った場所だった。Brewer の基調講演から10年を記念して Docker が書いた回顧は、同じころに Apache Mesos、Red Hat の GearD、Docker の libswarm、Facebook の Tupperware が登場したことを振り返り、2017年までにコミュニティはオーケストレーションでは Kubernetes、コンテナの形式と実行環境では Docker に落ち着いたと書いている。当事者の一社による総括である。
同じ2014年、AWS は Lambda で別の道を取り、コンテナも機械も関数1つの背後に隠した。オーケストレーションされたコンテナとサーバーレスの関数という2つの型は、いまも並んで使われている。
概念については用語集の Kubernetes と コンテナ を参照。会社としては Google に、前後の流れは クラウドコンピューティングの年表 にある。
よくある質問
- Kubernetes はいつ公開されたのですか。
- 2014年6月10日、Google の Eric Brewer が第1回 DockerCon の基調講演と Google のブログでオープンソースとして発表しました。GitHub の最初のコミットは6月6日付です。1.0 は2015年7月21日に OSCON で宣言されました。
- Kubernetes は誰が作ったのですか。
- Brendan Burns によれば、2013年秋に Craig McLuckie・Joe Beda・Burns の3人が始め、2014年に入るころ Ville Aikas、Tim Hockin、Dawn Chen、Brian Grant、Daniel Smith が加わりました。最初のコミットは Joe Beda によるものです。
- Kubernetes は Borg のオープンソース版ですか。
- いいえ。Borg の経験を持つ技術者が新しく作ったシステムです。2014年の発表記事は Borg に触れず、社内システムとして Omega の名を挙げていました。Kubernetes ブログは2015年4月、Borg の良い考えを持ち込みつつ、Borg の利用者が指摘してきた問題を直そうとしたと説明しています。
- Kubernetes が CNCF に移ったのはいつですか。
- 2015年7月21日、1.0 の宣言と同時に、Google は Linux Foundation のもとに新設される CNCF へ Kubernetes を寄贈すると発表しました。2018年3月6日には CNCF で最初の卒業プロジェクトになっています。
出典
発表日、名前の由来と発音、Omega への言及、週20億コンテナという主張
一次資料10 Years Since Kubernetes Launched at DockerCon — Scott Johnston, Docker Blog
DockerCon 2日目の Brewer の基調講演での発表、同時期の競合と2017年の帰結(Docker の見方)
一次資料The History of Kubernetes & the Community Behind It — Brendan Burns, Kubernetes Blog, July 20, 2018
2013年秋の開始と晩秋の決断、初期メンバー、minimally viable orchestrator の4機能、OpenShift チームの貢献
最終更新: