Submit Search
Upload
K8s(gke)をプロダクトに投入するまでの話
•
4 likes
•
3,619 views
Koki Shibata
Follow
geekNightの資料です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
OpenStack Summit Vancouver Summary
OpenStack Summit Vancouver Summary
Ikuo Kumagai
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
Issei Hiraoka
Githubのご紹介
Githubのご紹介
Salesforce Developers Japan
AITCオープンラボ: Pepper x IoT x Web
AITCオープンラボ: Pepper x IoT x Web
dsuke Takaoka
Hatohol introduction-20130830-hbstudy
Hatohol introduction-20130830-hbstudy
koedoyoshida
オープンソースBI勉強会Mongo-20140325
オープンソースBI勉強会Mongo-20140325
Hisashi Nakayama
Scala on gae
Scala on gae
Masaki Toyoshima
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ
直久 住川
Recommended
OpenStack Summit Vancouver Summary
OpenStack Summit Vancouver Summary
Ikuo Kumagai
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
Issei Hiraoka
Githubのご紹介
Githubのご紹介
Salesforce Developers Japan
AITCオープンラボ: Pepper x IoT x Web
AITCオープンラボ: Pepper x IoT x Web
dsuke Takaoka
Hatohol introduction-20130830-hbstudy
Hatohol introduction-20130830-hbstudy
koedoyoshida
オープンソースBI勉強会Mongo-20140325
オープンソースBI勉強会Mongo-20140325
Hisashi Nakayama
Scala on gae
Scala on gae
Masaki Toyoshima
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ
直久 住川
Osc tokyo 2014_0228
Osc tokyo 2014_0228
Yamato Kazuhiro
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
Tadahiro Ishisaka
Chainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するには
Keisuke Umezawa
Argo CD Deep Dive
Argo CD Deep Dive
shunki fujiwara
監視とは何か ~監視エンジニアのスキルと成長~
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告
Akira Yoshiyama
ALGYAN git and GitHub online conversation
ALGYAN git and GitHub online conversation
Atomu Hidaka
Scalaでもgae
Scalaでもgae
Masaki Toyoshima
OpenStack Octavia入門
OpenStack Octavia入門
Takashi Kajinami
Bitbucket Pipelinesについて
Bitbucket Pipelinesについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
masahito12
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
Yusuke Naka
2018 07-19dist
2018 07-19dist
Yuji Oshima
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
Hisazumi Arimoto
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
lestrrat
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
Yahoo!デベロッパーネットワーク
st2-docker ことはじめ
st2-docker ことはじめ
Shu Sugimoto
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
recotech
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Takashi Kanai
More Related Content
What's hot
Osc tokyo 2014_0228
Osc tokyo 2014_0228
Yamato Kazuhiro
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
Tadahiro Ishisaka
Chainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するには
Keisuke Umezawa
Argo CD Deep Dive
Argo CD Deep Dive
shunki fujiwara
監視とは何か ~監視エンジニアのスキルと成長~
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告
Akira Yoshiyama
ALGYAN git and GitHub online conversation
ALGYAN git and GitHub online conversation
Atomu Hidaka
Scalaでもgae
Scalaでもgae
Masaki Toyoshima
OpenStack Octavia入門
OpenStack Octavia入門
Takashi Kajinami
Bitbucket Pipelinesについて
Bitbucket Pipelinesについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Terui Masashi
What's hot
(11)
Osc tokyo 2014_0228
Osc tokyo 2014_0228
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
Chainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するには
Argo CD Deep Dive
Argo CD Deep Dive
監視とは何か ~監視エンジニアのスキルと成長~
監視とは何か ~監視エンジニアのスキルと成長~
OpenStack Summit in Hong Kong 参加報告
OpenStack Summit in Hong Kong 参加報告
ALGYAN git and GitHub online conversation
ALGYAN git and GitHub online conversation
Scalaでもgae
Scalaでもgae
OpenStack Octavia入門
OpenStack Octavia入門
Bitbucket Pipelinesについて
Bitbucket Pipelinesについて
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
Similar to K8s(gke)をプロダクトに投入するまでの話
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
masahito12
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
Yusuke Naka
2018 07-19dist
2018 07-19dist
Yuji Oshima
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
Hisazumi Arimoto
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
lestrrat
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
Yahoo!デベロッパーネットワーク
st2-docker ことはじめ
st2-docker ことはじめ
Shu Sugimoto
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
recotech
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Takashi Kanai
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
Yuki Yamashita
GitHub Actions で CI/CD
GitHub Actions で CI/CD
Issei Hiraoka
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
Nobuyuki Tamaoki
Metahub for github
Metahub for github
Suguru Oho
Katib
Katib
Yuji Oshima
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
Masanori Kusunoki
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Similar to K8s(gke)をプロダクトに投入するまでの話
(20)
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
2018 07-19dist
2018 07-19dist
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
Kubernetes Cluster Adminやってました #con_rider
Kubernetes Cluster Adminやってました #con_rider
st2-docker ことはじめ
st2-docker ことはじめ
Mackerel x Twilio ~レコチョクの場合~
Mackerel x Twilio ~レコチョクの場合~
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
GitHub Actions で CI/CD
GitHub Actions で CI/CD
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
『フルスタックエンジニアを目指す』ためのOpenStack勉強術 - OpenStack最新情報セミナー 2014年2月
Metahub for github
Metahub for github
Katib
Katib
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
K8s(gke)をプロダクトに投入するまでの話
1.
k8s(GKE)をプロダクトに 投入するまでの話 市ヶ谷Geek★Night 2017.12.20 株式会社オプト 柴田幸輝
2.
Agenda - 自己紹介&前置き - k8sに惹かれた理由 -
小規模システムにk8sを導入する - まとめ (本資料では、Kubernetesの表記をk8sで統一します。)
3.
自己紹介&前置き
4.
- 名前: 柴田
幸輝 - 所属: 株式会社オプト - 役割: 雑務(Spark / React / GAE(Go) / k8s / マネージャー 他) - 技術メモ:https://qiita.com/uryyyyyyy 自己紹介
5.
- DevOpsやりたいエンジニア募集! - 公式サイト:
https://www.opt.ne.jp/opttechnologies/ - 技術マガジン: http://tech-magazine.opt.ne.jp/ Opt Technologiesについて
6.
k8sをプロダクトで使っている方 (゚∀゚)ノ 最初に質問
7.
この発表は、 「k8sに興味あるけど導入したことがない方」 向けに 「小規模プロダクトに導入した時のTips」 を伝えることを目指します。 既に運用している方は、 もっといいやり方があればぜひ教えてください 前置き
8.
話さないこと - k8sについての基礎 - 運用のベストプラクティス(僕が知りたい) -
中規模以上のプロダクトでの運用ノウハウ - GCP以外での構成 前置き
9.
k8sに惹かれた理由
10.
以下を実現するのに有用なツールだと思ったからです - Infrastructure as
Code(IaC) - マイクロサービスアーキテクチャ k8sに惹かれた理由
11.
- k8sへは「こういう構成にして」という指示だけ出す - 現在との差分を気にしないので設定がシンプル -
クラッシュなどで構成がズレても勝手に修復する - コンテナを作って壊すだけなのでImmutableに出来る - 「スノーフレークサーバー」になりにくい Infrastructure as Code(IaC)
12.
- コンテナ化による実行環境まで含んだプロセス - 同じ物理サーバでJava8とJava9が共存するのも容易 -
開発時でも本番時とほぼ同等の環境を再現出来る - 仮想化のオーバーヘッドが少ない - サービスを小分けにしても問題ない - 必要なサービスだけスケールされることが出来る マイクロサービスアーキテクチャ
13.
いざプロダクトに導入するには考慮することが多い。。 慣れるために、 まずは小規模システムで導入してみましょう。 とはいえ... セキュリティ アクセス制御 ステージングと本番の差異安全なデプロイ オートスケール メトリクス・監視 ネットワーク・SSL DB接続先など環境固有の情報
14.
小規模システムに k8sを導入する
15.
- とある社内向けサービス - GCP上で運用している -
アプリサーバー(Play Framework) - DBサーバー1台(Cloud SQL) - GCSとのやり取りがある - (フロントはWebでSPAだけど今回は無視) 対象とするシステム
16.
対象とするシステム LB GCE DB GCS SSL
17.
1. サンプルアプリを通じて設計・動作確認をする 2. イメージを作成してローカルでの動作確認をする 3.
設定をテンプレート化して本番で動かす k8s化のステップ
18.
1. サンプルアプリを通じて 設計・動作確認をする
19.
Kubernetes in Actionがわかりやすかったです。 (MEAPで読んでましたが、最終版がリリースされたようですね) これ一冊でだいたいは作れる気に なるのでオススメ k8sをちゃんと学ぶ
20.
構成を考えてみる Ingress SSL Node Node Service Pod Pod Web App SQL proxy Web
App SQL proxy Config Map Secret Config Map Secret
21.
Ingressを使うことでGKEが、SSL証明書を使って、GCPで管理しているIP を使って、LBを用意してくれる SSL / 外部IPの管理
22.
公式でProxyのDocker Imageが提供されているので それをpodに載せる https://cloud.google.com/sql/docs/mysql/connect-docker Cloud SQLへの接続 ↑ここで接続先を切り替える
23.
DB接続先やパスワードなどは環境ごとに異なります。 こういう情報はDocker Imageに含めず、 後から差し込む必要があります。 - 実行時引数で渡す -
簡単で良いが、数が多いと見にくい - Containerのenvに列挙する - https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/ - 同じKeyのenvを何度も記載するのが大変 - Config Mapに含めて配布する 環境固有の情報の管理
24.
- Config Mapに含めて配布する -
○ 環境変数が一箇所にまとまる - ✕ pod起動時にconfigMapが読まれるので、同じpodでも立ち上がるタイミング によっては設定が変わりうる。 環境固有の情報の管理
25.
Cloud SQLへのアクセス権限などは、それ用のCredentialを作りsecretに 含めて配布します。 (secretの作成は、後述のHelmでtemplateから作れます) Credentialの管理
26.
ログは、GKEが自動で取ってくれます。 メトリクスは、CPUやメモリの類は取ってくれます。 (playアプリのメトリクスを取るために kamon-stackdriverを作ったりしました。ぜひ。) ログ・メトリクス収集
27.
2. イメージを作成して ローカルでの動作確認をする
28.
- Docker Imageを作ったら、minikube上で走らせる -
minikubeでローカルのdocker imageを使う - Ingressは用意出来ないので、Service(Node Port)経由でアクセスす るか、podにport forwardingする - Forward a local port to a port on the pod - ローカルではCloud SQL proxyではなく実DBを用意する ローカルでの動作確認
29.
ローカルでの動作確認 dockerd imageimage DB process Pod Web App Service ローカル
30.
3. 設定をテンプレート化して 本番で動かす
31.
設定のテンプレート化 k8sの各種設定(pod, service, configMap)は、 ローカル・ステージング・本番で異なることがあります →
Helm (package manager for k8s) を使うことで、 環境の差異を考慮したテンプレートを作れます
32.
設定のテンプレート化(Pod)
33.
設定のテンプレート化(Secret)
34.
まとめ
35.
インフラ全体像
36.
k8s全体像 Ingress SSL Node Node Service Pod Pod Web App SQL proxy Web
App SQL proxy Config Map Secret Config Map Secret
37.
まとめ - 小さい規模で徐々に試していけそう - 中規模の場合、サブシステムだけ分離するなど -
一度k8sに載れば、MicroService化していけそう - IaCを大方実践できるようになった - k8sを使うことで、設定通りの環境が維持出来る - ローカルでも本番で同じpodを再現できる - DeployもHelmコマンド一つでいける
Download now