Kubecon Europe Kubernetes の初期の開発者の 2 人、Brendan Burns 氏と Tim Hockin 氏は、仮想 Kubecon Europe の (別々の)「Ask me any」イベントに参加し、世界で最も人気のあるコンテナ オーケストレーターの過去と未来についての洞察を提供しました。
Kubernetes の共同創設者で、当時は Google に勤務し、現在は Microsoft の副社長として Azure 上の Kubernetes、Azure 上の Linux などを担当している Brendan Burns 氏によると、Kubernetes は「すべては 2013 年の秋に始まった」という。
[Kubernetes]は、一連の問題を一度に解決するためモノリスとして提示しますが、各部分は実際には独立しています。
Google では、Burns 氏は 2 人の同僚 (Joe Bida 氏と Craig McLuckie 氏) とともに、Docker ツールとコンテナ標準化の可能性に感銘を受け、「最小限の実行可能なオーケストレーター」の作成に着手しました。
Tim Hockin 氏は、2014 年の初めにチームに加わった数少ないソフトウェア エンジニアの 1 人でした。Google は、ここで説明されているように、すでに「統合コンテナ管理システム (社内では Borg と呼んでいます)」を運用していたため、コンテナについては目新しいものではありませんでしたが、Kubernetes はいくつかの点で Borg の進化形であったものの、Kubernetes は常に外部の開発者を対象としていたという重要な違いがありました。
バーンズ氏は、その目標の一環として、彼らが「このプロジェクトをオープンソース化するのはよい考えだと経営幹部を説得するのに」かなりの時間を費やしたとも述べた。
Kubernetes v1.0 は 2015 年にリリースされ、その時点で Linux Foundation と提携して Cloud Native Computing Foundation も設立され、Kubernetes がシード プロジェクトとして寄贈されました。
Azure Kubernetes Serviceの責任者であるMicrosoftのBrendan Burns氏は、「クラウドのためのVisual Basic」を望んでいる。
Kubernetes は現在、巨大な存在となり、特にクラウド環境において、ベアメタルに代わってコンピューティング展開の最も一般的な単位として VM が使用されるようになったのと同様に、仮想マシン (VM) に代わるコンピューティング インフラストラクチャの未来として認識されています。
Kubernetes以前にBorgに携わっていたホッキン氏は、5年を経て今、Kubernetesをどう感じているのだろうか?「非現実的でありながら、同時に退屈でもある」と、彼はKubecon Europeで語った。「GKEは巨大で成長中のビジネスであり、私もその実現に貢献してきました。しかし、根本的な問題は昨年と同じです。」
何が問題なのでしょうか?「ネットワークとストレージの統合は常に困難です。複数のクラスタを持つ顧客が増えているため、マルチクラスタは非常に人気があります」と彼は言いました。「スケールも同様です。」
ホッキン氏は、クラスター全体を必要に応じて解体したり交換したりできるものとして扱うというアイデアに興味を抱いている。「ブルーグリーンクラスターは、私が予想もしなかったものです。クラスターを家畜のように交換することでアップグレードするのです」と彼は語った。「まだ初期段階ですが、非常に期待しています。」
KubernetesとBorgの違いは何でしょうか?「K8sとBorgは細部では大きく異なりますが、思想的には非常に似ています」とホッキン氏は言います。「BorgにはK8sのようなネットワークモデルはありません。BorgアプリはBorgで動作するように記述されているため、より明確な指示を与えることができます。Borgアプリは非常に均質で、ライブラリ、RPCシステム、認証も同じです」と彼は言います。一方、Kubernetesは既存のオープンソースシステムと連携するように設計されているのです。
「しかし、どちらも自動化、一時性、動的管理、そしてユーザーにとって(ほとんど)重要ではない詳細を気にする必要がないことに重点を置いています」とホッキン氏は語った。
GoogleはBorgからKubernetesに移行するのでしょうか?「私たちはすでにKubernetes上でいくつかのクラウドサービスを運用していますが、Borgには検索、広告、Gmail向けに14年以上にわたってカスタム構築された機能があり、Kubernetesはそれらのカスタム機能を必要としません」と彼は言いました。
Kubernetesについて、人々は何を誤解しているのでしょうか?「Kubernetesは一連の問題を一度に解決できるため、モノリスとして提示していますが、実際には各部分は独立しています」とホッキン氏は言います。「K8sのAPI部分は非常に薄く、ほぼすべての動作はAPIとは非同期で、完全に置き換え可能です。」
Kubernetesは複雑すぎるのでしょうか?「100を超えるAPIが連携して動作しているため、複雑です。多くの可動部分やサブシステムがあります。しかし、他のOSのようなものと比べてそれほど複雑だとは思いません。シンプルさと、それに伴う複雑さという概念に私は葛藤しています。もっとシンプルにすることはできるでしょうか?もちろんできますが、その代償はどれほどでしょうか?どの機能を削減してもよいのでしょうか?真実は、すべての機能が誰かによって使われているということです。」
今となっては、何を変えただろうか?「コンポーネントをもっと分離し、『モノリシックリリース』を減らすことに注力していたでしょう」とホッキンは言う。「ネストされた名前空間をもっと強く主張していたでしょう。クラスタのエッジの壁をもっと強固なものにしていたでしょう。APIの仕組みをIDL(インターフェース定義言語)として、APIのコア部分にもっと力を入れていたでしょう。」
参加者の一人は、「ブレンダンが敵側に移った後も、彼はまだ彼と話をしているのですか?」と尋ねた。「マイクロソフトは『敵』ではありませんし、私は貢献者を敵対視しないようにしています」とホッキンはきっぱりと言った。
翌日、バーンズ氏自身も厳しい質問を受けました。ホッキン氏と同様に、彼もKubernetesの成長を振り返りました。当初、これほど大きな規模になるとは思っていませんでしたか?「私たちはテクノロジー業界に空白があることに気づき、何かが現れてそれを埋めてくれるだろうと考えていました」と彼は言いました。「しかし、それがKubernetesであるという保証はありませんでした。当時は、他に選択肢がかなりありました。」
「方向性としては、仮想ノードに向かっています」
バーンズ氏は、Azure Kubernetes Serviceにおける仮想ノードの導入について講演しました。仮想ノードは、クラスター内でオンデマンドのリソースを使用する手段であり、VMノードのデプロイやVMベースの自動スケーリングの代替手段となります。
「仮想ノードに取り組んでいる人はたくさんいますが、Kubernetes における仮想ノードのサポートは全般的にまだ実験段階なので、まだ主流のユースケースではありません」と彼は語った。
「Kubernetesでは実現が難しい特定のワークロードに焦点を当てている傾向があります。例えば、仮想ノード内の各コンテナはそれぞれ独自のハイパーバイザー内にあるため、信頼できないコードをアプリケーションと並行して簡単に実行できる優れたソリューションです。私たちが目にしているのは、ほとんどの人が基盤となるマシンをあまり気にしていないということです。彼らはマシンをなくしたいと思っているのです。」
仮想ノードは「ポッドごとのリソース利用率に基づく料金体系のサーバーレスエクスペリエンス」の先駆けとなるのでしょうか?と別の参加者が質問した。「方向性としては仮想ノードに向かっていますが、Kubernetesコミュニティでさらに取り組む必要があります」とバーンズ氏は述べた。「私たちはそこに向かっていると思います。AKSにノードの自動修復機能が追加され、自動スケーリングも既に導入されているので、ある程度はほぼ実現できていると思います。」
開発者が犯す最大のミスは何でしょうか?「開発者が犯す最大の問題は、内部オブジェクトを外部APIとして公開してしまうことです」とBurns氏は言います。「突然ロックアウトされてしまい、クライアントを壊したくないのに、内部表現をイテレーションする必要がある、あるいはしたいという状況に陥ってしまうのです。これを『元に戻す』のは非常に困難です。」
将来について尋ねられると、バーンズ氏は「クラウドネイティブ開発者の市場が拡大することを望んでいます。私は依然としてクラウド向けのVisual Basicを望んでいます。近づいてはいますが、まだそこまでには至っていません。」と語った。
Visual Basicは当時革命的な存在であり、Windows開発を容易にし、カスタムアプリケーションの大量開発を可能にしました…しかし同時に、大量のスパゲッティコードとメンテナンス不可能なプロジェクトを生み出し、後継のVisual Basic for ApplicationsはStackOverflowの「最も恐れられている言語」リストでトップにランクインしました。Burns氏はVBの開発容易性について言及していたのであり、それに伴う負担について言及していたわけではないと思われます。®