はじめに
KubeCon + CloudNativeCon China 2018 に参加してきたので、面白かったプレゼンテーションについて紹介します。特にKubernetesでKubernetesを管理するような話が多く、個人的にも(会社的にも)興味があったのでそういった話を中心にセッションを選びました。
セッションの動画はYoutubeに公開されているので、より詳しい話はそちらを参照してください。
Comprehensive Performance Benchmark on Various Well-Known CNI Plugins
- CNIの様々な比較
- デフォルトの設定での比較なので、このまま判断に使うのは難しいが、比較項目は役立ちそう
- TCPスループット、TCPレイテンシ、TCPスループットvsパケットサイズ、UDPスループットvsパケットサイズ、CPU使用率、Podがネットワークに繋がるまでの時間、ネットワークポリシーの量とレスポンスタイムの関係
- CalicoはデフォルトがIPIPだったようで、残念(BGPだとどうなるのかが気になった)
- Concurrentは次回にやりたいという
Throughput & Latency
Protocol & Packet Sizes
CPU Overhead
Network Launch Time
↓flannelはPodを作ってからネットワークが使えるようになるまでの時間が長い
感想
この数字そのものはデフォルトの設定ということで、改善の余地があると思われるが、CNIプラグイン選定の際のベンチマークの取り方という点で非常に参考になる内容だった。
Node Operator: Kubernetes Node Management Made Simple
KubeCon + CloudNativeCon China 2018: Node Operator: Kubernetes Node Managemen...
- AlibabaのKaaSで利用されているNode Operatorの紹介
- Meta-ClusterでNode Operator, Kube-on-Kube-Operatorが動作
- Biz-ClusterのMasterは Node OperatorがMeta-ClusterのNodeとしてマシンをセットアップし、Kube-on-Kube-OperatorがマスターコンポーネントをPodとしてデプロイ
- Biz-ClusterのWorkerは Node Operatorがマシンをセットアップ、上記Masterのメンバとして登録する
- 最初のクラスタはminikubeで一時的に作ると言っていた。
Evolving Sigma: Adapting Kubernetes at Alibaba
KubeCon + CloudNativeCon China 2018: Evolving Sigma: Adapting Kubernetes at A...
-
2018年Sigma3.0からKubernetesベースとなった(2017 Sigma2.0はSwarmベースだったらしく、かなり頻繁に作り直しているようだ)
-
バッチジョブとKubernetesのPodを共存させてリソースの効率化を図っている
-
Sigma3.0への以降はクラスタを2つ用意するのではなく、1つのマシンに新旧2つのエージェントを共有させ、スケジューリングを独自のUnifiedSchedulerで行うことで実現している。(力技感
-
dragonflyの活用
-
Kubernetesを拡張している
Model and Operate Datacenter by Kubernetes at eBay
KubeCon + CloudNativeCon China 2018: Model and Operate Datacenter by Kubernet...
- eBayがデータセンターをCRDで管理している話
↓このような時代に終りを告げる
↓時代に合わせてインフラをも刷新し続けてきた
-
次のようなCRDを用意
-
アップグレードはRackByRackでローリングアップデート
-
Kubernetesクラスタもこれで作っている
- まずはSalt masterをこの仕組みで作る
- Kubernetesの構築はSaltのrepoで管理されている
-
StatefulなアプリケーションはKubernetesにのせずにこの仕組みで管理することもできる
Deep Dive: CNCF K8s-Conformance WG
KubeCon + CloudNativeCon China 2018: Deep Dive: CNCF K8s-Conformance WG - Zef...
- せっかくなのでDeepDiveも見てみる
- Conformanceテストの時間を短くする方法
- まずは並列でテストを行う
- タイムアウトを伸ばす
- GFWに阻まれてうまく実行できない
- 客席にいたDan Khonが中国にもミラーを用意する予定がある、とアナウンスしていた
- Conformanceテストを追加する要件について紹介
- Conformanceテストのドキュメントについて紹介 テストが失敗した時などに役立つとのこと。
- k8s-conformance/KubeConformance-1.11.md at master · cncf/k8s-conformance · GitHub
- このドキュメントはソースコードから生成することができる
- 途中から客席にいるConformanceTestに詳しい人(偉い人?)が質疑応答に応じはじめて、もうお前前へこいよ 的な展開になった。DeepDive感を感じました。
Seamless Integration - Take Kubernetes into your Existing Monitoring Stack
KubeCon + CloudNativeCon China 2018: Seamless Integration - Take Kubernetes i...
Kubernetes以前から存在するモニタリングシステムとKubernetesのモニタリングをどのようにつなげるのかという話。
基本的にはメトリクスをKafkaに送って、既存のモニタリングシステムに送り込むという仕組み。
- cAdvisorをDaemonSetでデプロイして、そのメトリクスを収集する
- PrometheusのサイドカーとしてPromQLを定期的に実行し結果をKafkaに送信する
- PrometheusのRemote_writeの送信先に独自のアダプタを設定し、そのメトリクスをKafkaに送信する
- ExporterをScrapeするGoのプログラムを自前で書いてそのメトリクスをKafkaに送信する
という方法を紹介。それぞれのPros,Consも表にしてある
その他
会場に卓球台がある
夜は謎の龍や太鼓の演奏
目の前でみかんをすりつぶしてジュースにする自販機
まとめ
Kubernetesを基とした独自のクラウド基盤についての話をたくさん聞くことができた。これも中国という特殊な環境が生み出したものであると感じました。
また、中国には巨大なIT企業がいくつもあり、相当のコストをかけてインフラを開発・運用していることを知りました。
Z Labでは、Kubernetes as a Serviceを開発しています! この記事で紹介したようなKubernetesでKubernetesを管理する話に興味のあるエンジニアの方を募集しています!
この記事はZ Lab Advent Calendar 2018 の記事として業務時間中に書きました。