こんにちは!グリフォンでSREをやってる徳田です。
KubeCon + CloudNativeCon Europe 2018が5月2日から開催されています!
その1日目のレポートをお伝えできればと思います。
KubeCon + CloudNativeCon Europe 2018 Day1
とレポートと言っておいて英語があまり聞き取れず・・・😭
幾つかのKeynote、Sessionと要点をかいつまんでいきます!
Keynote
How Good Is Our Code?
CNCFでの最近の話とコードの品質についての話でした。
- ATTENDEEは4300人
- CKADのBetaがOpenに
- 新しいMember
などがCNCFと今回開催のKubeConについての情報です。
また、タイトルの「How Good Is Our Code」では、バグの発見と修正をするオープンソースの力を借りてソフトウェアを構築するが、そのパッチをデプロイするのは安全なのか?という話でCIをするといいですよ!という話をしていました。また、自分たちのアプリはどうなの?というところでCIの名前の通り、継続的な改善を行うプロセスを構築するのが重要だと話していました。
Re-thinking Networking for Microservices
モノリシック、ハイブリッド、マイクロサービスとアーキテクチャのシフトが起こってきましたが、マイクロサービスに適したネットワークはなんだ?という話でした。
マイクロサービスでは
- サービス間の通信の抽象化
- 一貫性のあるポリシー・ロードバランシング・暗号化など
- サービスの変更なしに接続・管理・セキュリティについての簡単な方法
などの要求があります。これをクリアするために以下のようなサービスメッシュと呼ばれるツールを紹介していました。
- Istio
- Envoy
- Linkerd
- nginx
- conduit
CERN Experiences with Multi-Cloud Federated Kubernetes
CERNで扱うデータの量についてとKubernetesのフェデレーションについての話をしていました。
- 定期的なロードスパイク
- 単純化
- デプロイメント
というモチベーションからフェデレーションを行うことになり、kubefedを利用した事例を紹介していました。
CNCF 2020 Vision
CNCFの現状とこれからのビジョンについての話でした。2018年はKubernetesのような素晴らしいツールが出てきました。次の段階ではそれらのツールのAcceptanceを目指す、とのことでした。
そして2020年には、Kubernetes・コンテナ・サーバーレスなどの技術が使われ、サービスやアドオンの市場になり、「ただ自分のコードを実行する」という状態になるだろうという話をしていました。
Anatomy of a Production Kubernetes Outage
Monzoでは500以上のマイクロサービスがあり、
- Kubernetes
- etcd
- Linkerd
を使用してサービスを構築しているそうですが、ある日etcdのアップグレードをしようとした際の失敗談を話していました。
根本原因としては
- etcdに影響するgRPCクライアントライブラリのバグ
- KubernetesとLinkerdでの非互換性(特定バージョンにおいて)
- ヒューマンエラー
だったそうですが、復旧までに至る手順などが非常に面白かったです。
このKeynoteは是非スライドや動画を見ていただければと・・・!
Cloud Native Observability & Security from Google Cloud
このKeynoteでは基本的にツールとサービスの公開・宣伝でした。
を紹介していましたが、gVisorがよくわかりませんでした・・・w
後日触って記事にしたいと思います!
また、KubernetesのPodcastもスタートしているのでぜひ聞いてみてください!
Serverless, Not So FaaS
ServerLessといったときにはFunctionとEventの2つがありますが、今回はEventにおいてのServerLessについて、Cloud EventsとEvent Gatewayを利用したデモを披露していました。
(実はその前にデータについての話やEventでのServerLessのアーキテクチャについて話しているのですが・・・。是非動画をみてください!)
デモではS3にテキストファイルをアップロードすると、そのイベントをSubscribeしているEventGatewayが指定のFunctionを呼び出し、テキストファイルを翻訳してS3にアップロードするという処理を行っていました。
Session
gRPC Load Balancing on Kubernetes
gRPCのロードバランシングの手段についてのセッションです。
ロードバランシングのコンセプトとして
- Client LB
- Proxy LB
があり、それぞれ構築するにあたってProxy LBは
- Envoy
- nginx
サービスメッシュを使ったアーキテクチャでは
- Istio
- Linkerd
があるそうです。
Client LBでは普通にシンプルなラウンドロビンのLBを使う、またClient Lookaside LBではgrpclb protocolを用いて実現できるそうです。(ただし、grpclbのserverの実装がまだ公開されていない・・)
そして上記のツールを使った構成の例を出していました。
gRPCはバランシングが難しいという問題点があります。(プロトコルがHTTP2でセッションが持続してしまう)
この対策としてこのセッションでは
- 定期的にストリームをリスタートする
- 接続に対してMAX_CONNECTION_AGEを設定する
- API設計する時に考慮する
と示していました。
正直このセッションではこの一番最後のところだけ聞ければよかったのかな・・・w
Securing your Kubernetes Delivery Pipelines with Notary and TUF
Docker Imageに署名をして信用できるアプリだけを本番環境で動かそう!というところからTUFとその実装であるNotaryの話をしていました。
また、KubernetesのAdmission Controllerとして実装されたPortierisというツールを紹介していました。こちらはKubernetesのMutating Webhookを利用してNotaryと連携をし、KubernetesクラスタにImageのポリシーを指定できるAdmission Controllerでした。
Experience Report – Evolving a Continuous Delivery Workflow to Kubernetes using Spinnaker
SchibstedではCDにSpinnakerを利用しています。また、FIAASという1つのテンプレートファイルから複数のKubernetesのリソースを作成してくれるツールを作ったそうです。
Spinnakerのkubernetes providerがv2になってからはFIAASとSpinnakerのマニフェストベースのデプロイメントを使ってCDを行っているようです。
最後に
英語は一先ず置いておいて・・。どのSessionも非常に面白い事をやっていて、とても楽しいし非常に勉強になります。KubeCon最高!
KeynoteやSessionのスライドの幾つかはアップロードされており、後ほど動画の方のアップロードされるはずなのでそちらも確認してみていただければと思います!
それではDay1はここまでです。Day2の記事もお楽しみに!