<

【大阪・梅田】Kubernetes Meetup Tokyo

大阪から Kubernetes Meetup Tokyo に参加できるとのことで、こちらに参加してきました。 Kubernetes の生みの親である 3 人の内の 1 人の Joe Beda から、Kubernetes の歴史の経緯について教えて頂きました。 その話がとてもわかりやすく、なるほどなと思ったので、ぜひとも共有したいと思います。

https://k8sjp-osaka.connpass.com/event/131981/

※ 以降の内容は、私なりの解釈が入っており誤った認識かもしれません。ご了承下さい。 発表の内容は全て Youtube にありますので、そちらが正しいものです。ご参考下さい。

https://www.youtube.com/watch?v=ETHGx8_Q-1k

Who is Joe Beda ?

Joe Beda は、Kubernetes の co-founder(共同創設者/最初に開発した 3 人のうちの 1 人)/ 昨年 VMware に買収された Heptio の CTO / O'Reilly「Kubernetes: Up & Running」 (邦題「入門 Kubernetes」)の共著者で、現在も Kubernetes をリードしている 1 人です。今回は、Kubernetes のこれまでと未来についてお話いただきます。

https://k8sjp.connpass.com/event/126207/

Kubernetes の最初のコミッターで、超有名人。 Google で働いていたときは、Kubernetes や Compute Engine を作っていたそうです。

Joe さん曰く、プラットフォームで開発する上でおもしろいことは、下記2点のバランスだと仰っていました。

  1. ユーザーが簡単に使ってもらえる事
  2. 想定していなかった使われ方があった場合の柔軟性

私なりの解釈で言うと、例えば、GCP というプラットフォームの中で、GKE を使うとします。 ボタンをポチポチするだけでクラスターが作成されますよね。簡単で使ってみたくなります。

ただ、簡単だけだと細かい要求を満たせないので、オプションを設定できるようにしたり、 カスタマイズしやすいものへ改善されていきます。柔軟性ってことでしょうか? この柔軟性をしすぎると複雑になってしまい、ユーザーが使ってくれなくなる恐れがあります(マニアックなユーザーは残るかもしれないけど)。 そこのバランスが大切なのかなと思いました。

Joe さんの詳細な説明はこちらです。

The origins and future of Kubernetes (en/英語)

Joe さんは英語で話されてました。 CPCAmerica(?)の田中さんが通訳をされていたのですが、ものすごくわかりやすかったです。感謝です! あと、記憶力はんぱねぇ...。

https://twitter.com/mumoshu/status/1134438272518635521?s=20

※ 以下、@‏apstndb さんの要約 Tweet を参考にしました。神!!!

https://twitter.com/silverbirder/status/1134406467744804864?s=20

kubernetes の歴史

Borg の誕生

Google では、BigData を処理するためのMapReduceを開発していました。 MapReduce を扱うために、GlobalWorkQueue(GWQ)というものを開発され、これは主にバッチのために作成されたものでした。そこからバッチだけでなく、リアルタイムに実行したい(検索など)サービスに対応するために生まれたのが Borg だそうです。 Google のような大規模な検索であれば、数%の効率 Up でも大きなコスト削減につながるメリットがあります。 これが、Kubernetes の元となりました。

Kubernetes の誕生

Google で Borg を開発を進めていく中で、世の中は仮想マシンを扱うユーザーが多かったそうです。 Borg はプロプライエタリなソフトウェアだったため、Borg の世界を知ってほしい、開発者を引き込みたいという願いから、 OSS として Kubernetes が誕生しました。 また Kubernetes は、API ドリブンで開発者の生産性を上げるというのが先で、効率やセキュリティは後からついてきたそうです。

Kubernetes の魅力

Kubernetes とは、「コンテナオーケストレーター」と多くの人は知っていると思います。普及した大きなポイントですね。 他の観点で「1つのデータベースだけでクラスタを管理している設計」が魅力的だという話がありました。 (勝手な解釈かもしれません。すみません)

kubernetes overview
kubernetes overview

Kubernetes では、クラスタの状態を管理するために分散型 KVS であるetcdを使っています(その他の状態管理はキャッシュしているそうです。)。 etcd には、APIServer を経由しなければアクセスできないため、一貫したデータの維持が実現できます。 その etcd の周りにある、ビジネスロジックを実現するコントローラー(Scheduler, Controller Manager)が価値を提供します。 例えば、Pod を Node にアサインしたり、エンドポイントを提供したり、レプリケーションしたりなどなど...。

kubernetes の control plane である、APIServer, Scheduler, Controller Manager があれば、シングルノードでもマルチノードでも動きます。 kubernetes を DockerForMac で動かしたときは、そういえばシングルノードでしたね。マルチノードってイメージでしたけど。

kubernetes jazz Improv
kubernetes jazz Improv

Kubernetes はコンテナオーケストレーションとよく言われますが、事前にすべてがプランされたオーケストレーションではなく、ジャズのように即興で計画して組み立てていくものに近い思想だそうです。 私は音楽に疎い人なのですが意味は理解しました。(笑)性格的には即興は苦手っす。

CRD と Operators

Pod や Replication,Deployment など様々なリソースがあります。 ただ、Kubernetes が持っていないものを実装するにはどうすればよいのでしょうか。 そこで、Custom Resource Definitions (CRD)です。 なんだそれは...?

https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/

https://qiita.com/cvusk/items/773e222e0971a5391a51

要は、Pod や Deployment のようなリソースを独自に作ることができるのですね。おぉなんだそれ! 独自に機能を作るためには、Custom Resource と Costom Controller が必要になり、両方をあわせて Operators というものが生まれました。

例えば、下記のようなものがあります。 https://github.com/oracle/mysql-operator

https://github.com/kubeflow/tf-operator

Yahoo では、gimbal という OSS を使って Kubernetes を導入したみたいです。 https://github.com/heptio/gimbal

https://techblog.yahoo.co.jp/advent-calendar-2018/oss-gimbal/

詳しくは分かりませんが、こういった拡張しやすい機能があるおかげでドンドン普及するのだなと勉強になりました。

Q&A

Q1. StatefulSets には今回触れられなかったが、どういう扱いなのか

https://twitter.com/apstndb/status/1134409892033261569?s=20

Q2. スケーラビリティに関して

https://twitter.com/apstndb/status/1134410827627487232?s=20

Q3. Kubernetes はなぜ etcd を使っているか

https://twitter.com/apstndb/status/1134411776009785345?s=20

https://twitter.com/apstndb/status/1134412148237512705?s=20

https://twitter.com/apstndb/status/1134412317439844352?s=20

Q4. Virtual Kubelet とか k3s みたいなエッジで活用する動きがコミュニティでは感じられるが、どう見ている?

https://twitter.com/apstndb/status/1134413224839745536?s=20

https://twitter.com/apstndb/status/1134413431316987904?s=20

そのほか

参加者からの質問は、どれも鋭いものばかり。 適度な質問をしたいなとつぶやきました...。届かなかったけど...。 https://twitter.com/silverbirder/status/1134412867988480000?s=20

Osaka 会場

会場提供は、株式会社 Aiming さんでした。

https://aiming-inc.com/ja/

会場場所は、グランフロント大阪タワー B の 18 階にありました。(高い!) 今回使わさせて頂いた場所は、会議室でしょうか。 30,40 人ぐらい入れるスペースで、清潔感がありました。

kubernetes osaka satelite aiming
kubernetes osaka satelite aiming

東京との中継は、ときどき音声が途切れてしまうときもありますが、しっかりと写っていました。 ただ、コンテンツとしては、YouTube にあげらているので、わざわざ Osaka に出席しなくても良いのでは?とも思いました。

しかし、それでも Osaka に出席しても良い面もあるのかなと思います。

  • 他の方とのコミュニケーションが取れる
  • 一緒に発表を聞いて議論ができる

まあ、私はコミュ障なので、ほぼなかったですが...。

改善ポイントとしては、中継地からも質問ができるようになってくれたら良いなと期待しています。

最後に

Kubernetes について、どういった経緯で誕生したのか、また CRD についても勉強になりました。 また、Kubernetes とは違うのですが、「OSS のちから」というものがエンジニアの世界では大事だと強く感じました。 普段エンジニアが開発する上で、ほぼ間違いなく OSS を使っています。 エンジニアにとって、OSS は不可欠な存在であり、利用するばかりです。

Google がしたように、「広く使ってほしい、エンジニアを巻き込みたい」という願いから、 OSS として Kubernetes が広まっていった一要因と思いました。これが有償ならどうだったのでしょうか。 ここまで普及したのでしょうか。

OSS に貢献する企業は、日本にも多く存在します。 個人でも OSS へ貢献できますし、OSS Gate という初心者向けのものもあります。 Kubernetes のコントリビューターは、ちょっとハードルが高いですが、 私もエンジニアとして OSS へ貢献し続けていこうと思います。

そのほか

拙い文章なのに、最後まで読んでいただき、ありがとうございます。 twitter をしていますので、フォローしてもらえるとうれしいです。(silverbirder)

Tags

GDG DevFest Tokyo 2019に参加したら、Webの未来にワクワクした

2019-12-16

GDG DevFest Tokyo 2019というイベントに参加してきました。最近はプライベートの都合上、中々時間が取れていませんでした。しかし今回、会社の都合上、良い感じに時間を確保できたため、こちらのイベントに参加してきました。`大阪→東京` でわざわざ新幹線を使ってまで参加しましたが、それに見合う発見が多くありました。今回、私が学んだ内容について、報告しようかなと思います。...

Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

2019-07-27

今回、東京で開催されましたCloud Native Days Tokyo 2019に2日間とも参加してきましたので、報告しようと思います。セッション毎の報告というより、全体を通した感想を話そうかなと思います。...

【増枠】Frontend de KANPAI!

2019-07-20

今回はDeNAさん主催のFrontendのイベントに参加してきましたので、報告しようと思います。hashtagはこちら frokan イベント概要 「Frontend de KANPAI!」(以下、FROKAN)は、フロントエンドエンジニアやフロントエンドに興味がある人が集い、ドリンク片手にゆるく交流・技術交換ができるコミュニティを目指しています。...

AWS Summit Osaka 2019 2019年6月27日参加レポート

2019-06-29

大阪のグランフロント大阪で開かれました「AWS Summit Osaka 2019」に参加してきましたので、私の中で良かった3つのセッションを紹介したいなと思います。...

【増枠】Mix Leap Study

2019-06-27

今回は、ヤフー株式会社主催の下記セミナーに参加してきました。Google/Appleどちらも大好きで、けど海外カンファレンスにいけなかった私にとって、今回の報告会は<b>新鮮な内容</b>ばかりでした。その内容を記事に書こうと思います。...

【大阪】BMXUG勉強会 -Kubernates体験&Watson Discovery入門- 2019年3月27日参加レポート

2019-05-22

今回、k8sの体験を目的として参加したのですが、意外な収穫があったので、共有したく、記事を書くことにしました。...

【大阪】GCPUG Kansai 〜 Cloud Next Extended ~ - 2019年5月14日 参加レポート

2019-05-22

こちらの参加しましたので、ご報告します。hashtagはこちらです。next19extended 目的 2019/04/09 ~ 04/11 にサンフランシスコで開催された Google Cloud Next '19 San Francisco で発表された Google Cloud の 新サービスに関する解説や振り返りの内容がメインのイベントとなります!...

Go Conference 2019 Spring - 2019年5月18日 参加レポート

2019-05-21

https://gocon.jp こちらに参加してきましたので、ご報告します!...

Algolia Community Party in 京都 - 2019年5月10日 参加レポート

2019-05-11

Algolia Community Party in 京都 - 2019年5月10日。こちらに参加しましたので、ご報告までに記事を書こうと思います。...

Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

2019-07-27

今回、東京で開催されましたCloud Native Days Tokyo 2019に2日間とも参加してきましたので、報告しようと思います。セッション毎の報告というより、全体を通した感想を話そうかなと思います。...

一足遅れて Kubernetes を学び始める - 16. コンポーネント -

2019-06-10

前回 一足遅れて Kubernetes を学び始める - 15. セキュリティ -では、RBACによる権限について学習しました。今回は最後にKubernetesのコンポーネントについて学習します。...

一足遅れて Kubernetes を学び始める - 15. セキュリティ -

2019-06-07

前回 一足遅れて Kubernetes を学び始める - 14. スケジューリング -では、AffinityなどでPodのスケジューリングについて学習しました。今回は、セキュリティについて学習します。...

一足遅れて Kubernetes を学び始める - 14. スケジューリング -

2019-06-05

前回 一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -では、requestsやlimitといったヘルスチェックの仕方を学びました。今回は、Affinityなどによるスケジューリングについて学習します。...

一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -

2019-05-30

前回 一足遅れて Kubernetes を学び始める - 12. リソース制限 -では、requestsやlimitなどのリソース制限について学習しました。今回は、ヘルスチェックとコンテナライフサイクルについて学習します。...

一足遅れて Kubernetes を学び始める - 12. リソース制限 -

2019-05-29

前回 一足遅れて Kubernetes を学び始める - 11. config&storage その2 -では、storageについて学習しました。今回は、リソース制限について学習します。...

一足遅れて Kubernetes を学び始める - 11. config&storage その2 -

2019-05-27

前回 一足遅れて Kubernetes を学び始める - 10. config&storage その1 -では、configについて学習しました。今回は、storageを学びます。...

一足遅れて Kubernetes を学び始める - 10. config&storage その1 -

2019-05-23

前回 一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -では、様々なserviceを学習しました。今回は、config&storageのconfigを学びます。...

【大阪】BMXUG勉強会 -Kubernates体験&Watson Discovery入門- 2019年3月27日参加レポート

2019-05-22

今回、k8sの体験を目的として参加したのですが、意外な収穫があったので、共有したく、記事を書くことにしました。...

一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -

2019-05-15

前回 一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -でServiceについての概要を学びました。今回は下記を一気に学びます。...

一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -

2019-05-07

前回 一足遅れて Kubernetes を学び始める - 07. workloads その3 -でようやくworkloadsが終了しました。今回は、discovery&LBを進めようと思います。...

一足遅れて Kubernetes を学び始める - 07. workloads その3 -

2019-05-06

前回 一足遅れて Kubernetes を学び始める - 06. workloads その2 -にて、DaemonSetとStatefulSet(一部)を学習しました。今回は、StatefulSetの続きとJob,CronJobを学習します。...

一足遅れて Kubernetes を学び始める - 06. workloads その2 -

2019-05-05

前回 一足遅れて Kubernetes を学び始める - 05. workloads その1 -では、Pod,ReplicaSet,Deploymentの3つを学習しました。今回はDaemonSet,StatefulSet(一部)を学びます。...

一足遅れて Kubernetes を学び始める - 05. workloads その1 -

2019-05-03

前回 一足遅れて Kubernetes を学び始める - 04. kubectl -では、kubenetesのCLIツールkubectlを学習しました。今回は、目玉機能であるworkloadsについて学習します。...

一足遅れて Kubernetes を学び始める - 04. kubectl -

2019-05-02

前回 一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -では、RaspberryPiの環境にKubernetesを導入しました。無事、動作確認ができたので、さっそく学習していきたいです。...

一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -

2019-04-28

前回 一足遅れて Kubernetes を学び始める - 02. Docker For Mac -では、MacでKubernetesを軽く動かしてみました。DockerForMacでは、NodeがMasterのみだったため、Kubernetesを学習するには、ものたりない感がありました。そこで、RaspberryPiを使っておうちKubernetesを構築することになりました。...

一足遅れて Kubernetes を学び始める - 02. Docker For Mac -

2019-04-27

前回 一足遅れて Kubernetes を学び始める - 01. 環境選択編 -にて、Kubernetesを学ぶ環境を考えてみました。いきなりGKEを使うんじゃなくて、お手軽に試せるDockerForMacを使おうとなりました。...

一足遅れて Kubernetes を学び始める - 01. 環境選択編 -

2019-04-18

経緯 Kubernetesを使えるようになりたいな〜(定義不明) けど、他にやりたいこと(アプリ開発)あるから後回しにしちゃえ〜!!と、今までずっと、ちゃんと学ばなかったKubernetesを、本腰入れて使ってみようと思います。...

GDG DevFest Tokyo 2019に参加したら、Webの未来にワクワクした

2019-12-16

GDG DevFest Tokyo 2019というイベントに参加してきました。最近はプライベートの都合上、中々時間が取れていませんでした。しかし今回、会社の都合上、良い感じに時間を確保できたため、こちらのイベントに参加してきました。`大阪→東京` でわざわざ新幹線を使ってまで参加しましたが、それに見合う発見が多くありました。今回、私が学んだ内容について、報告しようかなと思います。...

Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

2019-07-27

今回、東京で開催されましたCloud Native Days Tokyo 2019に2日間とも参加してきましたので、報告しようと思います。セッション毎の報告というより、全体を通した感想を話そうかなと思います。...

【増枠】Frontend de KANPAI!

2019-07-20

今回はDeNAさん主催のFrontendのイベントに参加してきましたので、報告しようと思います。hashtagはこちら frokan イベント概要 「Frontend de KANPAI!」(以下、FROKAN)は、フロントエンドエンジニアやフロントエンドに興味がある人が集い、ドリンク片手にゆるく交流・技術交換ができるコミュニティを目指しています。...

Go Conference 2019 Spring - 2019年5月18日 参加レポート

2019-05-21

https://gocon.jp こちらに参加してきましたので、ご報告します!...

AWS Summit Osaka 2019 2019年6月27日参加レポート

2019-06-29

大阪のグランフロント大阪で開かれました「AWS Summit Osaka 2019」に参加してきましたので、私の中で良かった3つのセッションを紹介したいなと思います。...

【増枠】Mix Leap Study

2019-06-27

今回は、ヤフー株式会社主催の下記セミナーに参加してきました。Google/Appleどちらも大好きで、けど海外カンファレンスにいけなかった私にとって、今回の報告会は<b>新鮮な内容</b>ばかりでした。その内容を記事に書こうと思います。...

【大阪】BMXUG勉強会 -Kubernates体験&Watson Discovery入門- 2019年3月27日参加レポート

2019-05-22

今回、k8sの体験を目的として参加したのですが、意外な収穫があったので、共有したく、記事を書くことにしました。...

【大阪】GCPUG Kansai 〜 Cloud Next Extended ~ - 2019年5月14日 参加レポート

2019-05-22

こちらの参加しましたので、ご報告します。hashtagはこちらです。next19extended 目的 2019/04/09 ~ 04/11 にサンフランシスコで開催された Google Cloud Next '19 San Francisco で発表された Google Cloud の 新サービスに関する解説や振り返りの内容がメインのイベントとなります!...