Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめて GCP/GKE で サービスを運用するまでの話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
m-yoshimo
August 07, 2019
Technology
1
340
はじめて GCP/GKE で サービスを運用するまでの話
m-yoshimo
August 07, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
A Gentle Introduction to Transformers
keio_smilab
PRO
2
1k
Evolution of Claude Code & How to use features
oikon48
1
580
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
130
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
430
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
190
Kaggleの経験が実務にどう活きているか / kaggle_findy
sansan_randd
7
1.4k
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
150
楽しく学ぼう!コミュニティ入門 AWSと人が つむいできたストーリー
hiroramos4
PRO
1
190
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
14k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
320
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
490
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
180
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Music & Morning Musume
bryan
47
7.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
390
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Agile that works and the tools we love
rasmusluckow
331
21k
Mind Mapping
helmedeiros
PRO
1
110
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
The Limits of Empathy - UXLibs8
cassininazir
1
250
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
670
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
Claude Code のすすめ
schroneko
67
220k
Transcript
はじめて GCP/GKE で サービスを運用するまでの話 Masanori Yoshimoto (@m_yoshimo)
Name: “Masanori Yoshimoto“, Nickname: “よしも“, Job: “フリーランスエンジニア“, Twitter: “@m_yoshimo“, Skills:
{ “WebRTC“, “Key value store“, “Onpremiss 2 Cloud Migration“, }, Career: “Search LinkedIn by name“ 自己紹介
今日のお話するテーマ
Kubernetes を使ったことがない僕が GCP/GKE でサービスを本番運用できるよ うになるまでに何を勉強したか
・これから Kubernetes をやりたい人 ・Kubernetes を運用している人で 新規メンバーにどう学習してもらうか 悩んでいる人 おもな視聴者ターゲット
・Vagrant、Docker、Packer の使用経験あり ・OpenStack on オンプレでサービス運用経験あり ・AWS 使用経験あり ・GCP 使用経験なし 僕のインフラ技術のバックグランド
(仮想化&クラウド関連)
Kubernetes との出会い
フリーランスになって 初めて参画した会社で使われていた
Kubernetes さっぱりなんだけど。。。
とりあえずドキュメントを読んでみた
よー分からん。。。^ ^;;;
Pod って何やねん? Service?アプリケーションのこと? でも ClusterIP とか書いてるし。。。 Ingress!某位置情報ゲーム?(違う!) 昔、僕もやってました (だから違う!!)
手を動かせば分かるだろう
公式チュートリアルやってみた ・日本語のアーキテクチャ説明 ・対話型チュートリアル (チュートリアルの説明文は英語) ・Cloud Console (ローカルに環境用意しなくて良い) https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/ 最初にやったこと
チュートリアルで覚えたこと ・kubectl コマンド ・基本的なアーキテクチャ ・Pod はコンテナを入れる箱 ・Node は Pod を入れる箱
(= VM) ・Service は Pod 間や外部との 通信方式を定義するもの
Rails アプリをローカルの Minikube で 構築してみる https://qiita.com/ttiger55/items/215cab36da848fba156b 2つ目にやったこと
・Rails app な Pod ・mysqld な Pod + Persistent Volume
・Ingress + Nginx Ingress Controller + ConfigMap
Minikube 使って覚えたこと ・NodePort とか ClusterIP の理解 ・PersistentVolume などの永続化 ・Ingress の使い方
(理解はまだ)
本番サービス同等のものを ゼロから GCP/GKE に構築してみる 3つ目にやったこと
すると、色々なところで詰まった ・Docker イメージはどこに置けば良いのか? ・Cloud SQL にアクセスできない ・外部公開 (外部 IP アドレス)
どうするの? ・git push 時にデプロイしたい ・Ingress 立てたけどバックエンドサービスが ないって怒られる。。。 ・etc...
問題のほとんどは Kubernetes ではなく GCP 依存な部分
・Container Registry ・Service Account ・VPC ネットワークと外部 IP アドレス ・Cloud DNS
・Cloud Build
一つ一つは難しい問題ではない ぐぐればすぐに解決する (Ingress だけ少し嵌ったけど。。。
GCP でやることと GKE でやることの 違いが分かってくる → 全体のアーキテクチャが 何となく見えてくる
k8s への理解も進む
・Cloud SQL Proxy ・Ingress の設定と Pod の ClusterIP ・Ingress と
GCP Load Balancer の関係
GKE 上でノードを増減させたりして遊ぶ では、その次は
遊ぶ上で重要なこと ・ワークロード画面やサービス画面を 見ながらやること ・mackerel などのモニタリング入れる
やったこと ・手動でノードの増減 ・Pod の Replica の数の設定変更 ・Rails の sidekiq コンテナ入れる
・CronJob 作ってみたり
ワークロードや Pod の詳細
mackerel 等のモニタリングツール
リアルタイムに状況が可視化される → 実際に何が起きているのか 理解しやすくなる
ここまできたら、 Kubernetes への拒否感はなくなってる
おさらい (学習したこと) 1. 公式チュートリアル 2. Minikube でローカルにアプリ構築 3. GCP/GKE にアプリを構築
4. GCP/GKE で遊ぶ!
実際に本番のサービスを運用して 発生した問題を解決していけば 自ずと成長する
・アプリでもつ秘密鍵の管理 ・ワーカーサービス (sidekiq) をアプリと 同居させたら CPU 詰まった話 ・cloudsql proxy を別
Pod にしたら CPU Request 無駄に使っちゃった
この辺りの話を聞きたい方は 是非、次の Cloud Native Kansai で!