KubeConChinaで見たKubernetesエコシステムを支えるツールたち

2018年12月26日(水)
松下 康之 - Yasuyuki Matsushita
KubeCon+CloudNativeCon Chinaで、KustomizeやConsul ConnectなどのKubernetesエコシステムの一翼を担うツールに関するセッションが行われた。

KubeCon+CloudNativeCon Chinaは、Kubernetesを中心としたエコシステムのユースケースやソフトウェアに関するセッションや、CNCFのホストするプロジェクトのアップデートなどが多数行われたが、全てに参加することはもちろん無理なので、その中から筆者が参加したセッションをいくつか紹介したい。

最初に紹介するのは、CNCF Serverless workgroupのアップデートセッションだ。これはKubernetesを中心としたサーバーレスを議論するワークグループのセッションで、Microsoft Serverless Dayでも言及された、Virtual Kubeletに関して議論が重ねられているのも、このグループになる。

参考:KubeCon China開催。MicrosoftのServerless DayでKubernetesの未来を垣間見る

CloudEvents

まずその中から、CloudEventsに関するIBMのDoug Davis氏とHuaweiのCathy Zhang氏によるセッションを紹介しよう。CloudEventsは、CNCFで標準化が進められているサーバーレスのためのメタデータ標準化作業といえるものだ。

プレゼンテーションを行うZhang氏(左)とDavis氏(右)

プレゼンテーションを行うZhang氏(左)とDavis氏(右)

CloudEventsについては、KubeCon@Europeで行われたこの動画の後半、つまり1つのイベントを受け取ってサーバーレスのファンクションがさまざまなクラウドプロバイダーで実行されるデモをみるのが一番早いだろう。

参考:The Serverless and Event-Driven Future

これはServerless workgroupにも参加するServerless.incのAusten Collins氏によるセッションの動画だ。前半のサーバーレスに関するプレゼンテーションもわかりやすいが、後半のS3にイメージファイルがUploadされたというイベントをきっかけに、複数のクラウドプロバイダーがイメージ認識を行って結果をTwitterに投稿するというデモは、イベントをトリガーにファンクションが実行されるという部分を分かりやすく見せているのが印象的だ。

ここではプラットフォームにロックインされずに、複数のプラットフォームでイベントデータを標準的に使うための必要性が理解できる。つまり各社がバラバラにイベントデータの持ち方、定義の仕方を始めれば、相互運用性が著しく損なわれ、結果的に業界に良くない影響を与えるということを見越して、CNCFが標準化に乗り出したということだ。

Davis氏もZhang氏も、Workgroupの議論のアップデートとして、CloudEventsの仕様がv0.1からv0.2になることを紹介。アプリケーションデベロッパーは「ファンクションを書くことと、それをつなげてどのようなワークフローで全体のアプリケーションを実行するのか?」に専念することが究極の目標だという。

プレゼンテーション:Introduction: CNCF Serverless WG&CloudEvents(PDF)

CloudEventsの現状

CloudEventsの現状

地味ではあるが、オンプレミスとパブリッククラウドの双方での相互運用性を確保するために、CloudEventsの活動は重要だろう。マルチクラウドのシステムを検討しているエンジニアは、要チェックのプロジェクトだ。

CNCFのTOCメンバーによるQ&A

次にCNCFのTechnical Oversight Committee(TOC)のメンバーであるHuaweiのTechnical VPであるQuinton Hoole氏と、CNCFのCOOであるChris Aniszczyk氏によるQ&Aセッションを簡単に紹介したい。これはTOCの概要と現状について簡単に説明した上で、参加者からの質問に答えるというものだった。TOCの説明に関してはこれと言って目新しいものはなく、Webでも知り得る内容だったので割愛するが、筆者が行った質問に対する回答を紹介する。

最初の質問として「クラウドネイティブなシステム開発に必須な言語をCNCFがホストする予定はあるのか?」というものだ。これは従来のモノリシックなシステムからIstioなどのサービスメッシュなシステムに移行すると、非同期かつ分散処理を前提にしたアプリケーションを書くことになるが、それに適した新しいプログラミング言語が必要ではないか、という問いかけだ。

これに対してAniszczyk氏は「今のところ、CNCFとして言語をホスティングするという計画はない」とつれない返事だったが、また「競争は必要だし、新しいソフトウェアや言語が出てくるのも当然だ。BallerinaMetaparticle(MicrosoftのBrendan Burns氏のプロジェクト)などにも注目している。YAMLがこんなにも多く使われるようになるというのは想定外だった」とも語っていた。Aniszczyk氏がYAMLに触れたのは、YAMLがKubernetesやAnsibleなどの構成ファイルとして利用され、本来の使われ方以外に拡がっていることに若干の懸念持っているということだろう。

一方Hoole氏は「新しい言語は新しいシステムのニーズが出てくれば、自ずと生まれてくるもの。RやRust、Scalaが出てきたのもそういうニーズがあったからだ。しかし1つの言語で全ての問題を解決できるものではない。ただし今の時点でクラウドネイティブのための言語が必要かどうかはなんとも言えない」と、やや新しい言語には懐疑的な見方を示した。

また「Gremlinが推進するカオスエンジニアリングをクラウドネイティブなシステムとして取り込む必要があるのでは?」という質問には、Aniszczyk氏は「カオスエンジニアリングが盛り上がっているのは知っているが、今のところCNCFとして何も決まってはいない」と答えた。Hoole氏は「本当に巨大なシステムを運用している企業においては、現実として障害が起こっているので、カオスエンジニアリングのツールを入れて実際にそれを再現するという必要性は低いのでは?」と答えた。どちらかと言えば、プロのためのモノというより実験として使うためのものという認識のようだ。

CNCFのChris Aniszczyk氏(左)とQuinton Hoole氏(右)

CNCFのChris Aniszczyk氏(左)とQuinton Hoole氏(右)

どちらも幅広く業界の推移を見守っており、BallerinaやMetaparticleなどの新しい動きもちゃんと目を配っている辺りが、さすがという印象だった。

最後に2つのプロダクトセッションを紹介しよう。

Consul Connect

1つ目はHashiCorpが開発をリードするConsulのセッションだ。これはサービスディスカバリーのためのソフトウェアであるConsulを使ってサービスメッシュのセキュリティを高めようとする新しい使い方「Consul Connect」を解説するもので、登壇したのはHashiCorpのDeveloper Advocate、Nic Jackson氏だ。

HashiCorpのNic Jackson氏

HashiCorpのNic Jackson氏

Consulはサービスディスカバリーのためのツールとして分散環境で活用されるものだが、それをIstioと組み合わせてマイクロサービスでも使えるようにしたものと言っていいだろう。単に組み合わせただけではなく、暗号化によってサービスメッシュ間のトラフィックをセキュアにすることも可能だというのがポイントのようだ。

Consul Connectの紹介

Consul Connectの紹介

またこのスライドにあるように、マイクロサービスだけではなくレガシーなアプリケーションとの組み合わせでも使えるという部分が、レガシーなソフトウェアを使わざるを得ないエンタープライズにとっては嬉しい部分だろう。Windowsでも動くというのは目新しいところだ。HashiCorpが手がけるVaultと連携することで、認証系システムとも上手く動くようになっているという。

Vaultとの連携イメージ

Vaultとの連携イメージ

参考:Consul Connectのドキュメント

Jackson氏が使用したプレゼンテーションは、以下から参照可能だ。

Consul - Modern Service Networking(PDF)

Kustomize

最後はGoogleのエンジニアが手掛けるオープンソースのKubernetesの構成をアシストするツール、Kustomizeを紹介する。これはKubernetesの構成ファイルにパッチを当てることで、Dev/Staging/Productionなどのように個々の構成ファイルに変更するためのツールだ。UNIXでの開発に詳しいエンジニアであれば、makeファイルの中身を変更するためにsedコマンドを使うという例えがわかりやすいかもしれない。

プレゼンテーションを行うJeff Regan氏

プレゼンテーションを行うJeff Regan氏

Regan氏は、Kubernetesのエコシステムにおいて構成を支援するツールだけで60以上もあり、カオスのような状態になっているという。Kubernetesがコンテナオーケストレーションのデファクトスタンダードとなった今、多くのベンダーやユーザーがツールを公開している状況に対して若干否定的な見方をしていると言えよう。特にYAML以外に新しいDSL(Domain Specific Language)を使うことで、Opsエンジニアに対してさらに大きな負担をかけることになるのを憂いているとも言える。

Kustomizeの概要

Kustomizeの概要

ここで紹介されたKustomizeは、新しい言語を使うこともなく、既存のYAMLファイルにパッチを当てることで複数の環境に対応するYAMLファイルを生成するコマンドラインツールであり、従来の運用プロセスにうまく適応できるという。

環境別の構成ファイルを生成するユースケースを紹介するRegan氏

環境別の構成ファイルを生成するユースケースを紹介するRegan氏

質疑応答の中で「Helmとの棲み分けはどうするのか?」という質問があった。HelmはKubernetesのパッケージマネージャーであり、すでにCNCFでホスティングされていることからも注目されているプロジェクトだ。この問いに対してRegan氏は、「Helmとは共存できる」と回答した。しかしRegan氏はHelmがバージョン3でLuaをスクリプト言語として取り込むことについて「さらに複雑さを増すことになる」かもしれないという。この辺りは、機能の豊富さとシンプルさのトレードオフと言えるだろう。

Helmとの共存も可能

Helmとの共存も可能

Regan氏のプレゼンテーションは以下のリンクから参照できる。

Kubernetes configuration customization(PDF)

Kubernetesのエコシステムが拡大する中で、このような隙間を埋めるツールはこれからも多数出現してくるだろう。その後に淘汰が始まり、数種類のツールに収束していくと思われる。Consul ConnectやKustomizeが、Kubernetesのツールエコシステムの中で、これからどのように成長していくのか注目したい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第6回

CNCFによる中国人のためのイベントだったKubeCon China

2018/12/28
KubeCon+CloudNativeCon Chinaの会場のようすを写真で紹介する。
仮想化/コンテナイベント
第5回

中国企業が目立ったKubeCon Chinaの2日目のキーノート

2018/12/27
KubeCon+CloudNativeCon China、2日目のキーノートはほぼ中国語で実施され、中国からの参加者を重視した内容だった。
仮想化/コンテナイベント
第4回

KubeConChinaで見たKubernetesエコシステムを支えるツールたち

2018/12/26
KubeCon+CloudNativeCon Chinaで、KustomizeやConsul ConnectなどのKubernetesエコシステムの一翼を担うツールに関するセッションが行われた。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています