Submit Search
お小遣いでKubernetesクラスタ
4 likes
4,328 views
Nobuaki Aoki
第16回まどべんよっかいちでの発表資料です。
Software
Read more
1 of 31
Download now
Downloaded 10 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
More Related Content
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
PPTX
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
PDF
Presto ベースのマネージドサービス Amazon Athena
Amazon Web Services Japan
PDF
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
PDF
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
PDF
楽天における大規模データベースの運用
Rakuten Group, Inc.
PDF
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
Presto ベースのマネージドサービス Amazon Athena
Amazon Web Services Japan
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
楽天における大規模データベースの運用
Rakuten Group, Inc.
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
What's hot
(20)
PDF
Ingress on Azure Kubernetes Service
Toru Makabe
PDF
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
PPTX
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
PDF
[Cloud OnAir] Google Cloud で実現するバックアップ ディザスタリカバリのベストプラクティス 2019年4月25日 放送
Google Cloud Platform - Japan
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
PDF
ZOZOTOWNのCloud Native Journey
Toru Makabe
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
NTT DATA Technology & Innovation
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PPTX
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
PPTX
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
PPTX
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PDF
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
PPTX
Infrastructure as Code自身のテストを考える
辰徳 斎藤
PDF
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
Yuta Shimada
PPTX
Kubernetes (K8s) 簡介 | GDSC NYCU
秀吉(Hsiu-Chi) 蔡(Tsai)
Ingress on Azure Kubernetes Service
Toru Makabe
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
[Cloud OnAir] Google Cloud で実現するバックアップ ディザスタリカバリのベストプラクティス 2019年4月25日 放送
Google Cloud Platform - Japan
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
ZOZOTOWNのCloud Native Journey
Toru Makabe
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
NTT DATA Technology & Innovation
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Infrastructure as Code自身のテストを考える
辰徳 斎藤
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
Yuta Shimada
Kubernetes (K8s) 簡介 | GDSC NYCU
秀吉(Hsiu-Chi) 蔡(Tsai)
Ad
Similar to お小遣いでKubernetesクラスタ
(7)
PDF
AKSとTerraformでKubernetesクラスター作成
satosato8
PDF
Kubernetesを触ってみた
Kazuto Kusama
PPTX
Java on Kubernetes on Azure
Yoshio Terada
PDF
Kubernete超概要
Kentaro Higashi
PDF
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
PDF
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Fuminobu Takeyama
PPTX
AKS (k8s) Hands on Lab Contents
Yoshio Terada
AKSとTerraformでKubernetesクラスター作成
satosato8
Kubernetesを触ってみた
Kazuto Kusama
Java on Kubernetes on Azure
Yoshio Terada
Kubernete超概要
Kentaro Higashi
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Fuminobu Takeyama
AKS (k8s) Hands on Lab Contents
Yoshio Terada
Ad
More from Nobuaki Aoki
(20)
PPTX
このはちゃんとConoHaと私
Nobuaki Aoki
PPTX
Apache Usergridについて(公開用)
Nobuaki Aoki
PPTX
Kumalicaのご紹介(公開用)
Nobuaki Aoki
PPTX
Windows 10 mobile uwpアプリの始め方~continuum編~ (公開用)
Nobuaki Aoki
PPTX
Windows 10 mobileでnfc~suica・edy対応編~(公開用)
Nobuaki Aoki
PPTX
Blog=pelican+bit bucket+docker
Nobuaki Aoki
PPTX
第1回三重合同懇親会
Nobuaki Aoki
PPTX
IoTの始め方~.NET Micro Framework編
Nobuaki Aoki
PPTX
Getting started with edison
Nobuaki Aoki
PPTX
第11回まどべんよっかいちの告知
Nobuaki Aoki
PPTX
第1回三重合同懇親会の告知
Nobuaki Aoki
PPTX
(仮)登別クマ牧場のテツロウについて
Nobuaki Aoki
PPTX
まどべんよっかいちのご紹介
Nobuaki Aoki
PPTX
Microsoft Azure Mobile Serviceによるアプリ構築
Nobuaki Aoki
PPTX
mbedとwindows 8.1
Nobuaki Aoki
PPTX
Windows.Web.Http.HttpClientとWebAuthenticationBroker
Nobuaki Aoki
PPTX
Windows phone 8プログラミング~gps&地図編~
Nobuaki Aoki
PPTX
Windows Azure Mobile Servicesによるアプリ構築
Nobuaki Aoki
PPTX
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Nobuaki Aoki
PPTX
Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Nobuaki Aoki
このはちゃんとConoHaと私
Nobuaki Aoki
Apache Usergridについて(公開用)
Nobuaki Aoki
Kumalicaのご紹介(公開用)
Nobuaki Aoki
Windows 10 mobile uwpアプリの始め方~continuum編~ (公開用)
Nobuaki Aoki
Windows 10 mobileでnfc~suica・edy対応編~(公開用)
Nobuaki Aoki
Blog=pelican+bit bucket+docker
Nobuaki Aoki
第1回三重合同懇親会
Nobuaki Aoki
IoTの始め方~.NET Micro Framework編
Nobuaki Aoki
Getting started with edison
Nobuaki Aoki
第11回まどべんよっかいちの告知
Nobuaki Aoki
第1回三重合同懇親会の告知
Nobuaki Aoki
(仮)登別クマ牧場のテツロウについて
Nobuaki Aoki
まどべんよっかいちのご紹介
Nobuaki Aoki
Microsoft Azure Mobile Serviceによるアプリ構築
Nobuaki Aoki
mbedとwindows 8.1
Nobuaki Aoki
Windows.Web.Http.HttpClientとWebAuthenticationBroker
Nobuaki Aoki
Windows phone 8プログラミング~gps&地図編~
Nobuaki Aoki
Windows Azure Mobile Servicesによるアプリ構築
Nobuaki Aoki
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Nobuaki Aoki
Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Nobuaki Aoki
お小遣いでKubernetesクラスタ
1.
お小遣いで Kubernetesクラスタ @第16回まどべんよっかいち 2018/10/13 のぶクマ(@kumar0001)
2.
アジェンダ 個人で費用を抑えてKubernetesクラ スタを運用するために調査・検討・ 試行してみたことを紹介 • Kubernetesクラスタの構成と費用 ➢Azure Kubernetes
Service(AKS) ➢ConoHa VPSでの構築 ➢Google Kubernetes Engine(GKE)
3.
はじめに
4.
事の発端 次リリースの新機能として、 駅コードの報告、オンライン 更新機能に着手 駅のコード(サイバネコード)は 非公開情報のため、有志での収 集が必要 アプリからの報告機能と、オン ラインでの駅コード情報の更新 機能を追加して対応 駅コードを管理するAPIが必要に Kumalica v0.4.1を2016年4月に公開
5.
API基盤の条件 Dockerコンテナベースであること • これまでDockerコンテナを利用してきたことを踏襲 サーバ費用を抑えられること • 個人が非営利で運用するため、サーバの利用にあまり費用をかけら れない(マネタイズが確立するまでの持ち出しを抑える) •
予算は 耐障害性があること • フリーソフトとは言え、障害が発生してサービスが中断しないようにした い。これまでの環境ではこれが実現できない モバイルアプリから駅コードの報告/駅コードの更新取得を 受けるAPIをどこで稼働させるか?
6.
Dockerコンテナを 使う理由 開発環境と運用環境の統一 • 開発環境から運用環境までDockerコンテナのデプロイで統一され るため、開発から運用までのギャップがない 移植性 • Webサーバなどミドルウェアを含んだ環境をコンテナイメージ化 するので、異なる運用環境に移植しやすい •
ミドルウェアのバージョンなど稼働環境をコンテナに閉じ込めら れる サーバではなくサービスに注力したい • 開発ではコンテナ作成までを考えればよく、自動化もしやすい • 運用もコンテナをどうデプロイするかに注力できる
7.
Dockerコンテナ基盤 の候補 Dockerコンテナを稼働させるサーバ/サービスの候補で、 費用を抑えられる構成を検討する Kubernetes • Dockerコンテナの運用・管理基盤のデファクトスタンダード • マネージドサービスにもオンプレミスでの構築にも対応 •
障害発生時の自動復旧にすぐれている Azure Web App for Containers • 単一のDockerコンテナイメージを稼働できる。昨年秋にGA • 複数コンテナのデプロイはプレビュー中 • Basicプラン以上が対応(B1:1コア/1.75GBで¥7,235.76/月) Docker Swarm mode • 今となっては…
8.
Kubernetesとは
9.
Kubernetesとは • クーベネティス /
クーベルネイテス • ギリシャ語で航海長またはパイロット • コンテナのデプロイ・管理を行うオーケスト レーションシステム • dockerコンテナだけに限定しない https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82% A4%E3%83%AB:HUMBER_BRIDGE.JPG (CC BY-SA 3.0)
10.
Kubernetesの システム構成 https://commons.wikimedia.org/wiki/File:Kubernetes.png (CC BY-SA 4.0) コンテナを管理するMasterと、コンテナがデプロイされ るNodeから構成される
11.
Kubernetesでの サービスの公開 Service • クラスタ内外からPodへのアクセスを提供する。L4レベルでの 負荷分散 • NodePort •
Load Balancer: クラウドのL4ロードバランサーのみ対応 Ingress • クラスタ外部からのPodへのアクセスを提供する。 • URLからサービスに振り分けられるL7レベルでの負荷分散 ✓外部型: GKEなどクラウドのみ対応 ✓内部型: nginx-ingress, traefixなど
12.
Kubernetesでの サービスの公開 NortPort node node node NodePort 30123 各Nodeに共通したポート番号がサービスごとに割り当て られる ・通常は30000~32767の範囲 ・外部からのアクセスが可能(実際にはロードバラン サーを経由してNodeにアクセスさせる) ・Podへのアクセスは負荷分散される NodePort 30123 NodePort 30123 pod
pod pod
13.
Kubernetesでの サービスの公開 Load Balancer node node
node ロードバランサーが作成されて、外部からアクセス可能 な仮想IPアドレスを割り当てる。 ロードバランサーへのアクセスは、各ノードに分散され て、そこからPodにさらに負荷分散される。 ・ AKS,GKEなどクラウドでしか提供されていない ・L4なので、URLでの振り分けに対応しない pod pod pod Load Balancer 100.x.y.z:80
14.
Kubernetesでの サービスの公開 Ingress (外部型) GKEなどでは、クラウドのL7ロードバランサーが作成され て、URLに対応するサービスへと振り分けられる。 ・サービスはNodePortでアクセスされる node node
node pod pod pod Ingress (L7 Load Balancer) /api/stationcode ⇒ StationCodeService /api/cardhistory ⇒ CardHistoryService NodePort 30123 NodePort 30123 NodePort 30123 NodePort 30122 NodePort 30122 NodePort 30122
15.
Kubernetesでの サービスの公開 Ingress (内部型) Ingressの処理を行うPodをデプロイする。 外部からはL4ロードバランサーを経由して、各Nodeにあ るIngerssコントローラーPodにアクセスされて、URLに対 応するサービスのPodに転送される。 node node
node pod pod pod Ingress Controller Pod /api/stationcode ⇒ StationCodeService /api/cardhistory ⇒ CardHistoryService NodePort 30123 NodePort 30123 NodePort 30123 NodePort 30122 NodePort 30122 NodePort 30122 L4 Load Balancer 100.x.y.z:80
16.
Kubernetesの実 行環境 オンプレミス・VPS・クラウドIaaS • kubeadmなどのツールを用いて、物理サーバ/仮想サーバにクラス タを構築する マネージドサービス • クラウドのサービスとして利用する •
masterやnodeを構築する必要がない ローカル環境 • minikubeなどのツールでPCなどのローカル環境に構築する • 通常はnodeが1つだけの環境となり、あくまで開発用
17.
費用を抑えるた めの方針 ノード数 • masterを構築する場合、シングルノードとする • nodeは2ないし3ノードとする(3ノード以上が望ましいが) ロードバランサー •
マネージドサービスもVPSも1台あたりの課金のため、ロード バランサーの台数を減らす ➢Load Balancer型のServiceは利用しない ➢内部型のIngressを設置して、Ingress Controller Podへの負 荷分散にロードバランサーを用いる インスタンスサイズ • APIはこれから開発するため負荷試験ができない。このため、 最低限のCPU/RAMを用いる(1CPU/1GBメモリ以上)
18.
Azure Kubernetes Service(AKS) 方法その1
19.
AKSでの費用 ・ノードに使用できるVMのメモリは基本的に4GB以上 ・利用できるインスタンスでは、B2sの約3,916円/月が最 安で、3ノード以上が推奨のため、11,748円/月から利用 できる ・ロードバランサーはStandardタイプだと2,038円/月 結論: AKSでの運用費用は1.4万円/月から
20.
ConoHaでのKubernete クラスタ構築 方法その2
21.
ConoHaって? GMOによるVPSサービスで、OpenStackで構築されている ・応援団長(マスコットキャラ)美雲このは
22.
構成 利用者 ConoHa VPS 管理者 master (2GB) node-1 (1GB) node-2 (1GB) ロードバランサー インターネット https://knowledge.sakura.ad.jp/4724/ (CC BY
4.0)インターネット Traefik Ingress Traefik Ingress master/nodeのVMを作成して、ポート開放・Dockerのインス トールなどを行い、k8sクラスタを構成する。 ・masterのサーバも用意する必要がある ・Ingressは内部型しか利用できない(今回はTraefikを利用) ・今回は利用しないがLoad Balancer型のServiceに対応していな い(Sakura VPSのように自分でコードを書けば利用可) pod pod
23.
費用について 2018年9月の利用明細(1日あたり164円くらい) ⇒1か月あたり5,000円前後で2ノードのk8sクラスタを運用 できる (4GBメモリ×3node+2GB×1masterだと12,000円前後)
24.
構築の問題点 ■クラスタの構築に50時間ほどかかった ◎事前学習 ・公式ドキュメントを通勤途中に閲覧して、方法を調査 ⇒ 1日1.0時間×20日間 ≒20時間 ◎構築作業 ・作成したサーバでドキュメントに従ってクラスタを構築 ・動作しない原因の調査は、通勤途中にWeb検索や公式ド キュメントの読み込みで対応 ⇒1日2.5時間×8日間(構築)+1日1.0時間×10日間(調査) ≒30時間 ■問題点 ・Kubernetesクラスタを利用すること自体が初めてで、構築 でのトラブルが、操作の不備によるものかわからず、対応に 時間がかかった。 (ローカル環境では出ない問題もあった) ・k8sやTraefikの進化が激しく、調査で見つけた資料が古く なっていることもあった。 ⇒最初はマネージドサービスを利用してk8sになれるべき? (いったん構築できればよいが…)
25.
メモリの利用状況
26.
GKE Google Kubernetes Engine 方法その3
27.
構成 利用者 GCP 管理者 master node-1 (3.75 GB) ロードバランサー インターネット https://knowledge.sakura.ad.jp/4724/ (CC
BY 4.0)インターネット Traefik Ingress Traefik Ingress ・ Ingressは外部型と内部型の両方に対応しているが、外部型は 名前空間ごとに1個作成される(課金up↑)ので、内部型を使う。 ・masterのサーバはGKEが提供、管理するため課金対象外 ・今回は利用しないが、Load Balancer型のServiceに対応する。 pod pod Traefik Ingress pod node-2 (3.75 GB) preemptive node-3 (3.75 GB) preemptive
28.
preemptive インスタンス GCPのPreemptibleインスタンスは、以下の制限があるが、 非常に安価である。 ■制限 ・GCPがいつでも終了させることができる ・24時間実行すると、必ず終了させられる ・常に利用できるわけではない →非プリエンプティブなノードが1個は必要 ■費用 n1-standard-1(1CPU/3.75GBメモリ) 東京リージョン ・31.17米ドル/1か月 プリエンプティブだと ・9.67米ドル/1か月 →非プリエンプティブなノード1台に、負荷に応じてプリエ ンプティブなノードを追加することで安価に運用できる (終了時はk8sによって自動復旧)
29.
費用について ◎1か月あたりの費用 ・n1-standard-1 × 1台
$31.17 ・ n1-standard-1(プリエンプティブ) × 2台 $19.34 ・L4ロードバランサー $28.27 合計 $ 78.78(約8,744円) ※非プリエンプティブなノードだけだと$121.78/月(約1.4 万円/月)でAKSと同程度になる。 ◎まとめ プリエンプティブなノードの活用で費用を抑えられるが、 ロードバランサーの費用がかさむため、それなりに費用が かかる。 →非プリエンプティブなノードだけでも、VPSで同スペッ クを構築した場合と大きく差があるわけでないので、プリ エンプティブなノードを活用できれば、安価に運用できる のでは? ◎課題 プリエンプティブなノードでアプリ・APIが終了させられる 場合を考慮する必要がある(障害と同じ対応でよい?)
30.
まとめ
31.
まとめ VMへのクラスタ構築で安価に運用できるが… • 小さいインスタンスを使えば費用を月5-6,000円に抑えられるが、すで にメモリが73%利用されていて、Webアプリ/APIの利用が進むと不足 する可能性がある • マネージドサービスと同程度のインスタンスサイズだとあまり費用が 変わらないので、保守・運用のコストを考えるとマネージドサービス に移行したほうがよさそう やはりマネージドサービスで? •
GKEのプリエンプティブなノードを活用すると、運用費用を月1万円以 内に抑えらえるが、障害と同じ事象への考慮が必要 • 非プリエンプティブなノードだけの場合、月1.4万円が最低ライン (ノード数を2個にすれば月1.0万円程度に)
Download