お久しぶりです、金井です。
本年も様々な情報を発信していきますので、引き続きよろしくお願いいたします。
2018年のIDCFは、データセンター・クラウド業界の「本場を知る」をキーワードに、42名の社員が12ヶ国、18のイベント/企業を訪問しました。 今後何度かに渡り、各イベントの参加レポートを当ブログで紹介していきます!みなさんご期待ください!
はじめに
本記事は、2018年4月30日から5月4日までデンマークのコペンハーゲンにて開催されました、KubeCon + CloudNativeCon 2018 Europeへの参加レポートです。コンテナOrchestratorとして、事実上のデファクトスタンダードとなったKubernetesやその周辺のエコシステムについて、最新情報を収集・体感することを目的として参加しました。
少しでも当日の雰囲気を感じていただけたらと思います。
なお、セッションの資料はイベントページのScheduleリストでセッションの詳細を選択するとダウンロードが可能です。(2019年1月時点)
KubeCon + CloudNativeCon 2018 Europe概要
- 日程:4月30日~5月1日:各種スポンサーイベント 5月2日~4日:本イベント
- 場所:Bella Center @コペンハーゲン(デンマーク)
- 規模:全体で4,300人の参加(過去最高)、日本人も40人以上参加
KubeCon自体は同時に最大11セッションが並行して行われるため、目的をある程度絞ってセッションを選ぶ必要がありました。私が参加したセッションは以下のジャンルです。
- 5月1日:OpenSDS Mini Summit
- 5月2日:KubeCon 2018 Europe(Istio、Service Meshのセッション中心)
- 5月3日:KubeCon 2018 Europe(CNIなどコンテナ間Networkのセッション中心)
- 5月4日:KubeCon 2018 Europe(コンテナの永続ストレージのセッション中心)
参加前の課題意識・モチベーション
KubeConに参加する前に私が思っていた課題意識・モチベーションは次のとおりです。私が根っからのインフラエンジニアであることから、アプリや利用例ではなく、本番環境への実装などインフラよりな内容がほとんどです。
- コンテナOrchestratorはKubernetesがほぼデファクトとなったが、Kubernetes上でService Meshという考え方、および実装の一つであるIstioが熱いので、その理由を把握する
- コンテナを本番利用ではインフラ(特にネットワークと永続ストレージ)の実装で課題が出てくると想定しているが、その課題と解消法について最新情報を知る
- CI/CD環境を実現して開発スピードを上げるためのヒントを探す
イベント内容の紹介
5月1日:OpenSDS Mini Summit
OpenSDS Mini Summitは、Huawei・IBMなどがスポンサーとなり、コンテナ環境でのPersistent Storage(不揮発性ストレージ)に関する話題を集めたサミットです。参加者は発表者含めて20名ほどでした。
OpenSDSとは
ストレージとアプリケーションの間のプラグインをオープン化しようとする取り組みのことです。
ストレージはベンダーの独自機能が多々あり、統一的なプラグインの開発は難しいとされています。ただ、Hyperscaleな基盤では様々なストレージを同じインターフェースで使うことにより、ユーザーにとってはストレージのベンダー依存性を減らすことができると期待されています。OpenSDSは、OpenStack用StorageやKubernetes環境でのPersistent Storageを提供するための利用が検討されています。
OpenSDS Mini Summit 2018 Copenhagenのアジェンダ
- Introduction (by Steven Tan, OpenSDS TSC Chair, Huawei)
- OpenSDS Aruba Release For OpenStack & Containers (by Rakesh Jain, OpenSDS TSC Vice-Chair, IBM)
- Data Mobility For Hybrid Cloud Transformation (by Kei Kusunoki, NTT Communications)
- OpenSDS 101: Introduction and Contribution Primer (by Xing Yang & Sean McGinnis, Huawei)
- What is the Container Storage Interface (CSI) (by Saad Ali, Google)
- LINSTOR: Reliable Storage for HA, DR, Clouds, and Containers (by Philip Reisner, Linbit)
- Managing and Protecting Persistent Volumes For Kubernetes (by Xing Yang, Huawei)
- SNIA Swordfish: Scalable Storage Management (by Alex McDonald NetApp, SNIA)
- Storage Design & Operations for Hyperscale Environment (by Yusuke Sato, Yahoo Japan)
- Storage Intelligence For The Data Center (by Allen Samuels, Western Digital)
- The KPN Managed Hybrid Cloud DataExchange (by Wim Jacobs, KPN)
OpenSDS Mini Summitに参加しての所感
セッション開始前にアジェンダを見ると、日本・中国あたりのユーザー・コントリビューターが多いと感じました。すでにOpenStack基盤を持っており、OpenStackのストレージプラグインであるCinderや、Software Defined StorageのCephをKubernetes環境で引き続きどう使うか、という課題を持っているのではないかと推測されます。
OpenSDSは昨年度本格的に立ち上がったばかりのOSSプロジェクトのため、参加者数から見てもまだまだこれから、という感触を受けます。しかしコンテナを商用環境で利用しようとすると、ネットワークと永続ストレージの実装がどうしてもネックになり、簡単に既存のシステムをコンテナ化できないという事が頻繁に発生します。この課題意識と、それを解消しようとするコミュニティの方向性は間違っていないと思いました。
Kubernetesがデファクトスタンダードになった今、IaaS Orchestratorとして流行っているOpenStackがどうなるか、ちょっと心配していました。今回、OpenStack Cinder, Manilaで行われた、ベンダーが違っても同じAPIで操作できるようになる仕組みを、OpenSDSが再利用してKubernetes向けストレージとなっていくことが分かりました。全てを1から作るよりかなり現実的だと感じます。
こういった動きは普段の業務からは全く見えていなかったので、新しい学びを得ることができました。
5月2日~4日:KubeCon 2018 Day1~Day3
全体の雰囲気としては、Keynoteでも言われたように「CI/CD」が一番注目されているようでした。セッション会場も一番広い場所が確保されており、それでも人が溢れていました。
本当の意味でのMulti Cloud環境をシームレスに実現するためにはKubernetesでも足りず、Service Meshを形作るIstio、Istioのコントロール下でリクエストをコンテナ間で負荷分散するEnvoyの役割が大きくなっているように感じました。通信の負荷分散だけではなく、アプリケーションのバージョンなどに応じた負荷分散(カナリアDeploy、ABテストなど)もコントロールできるのがEnvoyの利点とのことでした。
あるセッション会場のアンケートでも、Kubernetesを本番商用環境で利用しており、さらに秒間1万リクエスト以上を処理する大規模環境での利用者も多くいました。
印象に残った話 -- Keynote - Day1 Evening
■GoogleによるgVisorの発表
コンテナでマルチテナント環境をセキュアに実装するために、1コンテナ1仮想マシンという実装が幾つかのHypervisorで提供されてきました。そのような状況に対してGoogleは、仮想マシンは不要であり、仮想マシンを作ることによるオーバーヘッドを無くしつつ、セキュアなコンテナを実現するgVisorというOSSを発表しました。gVisorに関する記事は様々なメディアで公開されていますが、Hypervisorなしで同等のセキュリティを担保するという仕組み、およびその実装の公開が衝撃的でした。当日の様子を視聴することができます。
■Anatomy of a Production Kubernetes Outage
Monzo Bankにて発生した実際の障害の詳細を紹介したKeynoteです。金融機関の決済システムに関わる基盤でのクラスタ全断障害である事もあり、Keynoteとしては非常に珍しく、参加者が皆静かに聞き入っていました。当日の資料と動画が公開されています。
根本原因はgRPCのバグだったが、それを誘発するKubernetes 1.6前後でのAPI仕様変化に伴うLinkerdとの連携不具合も組み合わさり、障害がKubernetesクラスタ全体に波及。さらに、障害対応をする人間の事象確認が不十分で、間違った順番でプロセス再起動を実施してしまい、長期間ダウンした事が説明されました。
教訓として、Defense in Depth(多層防御)をすることが大切と訴えていました。実際、例えクラウドが全断しても顧客サービスが停止しないようなシステム設計をしていたため、Kubernetesクラスタ全断という障害時も、顧客影響はほぼ発生しなかったとの事。また、もっと監視を細かく実装していれば不具合を未然に発見できたかも知れないという反省もあったとのことでした。
さいごに
イベントでのテクニカルな最新情報については各セッションで多くのインプットがあり、とても書ききれない状態でした。参加前の課題意識に対応する情報は次のとおりでした。
- Istioはとにかく便利。本番リリースが成功 or 失敗の二択ではなく、部分的にリリースできるというのは精神的にも楽だし、開発の人はサービス間のネットワーク構成などを意識する必要がないため開発が捗る
- コンテナネットワークについては、CNIなどのコントロールプレーンがかなり成熟してきている。しかしストレージについては、2017年頃からKubernetesの永続ストレージが本格的に実装されてきているので、まだまだこれから。OpenStack Cinderとの連携というアプローチは、既存資産がある人にとっては朗報
- CI/CDについて、1日10回は本番Deployできるような文化にしなければビジネスの変化についていけない。ただし、KubernetesやCI/CDツールを導入することが目的ではなく、どんなスピードでビジネスの変化に対応するサービス開発をしたいのか、を先に考えるべき
引き続き、Kubernetes界隈の情報は積極的に拾っていこうと思っています。
本記事の締めとして、ネットワークや永続ストレージの実装に興味のあるインフラエンジニアの目線で、どんなセッションを選択したのかを掲載します。
Day1 参加セッション一覧
- Keynote - Day1 Morning
- Introduction to Istio Configuration - Joy Zhang, Google (Beginner Skill Level)
- Practical and Useful Latency Analysis using Istio and OpenCenus - Varun Talwar, Stealth Startup & Morgan McLean, Google (Intermediate Skill Level)
- Replacing NGINX with Envoy in a Traffic Control System - Mark McBride, Turbine Labs, Inc (Advanced Skill Level)
- Building Hybrid Clouds with Istio - Allan Naim, Google & Rohit Agarwalla, Cisco (Intermediate Skill Level)
- Performance and Scale @ Istio Service Mesh - Fawad Khaliq, VMware Inc, Laurent Demailly, Google & Surya V Duggirala, IBM (Intermediate Skill Level)
- Jenkins X: Easy CI/CD for Kubernetes - James Strachan, CloudBees (Intermediate Skill Level)
- Keynote -Day1 Evening
Day2 参加セッション一覧
- Keynote - Day2
- How to Get a Service Mesh Into Prod without Getting Fired - William Morgan, Buoyant, Inc (Any Skill Level)
- Kubernetes and the CNI: Where We Are and What's Next - Casey Callendrello, CoreOS (Intermediate Skill Level)
- GitOps for Istio - Manage Istio Config like Code - Varun Talwar, Stealth Startup & Alexis Richardson, WeaveWorks (Intermediate Skill Level)
- Global Container Networks on Kubernetes at DigitalOcean - Andrew Sy Kim, DigitalOcean (Intermediate Skill Level)
- CNI Intro – Bryan Boreham, Weaveworks & Casey Callendrello, CoreOS (Any Skill Level)
Day3 参加セッション一覧
- Keynote - Day3
- Kubernetes Storage Lingo 101 - Saad Ali, Google (Beginner Skill Level)
- Using Kubernetes Local Storage for Scale-Out Storage Services in Production - Michelle Au, Google & Ian Chakeres, Salesforce (Intermediate Skill Level)
- Container Storage Interface: Present and Future - Jie Yu, Mesosphere, Inc. (Intermediate Skill Level)
- Istio Tells me my Service has Slow Response Time, Now What? - Endre Sara & Enlin Xu, Turbonomic (Any Skill Level)
- Everything you Need to Know about Using GPUs with Kubernetes - Rohit Agarwal, Google (Intermediate Skill Level)
- Vitess and a Kubernetes Operator - Sugu Sougoumarane, YouTube (Intermediate Skill Level)