ホーム自己紹介ブログ
NO.21
DATE2019. 06. 01

【大阪・梅田】Kubernetes Meetup Tokyo 19 大阪サテライト- 2019年5月31日参加レポート

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

【大阪・梅田】Kubernetes Meetup Tokyo #19 大阪サテライト (2019/05/31 19:00〜)
# 概要 19回目の Kubernetes Meetup Tokyo をオフラインで集まって聞く会です。 Kubernetes Meetup Osakaのコミュニティキックオフも兼ねています。 # 内容 こちら をご確認ください。 # 行動規範 (Code of Conduct) について Kubernetes Meetupは、Kubernetesユーザが集まり、KubernetesやKubernetesを使ったソフトウェアについて情報交換、交流をするための勉強会です。勉強会の開催を通じて、Kubernetesのユーザが一堂に集まり、Kubernetesにまつわる様々な分野...
k8sjp-osaka.connpass.com

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

- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
www.youtube.com

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(?)の田中さんが通訳をされていたのですが、ものすごくわかりやすかったです。感謝です! あと、記憶力はんぱねぇ...。

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

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)です。 なんだそれは...?

Custom Resources
Custom resources are extensions of the Kubernetes API. This page discusses when to add a custom resource to your Kubernetes cluster and when to use a standalone service. It describes the two methods for adding custom resources and how to choose between them. Custom resources A resource is an endpoint in the Kubernetes API that stores a collection of API objects of a certain kind; for example, the built-in pods resource contains a collection of Pod objects.
kubernetes.io
KubernetesのCRDまわりを整理する。 - Qiita
Kubernetes CRDまわりを整理する。 KubernetesにはCustom Resource Definitions(CRD)という機能があります。CRDはKubernetes APIを拡張して独自のリソースを定義するものです。Kubernetesのリソースとは...
qiita.com

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

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

GitHub - kubeflow/trainer: Distributed AI Model Training and LLM Fine-Tuning on Kubernetes
Distributed AI Model Training and LLM Fine-Tuning on Kubernetes - kubeflow/trainer
github.com

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

OpenStack と Kubernetes の Service Discovery と L7 Loadbalancing を行う
OpenStack と Kubernetes の Service Discovery と L7 Loadbalancing を行う
techblog.yahoo.co.jp

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

Q&A

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

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

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

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

そのほか

参加者からの質問は、どれも鋭いものばかり。 適度な質問をしたいなとつぶやきました...。届かなかったけど...。 tweet

Osaka 会場

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

株式会社 Aiming
オンラインゲームの企画・プロデュース・開発・運営を行う会社です。
aiming-inc.com

会場場所は、グランフロント大阪タワー 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 へ貢献し続けていこうと思います。

そのほか (2)

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

レポート
クラウドインフラ

シェアする

フォローする

次のページ

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

前のページ

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

関連する記事

タグ「レポート」の記事

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

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

2019-12-16

レポート
Google
ブラウザ
Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

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

2019-07-27

レポート
クラウドインフラ
【増枠】Frontend de KANPAI! 7 - Going on 令和 - 2019年7月19日参加レポート

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

2019-07-20

レポート
フロントエンド

タグ「クラウドインフラ」の記事

Docker Image に 構造化テスト container-structure-test を試してみた

Dockerイメージ内の構造や設定が期待通りかどうかを検証する `container-structure-test` を知りました。container-structure-test GitHub リポジトリ。せっかくなので、試してみました。

2024-03-29

テスト
クラウドインフラ
BigQueryだけで完結するモック可能なユニットテスト手法

BigQuery、皆さん使っていますか? 私は、業務でBigQueryを使ったデータ構築をしています。品質担保のため、BigQueryのSQLに対してテストをしたいと考えています。本記事では、BigQueryだけで完結し、かつ、Mockデータを差し替え可能なユニットテスト手法について、紹介します。

2021-11-26

フロントエンド
クラウドインフラ
テスト
TikTokスクレイプ基盤をGCP上で構築してハマったこと

TikTokへスクレイプするバッチをGCP上で構築しました。GCP構築のシステム設計話と、その構築時に、ハマったことを共有します。

2021-08-28

サービス
クラウドインフラ
成果物
クローリング
← ブログ一覧へ