2024.12.03
セキュリティ製品を入れても検出されず…被害事例から見る最新の攻撃トレンド 不正侵入・悪用を回避するポイント
Kubernetesで始める新しい開発(全1記事)
リンクをコピー
記事をブックマーク
青山真也 氏:本日は「Kubernetes で始める新しい開発」というテーマでお話しさせていただきたいと思います。
簡単に自己紹介なんですけど、私サイバーエージェントの青山と申します。普段はインフラエンジニアで主業務は主にGKEみたいなKubernetesサーバサービスのプラットフォームやKubernetes関連のアーキテクトも行っております。
コミュニティ活動もしておりまして、Kubernetesなどクラウド系のMeet upの主催をしていたり、あとは本の著者や登壇もしております。
このページで何が言いたいかというとKubernetesが超好きです。見てわかる通りなんですけど。
(会場笑)
みなさんKubernetesを知っていますか? 知っている方……。
(会場挙手)
お、けっこう多い。ということはみなさん当然スマホを持っているので、手のひらサイズのKubernetesクラスタも……。
(会場笑)
持っている方……。
(会場挙手)
1人……。どうでしょう。
Kubernetesクラスタを持っていれば、カフェでもオシャレな感じにできますし、飛行機でももちろん使えます。
ちなみに飛行機で使うときは、普通の人が見るとどう見ても爆弾なのでマジで気を付けてください。捕まらないか、すごくヒヤヒヤします。
今年のテーマは「羽化」ですね。Kubernetesはちょうど5周年です。5年間成長してきました。カンファレンスの参加者もどんどん伸びたり、マネージドサービスもほとんどすべてが対応したり、ベンダーも対応したり、非常にデファクトスタンダードなプラットフォームとなってきました。
今年のテーマは「羽化」ですが、私もこのKubernetesとともに3年間成長してきてKubernetes愛に溢れる人材になったので、今日はKubernetesの話をします。
そもそもKubernetesとCLOUD NATIVEって何か? Kubernetesを管理しているCNCF「CLOUD NATIVE COMPUTING FOUNDATION」という団体があります。
そこがCloud Nativeの定義を行っていて、疎結合性や復元力がある、管理しやすい、可観測である、自動化でアップデートしやすい。そういった特徴を持つシステムをオープンなテクノロジーを使ってスケーラブルに実現することが目的になっています。
なのでCloud NativeというのはKubernetesのためだけのものではなくて、Kubernetesを使うと実現しやすいものではあるんですけど、他にもAWS ECSなどのその他の手段というのもあります。
サイバーエージェントの話でちょっとお話させていただくと、AI tech studioではGKE互換のKubernetes基盤を作っていたり、ただKubernetesクラスタをデプロイをするだけじゃなくてKubernetes自体のソースコードに改良を入れるなどけっこういろいろやっています。GKEが対応しているContaner-nativeロードバランシングという機能も独自実装をするぐらい大好きです。
ちなみにスライド右上のキャラクターのAKE……うちのコンテナ基盤のマスコットキャラクターなんですけど「あくーえ」と言います。……シーンって感じですね。
(会場笑)
あとはAbemaTVでもけっこう早い段階からKubernetesを利用していたり、他にもいろんなプロダクトで使ったりしています。
実際問題なんですけどKubernetesを使うと何ができるのかというと、今日お話したいのは主に3つあります。1つ目はたぶんみなさんが一番想像しやすい「コンテナやアプリケーションの実行基盤」としてのKubernetes。もう1つが「X as a Service 基盤」としてのKubernetes。いわゆるマネージドサービス基盤みたいなものですね。
最後にお話したいのが、ここらへんでみなさんは引き気味にこっちを見る感じになると思うんですけど、本当に根本的なことを言うと、「分散システムフレームワーク」としてKubernetesがあるという話を今日はやっていきます。
1つ目の「アプリケーションとコンテナの実行基盤」です。KubernetesではYAML形式のマニフェストを書いて、それをKubernetesに登録すると、コンテナを起動したりロードバランサの設定をしてくれるものになります。
例えば、nginxをスケールして3台に溜めておいてほしいというのは、YAMLを書いて登録をしておくと自動的にやってくれますし、登録を1度しておくと何か起こってもセルフヒーリングして自動的に戻してくれたり、あとはロードバランサと自動的に連携してくれたり、オートスケールしてくれたりします。
あとはもともとKubernetesというのはGoogleのBorgというものをベースとして作られたオープンソースのソフトウェアになっているので、Googleが長年社内でやってきたクラスタマネジメントやワークロードの管理を行う洗練された自動化が使えるようになります。それによってさまざまなワークロードへ対応することが可能になってきています。
2つ目の「X as a Service 基盤」としてのKubernetesです。Kubernetes自体はプラットフォームのためのプラットフォームという言葉で表現されることもよくあります。例えばKubernetes上にDatabase as a Service基盤を作ったり、Queue as a Service 基盤を作ったり、そういったことが可能になります。例えば「MySQLのクラスタがほしいな」という場合は、マネージドサービスではAWSのRDSとかGCPのCloud SQLとかを起動すると思います。
Kubernetesでも「MySQLのクラスタほしいです」とマニフェストにReplica数やマルチマスタするかの簡単な設定を書くだけで、あとは自動的にMySQLのクラスタを作ってくれる仕組みもあります。万が一、MySQLのノードが1台落ちたとしても自動的に障害から復旧してくれたり、基本的にマネージドな自動化された仕組みを使うことができます。
なのでKubernetesはもうちょっと言い換えると小さなクラウドとしても見ることができます。Kubernetes上にDatabase as a ServiceやQueue as a Serviceなど、いろんなas a Service 基盤のプラットフォームを構築しておくと、デベロッパーがマネージドサービスっぽい基盤のシステムも使えるようになります。
最後に「『分散システムフレームワーク』としてのKubernetesです。Kubernetesのコアが何かというと、宣言的なAPIと分散システムのフレームワークだと思います。ReplicaSeではコンテナを複数個起動しておきます。例えば3つ起動しておくものを登録したら、そのときに3つのコンテナを起動して終わりではなくて、ControllerがKubernetesの中でずっと動いています。
このときControllerは何をしているかというと、ReplicaSetの例だと、登録されている状況を見つつクラスタに対してコンテナを起動したりしています。先ほども言った通り、ただ起動するだけじゃないという話は、Controllerが調整ループなどと言ったりするループプログラムをずっと回していて、あるべき状態に収束させることをやっています。
ループ処理では何をしているかというとObserve・Diff・Actという3つの工程を経ていて、現状を確認するのと、理想を現実の差分を計算して、その差分に対して何か処理をする流れになっています。
例えば2個しか動いていない状態だったら、Observeでは理想を現実を把握します。
それに対してDiffでは差分を計算する、するとコンテナが1つ足りない。
なのでアクションとしてnginxのコンテナを1つ立てるという。という処理をずっと繰り返しています。
結局これは何をしているのかというと、Controllerは運用ナレッジをプログラム化をすることによって自動化しています。ここが自動化されていないとすると、人が監視のアラートを見て「2個しか動いていないから手動で1個立てましょう」となると思うんですけど、そういうものをKubernetesではControllerによって自動化し、そのままノンオペレーションでやることができるようになっています。
Kubernetes内ではこういうControllerが非常にたくさん動いています。このControllerたちがいろいろな役割を担って非同期で動作することによって1つの分散システムを構成しています。
例えばMySQLの例だと「MySQLを立ててほしい」となったときにMySQLのスペシャリストにすべてを任せるじゃないですか。Kubernetesの場合、RDBだったらデータベースのスペシャリストの運用ナレッジから作られたControllerプログラムを使った自動化に任せることができます。そういった自動化の仕組みを使うことによっていろいろできると。
このControllerの仕組みはKubernetesでは拡張して実装できるようになっています。このMySQLを管理するコントローラプログラムもせっかくオラクルさんが作ってくれたものがあるので簡単に利用することができます。また、自分たちのドメイン特化な運用ナレッジを自動化したいとなったときに、自分で実装してControllerを実装することによって、今までやっていた運用を任せることができるのはKubernetesの非常に良いところです。
まとめると、この3つがKubernetesの良いところです。一番下が大事なところなので、雰囲気でもいいのでぜひ覚えていただけると幸いです。
ということで、ご清聴ありがとうございました。
(会場拍手)
関連タグ:
2024.11.26
タスクの伝え方が部下のモチベーションを左右する マッキンゼー流、メンバーが動き出す仕事の振り方
2024.11.27
何もせず月収1,000万円超…オンラインゲームにハマって起こした事業 大学中退し4社立ち上げ・2社売却した起業家人生
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.11.28
管理職の「疲弊感」がメンバーに伝わるリスク 部下の「働きがい」を育む6つのポイント
2024.11.25
仕事はできるのに、なぜか尊敬されない人が使いがちな言葉5選 老害化を防ぐために大切な心構えとは
2024.11.27
部下に残業させられず、自分の負担ばかり増える管理職 組織成長のカギを握る「ミドル層」が抱える課題
2024.11.27
仕事中の「今ちょっといいですか」が苦痛… いしかわゆき氏が語る、ADHD気質にマッチした働き方のヒント
2024.11.25
論理的に「詰める」マネジメントでは本質的な解決にならない マッキンゼー流、メンバーの理解と納得を得る接し方
2024.11.28
“新規事業が生まれない組織”に足りていないもの 「PoC貧乏」に陥らず、アイデアを形にするためのヒント
PR | 2024.11.29
検知が難しいサイバー攻撃が増加中 サイバーセキュリティの専門家を唸らせた脅威アクターの実例
長期投資の衝撃の真実!20年投資しても年率1.9%しか増えない!?
2024.10.04 - 2024.10.04
第1076回 ペライチ書評『みんなのフィードバック大全』
2023.06.06 - 2023.06.06
第765回 トレンド経営学『顧客に謝る基準とは?』
2022.04.18 - 2022.04.18
不機嫌な自分をやめるために!認知行動療法の専門家 中島美鈴先生新刊『脱イライラ習慣! あなたの怒り取扱説明書』発売記念【無料オンラインイベント】
2024.10.25 - 2024.10.25
ログミーBusiness リニューアル記念イベント開催
2024.11.29 - 2024.11.29