SlideShare a Scribd company logo
1 of 55
Download to read offline
Copyright(c) 2018 Linux-HA Japan Project
コンテナを止めるなを止めるな止めるなめるな!
PacemakerによるコンテナコンテナHAクラスタリングととKubernetesとの違いとは違いとはいとは
2018年10月27日
Linux-HA Japan プロジェクト
http://linux-ha.osdn.jp/
森 啓介
2
Copyright(c) 2011 Linux-HA Japan Project 2
自己紹介
 名前: 森 啓介 (Keisuke MORI)Keisuke MORI))
 twitter: @ksk_ha
 Linux-HA Japanプロジェクト関連の活動の違いとは活動
 Pacemakerリポジトリパッケージの違いとはリリース
 http://linux-ha.osdn.jp/
 ClusterLabs プロジェクトの違いとはコミッタ
 Pacemaker、resource-agents などHAクラスタ関連の活動の違いとは開発コミュニティコミュニティ
 https://github.com/ClusterLabs/
 本業
 普段の業務の違いとは業務: NTT OSSセンタ
 NTTグとループ内におけるにおけるコンテナPacemaker/Heartbeatの違いとは導入支援・サポートサポート
 バグと報告・サポートパッチ作成などによる作成などによるなどによるコンテナNTTから開発コミュニティへのフィードバック・貢献開発コミュニティコミュニティへの違いとはフィードバック・サポート貢献
3
Copyright(c) 2011 Linux-HA Japan Project 3
もくじ
 Pacemakerとは
 オーケストレーションツールによるコンテナコンテナHA
 Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA
 今後の動向の違いとは動向
4
Copyright(c) 2011 Linux-HA Japan Project 4
もくじ
 Pacemakerとは
 オーケストレーションツールによるコンテナコンテナHA
 Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA
 今後の動向の違いとは動向
5
Copyright(c) 2011 Linux-HA Japan Project 5
Pacemaker?なにそれおいしいの?なにそれおいしいの違いとは?なにそれおいしいの?
 Pacemakerとは、
オープンソースの違いとはHAクラスタソフトウェアです。です。
HHigh AAvailability = 高可用性
サービスをできるコンテナ限りり
「止めない!」こと止めない!」ことめない!」こと
6
Copyright(c) 2011 Linux-HA Japan Project 6
Pacemakerの違いとは概要
サーバ#1 サーバ#2
サービスの監視・制御の監視・制御監視・制御
サーバ間の監視・制御間の監視・制御の監視・制御監視・制御
 サーバ・サポートアです。プリケーションの違いとは故障監視
7
Copyright(c) 2011 Linux-HA Japan Project 7
Pacemakerの違いとは概要
サーバ#1 サーバ#2
サービスの監視・制御の監視・制御フェイルオーバ間の監視・制御
 故障検知時、自動的にフェイルオーバにフェイルオーバ
 ダウンタイムの最小化の違いとは最小化
 STONI)THによるコンテナデータの違いとは安全性確保
STONITH(強制電源断)
8
Copyright(c) 2011 Linux-HA Japan Project 8
Pacemakerを詳しく知りたかったら…しく知りたかったら開発コミュニティへのフィードバック・貢献…
Linux-HA Japan プロジェクト 2F 206F 2F 20606教室にてデモ展示中!にてデモ展示中!デモ展示中!展示中!
9
Copyright(c) 2011 Linux-HA Japan Project 9
 Pacemakerとは
 オーケストレーションツールによるコンテナコンテナHA
 Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA
 今後の動向の違いとは動向
もくじ
10
Copyright(c) 2011 Linux-HA Japan Project 10
コンテナが止まった!そのときどうなる?止めない!」ことまった!その違いとはときどうなるコンテナ?なにそれおいしいの?
もう時代はコンテナ・クラウドでしょー時代はコンテナ・クラウドでしょーはコンテナ・クラウドでしょーコンテナ・クラウドでしょーでしょー
Kubernetesがあるから大丈夫!大丈夫!
セルフヒーリング機能は確かに便利ね機能は確かに便利ねはコンテナ・クラウドでしょー確かに便利ねかに便利ねね
でもPodの種類にも気をつけて種類にも気をつけてにも気をつけてをつけてデモ展示中!
11
Copyright(c) 2011 Linux-HA Japan Project 11
Kubernetes セルフヒーリングと機能によるコンテナ
Pod
共有ストレージストレージ
マスの監視・制御ターからの監視・制御監視
master worker1 worker2
Podの監視・制御再起動
レプリカ数の維持数の維持の監視・制御維持
物理ネットワークネットワーク
Pod
12
Copyright(c) 2011 Linux-HA Japan Project 12
 起動時は常に同じ状態に同じ状態じ状態
 データを保存する必要はなするコンテナ必要はな
い
 必要なだけいくつでも起動
すればよい
 Webサーバ、アです。プリケーシ
ョンサーバなど
Statelessコンテナ と Statefulコンテナ
 起動時は「止めない!」こと前回と同じ」と同じ状態じ」
データを持った状態で起動った状態で起動
 データの違いとは永続化と共有ストレージ
 別の物理サーバでも同じデータの違いとは物理ネットワークサーバでも同じ状態じデータ
 個々の識別が必要の違いとは識別の物理サーバでも同じデータが止まった!そのときどうなる?必要
 再起動しても同じ状態じデータ
 データベースサーバ、
ファイルサーバなど
Statelessコンテナ
Deployment, ReplicaSet
Statefulコンテナ
StatefulSet
13
Copyright(c) 2011 Linux-HA Japan Project 13
Deployment vs. StatefulSet サービス継続性の違いとは違いとはい
共有ストレージストレージ
Deployment
StatefulSet
master worker1 worker2
物理ネットワークネットワーク
ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してして
監視処理ネットワークが止まった!そのときどうなる?タイムの最小化アです。ウトした!
ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してして
監視処理ネットワークが止まった!そのときどうなる?タイムの最小化アです。ウトした!
14
Copyright(c) 2011 Linux-HA Japan Project 14
Deployment vs. StatefulSet サービス継続性の違いとは違いとはい
共有ストレージストレージ
Deployment
StatefulSet
master worker1 worker2
物理ネットワークネットワーク
デッドロックだね
データベースが止まった!そのときどうなる?フェイルØωØverωØverØωØververしないニャ!
15
Copyright(c) 2011 Linux-HA Japan Project 15
Deployment vs. StatefulSet サービス継続性の違いとは違いとはい
共有ストレージストレージ
Deployment
StatefulSet
master worker1 worker2
Deployment は他のワーカーノードで再起動するの違いとはワーカーノードで再起動するコンテナ
StatefulSet は再起動されず、コンテナは止めない!」ことまるコンテナ!
Deployment は他のワーカーノードで再起動するの違いとはワーカーノードで再起動するコンテナ
StatefulSet は再起動されず、コンテナは止めない!」ことまるコンテナ!
物理ネットワークネットワーク
16
Copyright(c) 2011 Linux-HA Japan Project 16
デモ 1
Kubernetes の違いとは実際の動作の違いとは動作
17
Copyright(c) 2011 Linux-HA Japan Project 17
デモ 1: 初期状態(Keisuke MORI)ノード)
[root@master osc2018tk-demo]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 4d v1.11.3
worker1 Ready <none> 4d v1.11.3
worker2 Ready <none> 4d v1.11.3
[root@master osc2018tk-demo]#
●3ノード構成などによる
●全てReady状態
●3ノード構成などによる
●全てReady状態
18
Copyright(c) 2011 Linux-HA Japan Project 18
デモ 1: 初期状態(Keisuke MORI)Pod)
[root@master osc2018tk-demo]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
httpd-5f9cf547cc-dfsqn 1/1 Running 0 8m 10.244.2.16 worker2
httpd-5f9cf547cc-pc7s2 1/1 Running 0 30s 10.244.1.22 worker1
postgres-0 1/1 Running 0 46s 10.244.1.21 worker1
[root@master osc2018tk-demo]# kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
httpd 2 2 2 2 4d
[root@master osc2018tk-demo]# kubectl get statefulsets
NAME DESIRED CURRENT AGE
postgres 1 1 4d
[root@master osc2018tk-demo]#
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
●httpdはDeployment
●postgresはStatefulSet
●httpdはDeployment
●postgresはStatefulSet
19
Copyright(c) 2011 Linux-HA Japan Project 19
デモ 1: ネットワーク切断が発生しての違いとは疑似故障
●worker1の違いとは全ての違いとはアです。ダプターの違いとは
ケーブル接続をオフにするコンテナ
●worker1の違いとは全ての違いとはアです。ダプターの違いとは
ケーブル接続をオフにするコンテナ
20
Copyright(c) 2011 Linux-HA Japan Project 20
デモ 1: ネットワーク切断が発生して後の動向の違いとは状態
Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:35:42 2018
NAME STATUS ROLES AGE VERSION
master Ready master 4d v1.11.3
worker1 NotReady <none> 4d v1.11.3
worker2 Ready <none> 4d v1.11.3
NAME READY STATUS RESTARTS AGE IP NODE
httpd-5f9cf547cc-chk6c 1/1 Running 0 7s 10.244.2.18 worker2
httpd-5f9cf547cc-dfsqn 1/1 Running 0 10m 10.244.2.16 worker2
httpd-5f9cf547cc-pc7s2 1/1 Unknown 0 2m 10.244.1.22 worker1
postgres-0 1/1 Unknown 0 2m 10.244.1.21 worker1
●worker1はNotReady状態となるコンテナ
(Keisuke MORI)デフォルトでは40秒後の動向)
●worker1はNotReady状態となるコンテナ
(Keisuke MORI)デフォルトでは40秒後の動向)
●worker1上のの違いとはpodは Unknown 状態となるコンテナ
●httpdはworker2で2つ起動するコンテナ
●postgres はworker2では起動しない
(Keisuke MORI)デフォルトでは5分後の動向)
●worker1上のの違いとはpodは Unknown 状態となるコンテナ
●httpdはworker2で2つ起動するコンテナ
●postgres はworker2では起動しない
(Keisuke MORI)デフォルトでは5分後の動向)
21
Copyright(c) 2011 Linux-HA Japan Project 21
 コンテナの違いとは二重起動によるコンテナデータ破損を防ぐためです。を防ぐためです。ぐためです。
 コンテナ状態: Unknown → まだ動いてるコンテナかも?
 コンテナが止まった!そのときどうなる?「止めない!」こと確実に停止めない!」こと」したことを確認できない限り再起動は危険できない限りり再起動は危険
 でもさあ…
 Q.でもネットワークが止まった!そのときどうなる?切れてたら開発コミュニティへのフィードバック・貢献データも書き込めないから安全だよね?き込めないから安全だよね?めないから開発コミュニティへのフィードバック・貢献安全だよね?なにそれおいしいの?
 ネットワーク通信が復旧するとそこで二重書き込みが発生します。が止まった!そのときどうなる?復旧するとそこで二重書き込みが発生します。するコンテナとそこで二重書き込めないから安全だよね?き込めないから安全だよね?みが止まった!そのときどうなる?発コミュニティ生してします。
 ネットワークスイッチ作成などによるの違いとは一時的にフェイルオーバな故障などではよくあるコンテナシナリオ
 監視用とストレージ用で別の物理サーバでも同じデータ々の識別が必要の違いとはネットワークであるコンテナ構成などによるもあります。
 SAN経由、ストレージ専用ネットワーク(Keisuke MORI)トラフィック、セキュリティ上のの違いとは理ネットワーク由など)
 Q.物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?が止まった!そのときどうなる?落ちたらさすがに再起動するよね?ちたら開発コミュニティへのフィードバック・貢献さすが止まった!そのときどうなる?に再起動するコンテナよね?なにそれおいしいの?
 しません。
 物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生してとネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して(Keisuke MORI)通信が復旧するとそこで二重書き込みが発生します。経路の故障の違いとは故障)は区別の物理サーバでも同じデータが止まった!そのときどうなる?つかないから開発コミュニティへのフィードバック・貢献です。
 どちら開発コミュニティへのフィードバック・貢献も「止めない!」こと監視タイムの最小化アです。ウト(Keisuke MORI)応答なしなし)」としか検知できない
なぜフェイルオーバしないのかフェイルオーバしないの違いとはか?
22
Copyright(c) 2011 Linux-HA Japan Project 22
 一般的にフェイルオーバなデータベースサーバは StatefulSet とするコンテナ必要が止まった!そのときどうなる?
あるコンテナ。
 データの違いとは永続化の違いとはため
 インスタンスごとの違いとは識別の物理サーバでも同じデータの違いとはため
 StatefulSet は、物理ネットワークサーバの違いとは故障に対しては自動的にサーしては自動的にフェイルオーバにサー
ビス継続を行うことはできない。うことはできない。
 Podの違いとは二重起動によるコンテナデータ破損を防ぐためです。を防ぐためです。ぐため
Kubernetesの違いとはサービス継続性の違いとは留意点
23
Copyright(c) 2011 Linux-HA Japan Project 23
コンテナが止まった!そのときどうなる?止めない!」ことまった!その違いとはときどうなるコンテナ?なにそれおいしいの?
もう時代はコンテナ・クラウドでしょー時代はコンテナ・クラウドでしょーはコンテナ・クラウドでしょーコンテナ・クラウドでしょーでしょー
Kubernetesがあるから大丈夫!大丈夫!
セルフヒーリング機能は確かに便利ね機能は確かに便利ねはコンテナ・クラウドでしょー確かに便利ねかに便利ねね
でもPodの種類にも気をつけて種類にも気をつけてにも気をつけてをつけてデモ展示中!
StatefulSetはコンテナ・クラウドでしょー物理サーバが故障サーバが故障が故障
したら大丈夫!止まっちゃうんだよまっちゃう時代はコンテナ・クラウドでしょーんだよ
大事なデータが壊れないようになデータが壊れないようにデータが壊れないようにが壊れないようにれなデータが壊れないようにいよう時代はコンテナ・クラウドでしょーに
守っているんだねってデモ展示中!いるんだね!
24
Copyright(c) 2011 Linux-HA Japan Project 24
物理ネットワークサーバではどうやってたの違いとは?
でも物理サーバが故障サーバが故障の種類にも気をつけてHAクラスタが壊れないようにはコンテナ・クラウドでしょー
フェイルオーバが故障できてデモ展示中!たよね?なデータが壊れないようにんで?
それはコンテナ・クラウドでしょー Pacemaker の種類にも気をつけて
STONITH機能は確かに便利ねの種類にも気をつけておかげね
25
Copyright(c) 2011 Linux-HA Japan Project 25
 STONI)TH機能によるコンテナ(Keisuke MORI)フェンシングと)
 I)PMI)経由でサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生してを行うことはできない。う
 確実にサーバを停止めない!」ことさせるコンテナことで
データの違いとは安全を確保
物理ネットワークサーバではどうやってたの違いとは?
サーバ#1 サーバ#2
サービスの監視・制御の監視・制御フェイルオーバ間の監視・制御
STONITH(強制電源断)
I)PMI)制御機能によるコンテナ
※IPMIによるコンテナ電源が落ちたらさすがに再起動するよね?断が発生して以外に、共有ディスク接続を利用した方式などもあります。に、共有ストレージディスク接続を利用した方式などもあります。などもあります。
26
Copyright(c) 2011 Linux-HA Japan Project 26
STONI)TH機能によるコンテナ(Keisuke MORI)フェンシングと)とは?
 フェンスを立てて隔離することてて隔離することするコンテナこと
27
Copyright(c) 2011 Linux-HA Japan Project 27
 狩りに出かけたハンターからの救急電話りに出かけたハンターからの救急電話かけたハンターから開発コミュニティへのフィードバック・貢献の違いとは救急電話
 「止めない!」こと大変だだ! 友達が木から落ちて死んでしまったが止まった!そのときどうなる?木から落ちて死んでしまったから開発コミュニティへのフィードバック・貢献落ちたらさすがに再起動するよね?ちて死んでしまったんでしまった!」
 「止めない!」こと落ちたらさすがに再起動するよね?ち着いて。まずは彼が本当に死んでいるかどうか確かめて」いて。まずは彼が本当に死んでいるかどうか確かめて」が止まった!そのときどうなる?本当に死んでいるかどうか確かめて」に死んでしまったんでいるコンテナかどうか確かめて」
 「止めない!」ことバーン!(Keisuke MORI)銃声)」
 「止めない!」ことOK、死んでしまったんでるコンテナ。次はは?」
余談: 世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク
※出かけたハンターからの救急電話典 “World's funniest joke” ハートフォードシャー大学 リチ作成などによるャード・サポートワイズマン博士(Keisuke MORI)2002年)
Make sure he is dead.
死んでしまったんでるコンテナかどうかを確かめるコンテナ
(気絶しているだけかもしれない獲物をしているコンテナだけかもしれない獲物を)
確実に死んでしまったんだ状態にするコンテナ
これってSTONITHじゃね?
28
Copyright(c) 2011 Linux-HA Japan Project 28
故障モデル
※出かけたハンターからの救急電話典: 「止めない!」こと分散システムについて語らせてくれ」熊崎 宏樹システムの最小化について語らせてくれ」熊崎 宏樹ら開発コミュニティへのフィードバック・貢献せてくれ」熊崎 宏樹
Copyright©2016 NTT Corp. All Rights Reserved.
https://www.slideshare.net/kumagi/ss-78765920/15
29
Copyright(c) 2011 Linux-HA Japan Project 29
故障モデル
Fail-Stop
Crash-Recovery
故障なし
Byzantine
実際の動作の違いとは故障例
物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生して
カーネルクラッシュ
ネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して
異常に同じ状態な高負荷
クラッキングとなど(通常に同じ状態は対しては自動的にサー応は想定しないしない)
他のワーカーノードで再起動するノードで
起動した場合のの違いとは
データの違いとは安全性
監視タイムの最小化アです。ウト
発コミュニティ生して時の違いとは判断が発生して
○安全
×危険
区別の物理サーバでも同じデータが止まった!そのときどうなる?つかない!
安全の違いとはためには他のワーカーノードで再起動するの違いとはノードで
起動してはいけない!
安全の違いとはためには他のワーカーノードで再起動するの違いとはノードで
起動してはいけない!
どっちもだよ!
どっち?
どっち?
30
Copyright(c) 2011 Linux-HA Japan Project 30
故障モデル
Fail-Stop
Crash-Recovery
故障なし
Byzantine
実際の動作の違いとは故障例
物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生して
カーネルクラッシュ
ネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して
異常に同じ状態な高負荷
クラッキングとなど(通常に同じ状態は対しては自動的にサー応は想定しないしない)
他のワーカーノードで再起動するノードで
起動した場合のの違いとは
データの違いとは安全性
STONI)TH
実行うことはできない。後の動向の違いとは判断が発生して
○安全
×危険
○安全
STONI)THの違いとは実行うことはできない。により
確実に安全と言えるえるコンテナ
状態に確定しないさせるコンテナ
31
Copyright(c) 2011 Linux-HA Japan Project 31
物理ネットワークサーバではどうやってたの違いとは?
でも物理サーバが故障サーバが故障の種類にも気をつけてHAクラスタが壊れないようにはコンテナ・クラウドでしょー
フェイルオーバが故障できてデモ展示中!たよね?なデータが壊れないようにんで?
それはコンテナ・クラウドでしょー Pacemaker の種類にも気をつけて
STONITH機能は確かに便利ねの種類にも気をつけておかげね
じゃあそれを使ってコンテナをってデモ展示中!コンテナを
止まっちゃうんだよめなデータが壊れないようにいよう時代はコンテナ・クラウドでしょーにしちゃおう時代はコンテナ・クラウドでしょー!
そこで Pacemaker bundle 機能は確かに便利ねの種類にも気をつけて出番よ!よ!
32
Copyright(c) 2011 Linux-HA Japan Project 32
 Pacemakerとは
 オーケストレーションツールによるコンテナコンテナHA
 Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA
 今後の動向の違いとは動向
もくじ
34
Copyright(c) 2011 Linux-HA Japan Project 34
 Pacemaker でコンテナHAを実現する新機能するコンテナ新機能によるコンテナ
 コンテナ管理ネットワークに必要な機能によるコンテナをまとめたPacemakerの違いとはリソース
 コンテナおよびコンテナ内で起動するアプリケーションの起動・終了・監コンテナ内におけるで起動するコンテナアです。プリケーションの違いとは起動・サポート終了・サポート監
視が止まった!そのときどうなる?可能によるコンテナ
 STONI)TH機能によるコンテナや既存する必要はなの違いとはリソースエージェント(Keisuke MORI)RA)と合のわせて利用可能によるコンテナ
 Pacemaker-1.1.17 以降で利用可能で利用可能によるコンテナ
 対しては自動的にサー応コンテナランタイムの最小化
Pacemaker bundle とは?
コンテナランタイムの最小化 対しては自動的にサー応Pacemakerバージョン
Docker 1.1.17以降で利用可能
rkt 1.1.18以降で利用可能
podman (Keisuke MORI)CRI)-O) 開発コミュニティ中(Keisuke MORI)2.0.*以降で利用可能予定しない)
35
Copyright(c) 2011 Linux-HA Japan Project 35
Pacemaker bundle の違いとはアです。ーキテクチ作成などによるャ
bundle
リソースエージェント
Pacemaker-remote
仮想IP
リソースエージェント
Pacemaker-remote
仮想IP
リソースエージェント
Pacemaker-remote
仮想IP
コンテナの起動・制御の監視・制御起動・制御
サービスの監視・制御の監視・制御起動・監視
bundle
レプリカ数の維持数の維持の監視・制御制御
36
Copyright(c) 2011 Linux-HA Japan Project 36
bundle 設定しない例(Keisuke MORI)cib.xml)
<bundle id="httpd-bundle">
<docker image="pcmktest:http" replicas=“2" replicas-per-host= “2" options="--log-driver=journald"/>
<network ip-range-start="192.168.33.200" host-interface="eth1" host-netmask="24">
<port-mapping id="httpd-port" port="80"/>
</network>
<storage>
<storage-mapping id="httpd-root"
source-dir-root="/var/local/containers"
target-dir="/var/www/html"
options="rw"/>
<storage-mapping id="httpd-logs"
source-dir-root="/var/log/pacemaker/bundles"
target-dir="/etc/httpd/logs"
options="rw"/>
</storage>
<primitive class="ocf" id="httpd" provider="heartbeat" type="apache">
<operations>
<op name="start" interval="0s" timeout="60s" on-fail="restart" id="httpd-start-0s"/>
<op name="monitor" interval="10s" timeout="60s" on-fail="restart" id="httpd-monitor-10s"/>
<op name="stop" interval="0s" timeout="60s" on-fail="block" id="httpd-stop-0s"/>
</operations>
</primitive>
</bundle>
※ bundleに関するコンテナ詳しく知りたかったら…細については については OSC 2018 Kyoto セミナー資料を参照を参照
http://linux-ha.osdn.jp/wp/archives/4744
37
Copyright(c) 2011 Linux-HA Japan Project 37
Pacemaker bundle とSTONI)THによるコンテナコンテナHA
共有ストレージストレージ
物理ネットワークネットワーク
bundle
external/ipmi
bundle
コンテナbundleリソース
コンテナbundleリソース
コンテナSTONI)THリソース
コンテナbundleリソース
external/ipmi
I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ
コンテナSTONI)THリソース
38
Copyright(c) 2011 Linux-HA Japan Project 38
Pacemaker bundle とSTONI)THによるコンテナコンテナHA
共有ストレージストレージ
物理ネットワークネットワーク
bundle bundle
コンテナbundleリソース
コンテナbundleリソース
コンテナbundleリソース
I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ
external/ipmi
コンテナSTONI)THリソース
external/ipmi
コンテナSTONI)THリソース
IPMIによる電源断電源断
39
Copyright(c) 2011 Linux-HA Japan Project 39
Pacemaker bundle とSTONI)THによるコンテナコンテナHA
共有ストレージストレージ
物理ネットワークネットワーク
bundle bundle
コンテナbundleリソース
コンテナbundleリソース
コンテナbundleリソース
I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ
external/ipmi
コンテナSTONI)THリソース
external/ipmi
コンテナSTONI)THリソース
IPMIによる電源断電源断
安全にフェイルオーバにフェイルオーバ間の監視・制御
40
Copyright(c) 2011 Linux-HA Japan Project 40
Pacemaker bundle コンテナHA構成などによる例
 crm_mon 出かけたハンターからの救急電話力例
コンテナbundleリソース
コンテナSTONI)THリソース
Online: [ worker1 worker2 ]
GuestOnline: [ httpd-bundle-0@worker1 httpd-bundle-1@worker2 postgres-bundle-0@worker1 ]
Full list of resources:
Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1]
postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker1
Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique)
httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker1
httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2
stonith-worker2 (stonith:external/ipmi): Started worker1
stonith-worker1 (stonith:external/ipmi): Started worker2
41
Copyright(c) 2011 Linux-HA Japan Project 41
デモ
Pacemaker bundle vs. Kubernetes
42
Copyright(c) 2011 Linux-HA Japan Project 42
Pacemaker bundle デモ環境構成などによる
物理ネットワークネットワーク
Kubernetes
クラスタ
Pacemaker
クラスタ
master worker1 worker2
共有ストレージストレージ
(Keisuke MORI)NFS、masterに同じ状態居)
c c
ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してした!
ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してした!
43
Copyright(c) 2011 Linux-HA Japan Project 43
Pacemaker bundle デモ実行うことはできない。結果(Keisuke MORI)予定しない)
物理ネットワークネットワーク
Kubernetes
クラスタ
Pacemaker
クラスタ
共有ストレージストレージ
(Keisuke MORI)NFS、masterに同じ状態居)
master worker1 worker2
STONI)TH機能によるコンテナによりworker1は電源が落ちたらさすがに再起動するよね?断が発生して状態となるコンテナ
Pacemakerクラスタは全コンテナが止まった!そのときどうなる?フェイルオーバ
Kubernetesクラスタはデータベースが止まった!そのときどうなる?停止めない!」こと
STONI)TH機能によるコンテナによりworker1は電源が落ちたらさすがに再起動するよね?断が発生して状態となるコンテナ
Pacemakerクラスタは全コンテナが止まった!そのときどうなる?フェイルオーバ
Kubernetesクラスタはデータベースが止まった!そのときどうなる?停止めない!」こと
c c
44
Copyright(c) 2011 Linux-HA Japan Project 44
デモ 2: 初期状態(Keisuke MORI)Pacemaker)
Online: [ worker1 worker2 ]
GuestOnline: [ httpd-bundle-0@worker1 httpd-bundle-1@worker2 postgres-bundle-0@worker1 ]
Full list of resources:
Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1]
postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker1
Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique)
httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker1
httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2
stonith-worker2 (stonith:external/ipmi): Started worker1
stonith-worker1 (stonith:external/ipmi): Started worker2
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
45
Copyright(c) 2011 Linux-HA Japan Project 45
デモ 2: 初期状態(Keisuke MORI)Kubernetes)
Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:39:02 2018
NAME STATUS ROLES AGE VERSION
master Ready master 4d v1.11.3
worker1 Ready <none> 4d v1.11.3
worker2 Ready <none> 4d v1.11.3
NAME READY STATUS RESTARTS AGE IP NODE
httpd-5f9cf547cc-dfsqn 1/1 Running 0 13m 10.244.2.16 worker2
httpd-5f9cf547cc-tn9wd 1/1 Running 0 2m 10.244.1.24 worker1
postgres-0 1/1 Running 0 2m 10.244.1.23 worker1
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
●httpdは両ノードで起動ノードで起動
●postgresはworker1で起動
46
Copyright(c) 2011 Linux-HA Japan Project 46
デモ 2: ネットワーク切断が発生しての違いとは疑似故障
●worker1の違いとは全ての違いとはアです。ダプターの違いとは
ケーブル接続をオフにするコンテナ
●worker1の違いとは全ての違いとはアです。ダプターの違いとは
ケーブル接続をオフにするコンテナ
47
Copyright(c) 2011 Linux-HA Japan Project 47
デモ 2: ネットワーク切断が発生して後の動向の違いとは状態(Keisuke MORI)故障サーバ)
●worker1はSTONI)TH機能によるコンテナにより
電源が落ちたらさすがに再起動するよね?オフとなるコンテナ
●worker1はSTONI)TH機能によるコンテナにより
電源が落ちたらさすがに再起動するよね?オフとなるコンテナ
48
Copyright(c) 2011 Linux-HA Japan Project 48
デモ 2: マシン電源が落ちたらさすがに再起動するよね?オフ後の動向の違いとは状態(Keisuke MORI)Pacemaker)
Online: [ worker2 ]
OFFLINE: [ worker1 ]
GuestOnline: [ httpd-bundle-0@worker2 httpd-bundle-1@worker2 postgres-bundle-0@worker2 ]
Full list of resources:
Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1]
postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker2
Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique)
httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker2
httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2
stonith-worker2 (stonith:external/ipmi): Stopped
stonith-worker1 (stonith:external/ipmi): Started worker2
●httpdはworker2で2つ起動するコンテナ
●postgresもworker2で再起動するコンテナ
●httpdはworker2で2つ起動するコンテナ
●postgresもworker2で再起動するコンテナ
49
Copyright(c) 2011 Linux-HA Japan Project 49
デモ 2: マシン電源が落ちたらさすがに再起動するよね?オフ後の動向の違いとは状態(Keisuke MORI)Kubernetes)
Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:41:52 2018
NAME STATUS ROLES AGE VERSION
master Ready master 4d v1.11.3
worker1 NotReady <none> 4d v1.11.3
worker2 Ready <none> 4d v1.11.3
NAME READY STATUS RESTARTS AGE IP NODE
httpd-5f9cf547cc-9qgh2 1/1 Running 0 1m 10.244.2.19 worker2
httpd-5f9cf547cc-dfsqn 1/1 Running 0 16m 10.244.2.16 worker2
httpd-5f9cf547cc-tn9wd 1/1 Unknown 0 5m 10.244.1.24 worker1
postgres-0 1/1 Unknown 0 5m 10.244.1.23 worker1
●worker1上のの違いとはpodは Unknown 状態となるコンテナ
●httpdはworker2で2つ起動するコンテナ
●postgres はworker2では起動しない
(Keisuke MORI)ネットワーク切断が発生して時と同じ状態じ結果)
●worker1上のの違いとはpodは Unknown 状態となるコンテナ
●httpdはworker2で2つ起動するコンテナ
●postgres はworker2では起動しない
(Keisuke MORI)ネットワーク切断が発生して時と同じ状態じ結果)
50
Copyright(c) 2011 Linux-HA Japan Project 50
 Pacemakerとは
 オーケストレーションツールによるコンテナコンテナHA
 Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA
 今後の動向の違いとは動向
もくじ
51
Copyright(c) 2011 Linux-HA Japan Project 51
Pacemaker bundle の違いとは現する新機能状と今後の動向
 Pacemaker によるコンテナコンテナHAが止まった!そのときどうなる?可能によるコンテナになった!
 とは言えるえ…
 bundle機能によるコンテナもまだまだ発コミュニティ展途上の
 ユーザインタフェースの違いとは対しては自動的にサー応
 crmshは開発コミュニティ最新版のみ対応。の違いとはみ対しては自動的にサー応。pcs の違いとは方が止まった!そのときどうなる?対しては自動的にサー応が止まった!そのときどうなる?早い。い。
 ドキュメント・サポート動作仕様の詳細の違いとは詳しく知りたかったら…細については 
 コンテナイメージの違いとは要件・サポート作り方、詳しく知りたかったら…細については 設定しないや故障解析方法などの情報などの違いとは情報
 コンテナ技術自体の発展の違いとは発コミュニティ展
 podman(Keisuke MORI)CRI)-O)対しては自動的にサー応、Dockerの違いとは今後の動向は?
 実績・サポートサポート
 Red Hat 社 HA add-on では Technology Preview
 Red Hat OpenStack Platform 12以降で利用可能の違いとはユースケースの違いとはみフルサポート
 https://access.redhat.com/articles/3388681
 オーケストレーションツールに取って代わるものではないって代わるものではないわるコンテナもの違いとはではない
52
Copyright(c) 2011 Linux-HA Japan Project 52
Pacemaker bundle の違いとは利用シーン
 オーケストレーションツールが止まった!そのときどうなる?適している利用シーンしているコンテナ利用シーン
 DevOps, CI)/CD、頻繁なリリース、大規模なスケーリングなリリース、大規模なスケーリングなスケーリングと
 物理ネットワーク故障はマネージドサービスの違いとはSLA
 Pacemaker bundle が止まった!そのときどうなる?適している利用シーンしているコンテナ利用シーン
 物理ネットワーク環境と同じ状態様の詳細の違いとはHA運用が止まった!そのときどうなる?必要、かつコンテナの違いとはメリットが止まった!そのときどうなる?欲しい場合しい場合の
 アです。プリケーションの違いとはバージョンアです。ップが止まった!そのときどうなる?容易
 バージョン依存する必要はなが止まった!そのときどうなる?異なるコンテナ複数のアプリケーションの同居の違いとはアです。プリケーションの違いとは同じ状態居
 コンテナと非コンテナアプリケーションの同居コンテナアです。プリケーションの違いとは同じ状態居(Keisuke MORI)性能によるコンテナ上のの違いとは理ネットワーク由など)
 比較的にフェイルオーバ小規模なスケーリングなコンテナHAクラスタ
 信が復旧するとそこで二重書き込みが発生します。頼性を求められるオンプレミスシステムめら開発コミュニティへのフィードバック・貢献れるコンテナオンプレミスシステムの最小化
 物理ネットワーク故障に対しては自動的にサーするコンテナ運用責任・サポート説明責任を求められるオンプレミスシステムめら開発コミュニティへのフィードバック・貢献れるコンテナようなシステムの最小化
 Pacemaker bundle の違いとは利用実績例
 Red Hat OpenStack Platform 12以降で利用可能
 コントローラノードの違いとは各種ミドルウェアのコンテナ化ミドルウェアです。の違いとはコンテナ化
 HAProxy, RabbitMQ, Galera, redis
53
Copyright(c) 2011 Linux-HA Japan Project 53
Linux-HA Japan の違いとは今後の動向の違いとは活動
 Pacemaker-1.1.19-1.1 リポジトリパッケージ
近日リリース予定しない!
 PostgreSQL 11以降で利用可能対しては自動的にサー応など
 本日の違いとは bundle の違いとはデモでも使用しました!
 なお、バージョン1.1.18-1.1の違いとはリリースはありません。
 (Keisuke MORI)一部の利用方法で懸念事項が存在したため。の違いとは利用方法などの情報で懸念事項が存在したため。が止まった!そのときどうなる?存する必要はな在したため。したため。1.1.19-1.1では解消済みですみです)
 1.1.*系は今後も継続してメンテナンスしていきます。は今後の動向も継続してメンテナンスしていきます。
 Pacemaker-2.0以降で利用可能は…
 RHEL 8 / CentOS 8 同じ状態梱版のみ対応。と親和性の違いとは高い方式などもあります。を検討中。
54
Copyright(c) 2011 Linux-HA Japan Project 54
参考資料を参照 (Keisuke MORI)1/2)
 本日の違いとはデモ環境
 https://github.com/kskmori/osc2018tk-demo
 (Keisuke MORI)README等準備中です)
 Pacemaker bundle 関連の活動
 Bundle Walk-Through (Keisuke MORI)公式などもあります。ドキュメント)
 https://wiki.clusterlabs.org/wiki/Bundle_Walk-Through
 Red Hat OSP12 での違いとは利用事例
 https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/
12/html/understanding_red_hat_openstack_platform_high_availability/
pacemaker#pacemaker-services
 STONI)TH関連の活動
 分散システムについて語らせてくれ」熊崎 宏樹システムの最小化について語らせてくれ」熊崎 宏樹ら開発コミュニティへのフィードバック・貢献せてくれ
 https://www.slideshare.net/kumagi/ss-78765920
 世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク (Keisuke MORI)wikipedia)
 https://ja.wikipedia.org/wiki/世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク
55
Copyright(c) 2011 Linux-HA Japan Project 55
参考資料を参照 (Keisuke MORI)2/2)
 Kubernetes 関連の活動
 StatefulSets (Keisuke MORI)公式などもあります。ドキュメント)
 https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
 StatefulSets の違いとは強制削除手順
 二重起動時の違いとはデータ喪失のリスクについても記載ありの違いとはリスクについても記載ありあり
 https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/
 ノード停止めない!」こと時に StatefulSet が止まった!そのときどうなる?移動しないという issue
 設計通りの違いとは動作であるコンテナとの違いとはコメントあり
 https://github.com/kubernetes/kubernetes/issues/54368#issuecomment-
339378164
 Kubernetes に対しては自動的にサーするコンテナ Fencing 機能によるコンテナの違いとは提案
 https://github.com/kubernetes/community/blob/master/contributors/design-
proposals/storage/pod-safety.md
 Kubernetes の違いとはノード断が発生して検知の違いとはロジック、パラメタチ作成などによるューニングと
 https://fatalfailure.wordpress.com/2016/06/10/improving-kubernetes-reliability-
quicker-detection-of-a-node-down/
56
Copyright(c) 2011 Linux-HA Japan Project 56
おわり
 Pacemakerをこれから開発コミュニティへのフィードバック・貢献もよろしくお願いしますいします!

More Related Content

What's hot

What's hot (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 

Similar to コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは

20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
 

Similar to コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは (20)

KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstream
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
 
20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化Kubernetes1.9でWindowsコンテナーをクラスタ化
Kubernetes1.9でWindowsコンテナーをクラスタ化
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
 
20090124shibuya Trac
20090124shibuya Trac20090124shibuya Trac
20090124shibuya Trac
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
TripleO Deep Dive 1.1
TripleO Deep Dive 1.1TripleO Deep Dive 1.1
TripleO Deep Dive 1.1
 
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
 

Recently uploaded

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは

  • 1. Copyright(c) 2018 Linux-HA Japan Project コンテナを止めるなを止めるな止めるなめるな! PacemakerによるコンテナコンテナHAクラスタリングととKubernetesとの違いとは違いとはいとは 2018年10月27日 Linux-HA Japan プロジェクト http://linux-ha.osdn.jp/ 森 啓介
  • 2. 2 Copyright(c) 2011 Linux-HA Japan Project 2 自己紹介  名前: 森 啓介 (Keisuke MORI)Keisuke MORI))  twitter: @ksk_ha  Linux-HA Japanプロジェクト関連の活動の違いとは活動  Pacemakerリポジトリパッケージの違いとはリリース  http://linux-ha.osdn.jp/  ClusterLabs プロジェクトの違いとはコミッタ  Pacemaker、resource-agents などHAクラスタ関連の活動の違いとは開発コミュニティコミュニティ  https://github.com/ClusterLabs/  本業  普段の業務の違いとは業務: NTT OSSセンタ  NTTグとループ内におけるにおけるコンテナPacemaker/Heartbeatの違いとは導入支援・サポートサポート  バグと報告・サポートパッチ作成などによる作成などによるなどによるコンテナNTTから開発コミュニティへのフィードバック・貢献開発コミュニティコミュニティへの違いとはフィードバック・サポート貢献
  • 3. 3 Copyright(c) 2011 Linux-HA Japan Project 3 もくじ  Pacemakerとは  オーケストレーションツールによるコンテナコンテナHA  Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA  今後の動向の違いとは動向
  • 4. 4 Copyright(c) 2011 Linux-HA Japan Project 4 もくじ  Pacemakerとは  オーケストレーションツールによるコンテナコンテナHA  Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA  今後の動向の違いとは動向
  • 5. 5 Copyright(c) 2011 Linux-HA Japan Project 5 Pacemaker?なにそれおいしいの?なにそれおいしいの違いとは?なにそれおいしいの?  Pacemakerとは、 オープンソースの違いとはHAクラスタソフトウェアです。です。 HHigh AAvailability = 高可用性 サービスをできるコンテナ限りり 「止めない!」こと止めない!」ことめない!」こと
  • 6. 6 Copyright(c) 2011 Linux-HA Japan Project 6 Pacemakerの違いとは概要 サーバ#1 サーバ#2 サービスの監視・制御の監視・制御監視・制御 サーバ間の監視・制御間の監視・制御の監視・制御監視・制御  サーバ・サポートアです。プリケーションの違いとは故障監視
  • 7. 7 Copyright(c) 2011 Linux-HA Japan Project 7 Pacemakerの違いとは概要 サーバ#1 サーバ#2 サービスの監視・制御の監視・制御フェイルオーバ間の監視・制御  故障検知時、自動的にフェイルオーバにフェイルオーバ  ダウンタイムの最小化の違いとは最小化  STONI)THによるコンテナデータの違いとは安全性確保 STONITH(強制電源断)
  • 8. 8 Copyright(c) 2011 Linux-HA Japan Project 8 Pacemakerを詳しく知りたかったら…しく知りたかったら開発コミュニティへのフィードバック・貢献… Linux-HA Japan プロジェクト 2F 206F 2F 20606教室にてデモ展示中!にてデモ展示中!デモ展示中!展示中!
  • 9. 9 Copyright(c) 2011 Linux-HA Japan Project 9  Pacemakerとは  オーケストレーションツールによるコンテナコンテナHA  Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA  今後の動向の違いとは動向 もくじ
  • 10. 10 Copyright(c) 2011 Linux-HA Japan Project 10 コンテナが止まった!そのときどうなる?止めない!」ことまった!その違いとはときどうなるコンテナ?なにそれおいしいの? もう時代はコンテナ・クラウドでしょー時代はコンテナ・クラウドでしょーはコンテナ・クラウドでしょーコンテナ・クラウドでしょーでしょー Kubernetesがあるから大丈夫!大丈夫! セルフヒーリング機能は確かに便利ね機能は確かに便利ねはコンテナ・クラウドでしょー確かに便利ねかに便利ねね でもPodの種類にも気をつけて種類にも気をつけてにも気をつけてをつけてデモ展示中!
  • 11. 11 Copyright(c) 2011 Linux-HA Japan Project 11 Kubernetes セルフヒーリングと機能によるコンテナ Pod 共有ストレージストレージ マスの監視・制御ターからの監視・制御監視 master worker1 worker2 Podの監視・制御再起動 レプリカ数の維持数の維持の監視・制御維持 物理ネットワークネットワーク Pod
  • 12. 12 Copyright(c) 2011 Linux-HA Japan Project 12  起動時は常に同じ状態に同じ状態じ状態  データを保存する必要はなするコンテナ必要はな い  必要なだけいくつでも起動 すればよい  Webサーバ、アです。プリケーシ ョンサーバなど Statelessコンテナ と Statefulコンテナ  起動時は「止めない!」こと前回と同じ」と同じ状態じ」 データを持った状態で起動った状態で起動  データの違いとは永続化と共有ストレージ  別の物理サーバでも同じデータの違いとは物理ネットワークサーバでも同じ状態じデータ  個々の識別が必要の違いとは識別の物理サーバでも同じデータが止まった!そのときどうなる?必要  再起動しても同じ状態じデータ  データベースサーバ、 ファイルサーバなど Statelessコンテナ Deployment, ReplicaSet Statefulコンテナ StatefulSet
  • 13. 13 Copyright(c) 2011 Linux-HA Japan Project 13 Deployment vs. StatefulSet サービス継続性の違いとは違いとはい 共有ストレージストレージ Deployment StatefulSet master worker1 worker2 物理ネットワークネットワーク ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してして 監視処理ネットワークが止まった!そのときどうなる?タイムの最小化アです。ウトした! ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してして 監視処理ネットワークが止まった!そのときどうなる?タイムの最小化アです。ウトした!
  • 14. 14 Copyright(c) 2011 Linux-HA Japan Project 14 Deployment vs. StatefulSet サービス継続性の違いとは違いとはい 共有ストレージストレージ Deployment StatefulSet master worker1 worker2 物理ネットワークネットワーク デッドロックだね データベースが止まった!そのときどうなる?フェイルØωØverωØverØωØververしないニャ!
  • 15. 15 Copyright(c) 2011 Linux-HA Japan Project 15 Deployment vs. StatefulSet サービス継続性の違いとは違いとはい 共有ストレージストレージ Deployment StatefulSet master worker1 worker2 Deployment は他のワーカーノードで再起動するの違いとはワーカーノードで再起動するコンテナ StatefulSet は再起動されず、コンテナは止めない!」ことまるコンテナ! Deployment は他のワーカーノードで再起動するの違いとはワーカーノードで再起動するコンテナ StatefulSet は再起動されず、コンテナは止めない!」ことまるコンテナ! 物理ネットワークネットワーク
  • 16. 16 Copyright(c) 2011 Linux-HA Japan Project 16 デモ 1 Kubernetes の違いとは実際の動作の違いとは動作
  • 17. 17 Copyright(c) 2011 Linux-HA Japan Project 17 デモ 1: 初期状態(Keisuke MORI)ノード) [root@master osc2018tk-demo]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 4d v1.11.3 worker1 Ready <none> 4d v1.11.3 worker2 Ready <none> 4d v1.11.3 [root@master osc2018tk-demo]# ●3ノード構成などによる ●全てReady状態 ●3ノード構成などによる ●全てReady状態
  • 18. 18 Copyright(c) 2011 Linux-HA Japan Project 18 デモ 1: 初期状態(Keisuke MORI)Pod) [root@master osc2018tk-demo]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE httpd-5f9cf547cc-dfsqn 1/1 Running 0 8m 10.244.2.16 worker2 httpd-5f9cf547cc-pc7s2 1/1 Running 0 30s 10.244.1.22 worker1 postgres-0 1/1 Running 0 46s 10.244.1.21 worker1 [root@master osc2018tk-demo]# kubectl get deployments NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE httpd 2 2 2 2 4d [root@master osc2018tk-demo]# kubectl get statefulsets NAME DESIRED CURRENT AGE postgres 1 1 4d [root@master osc2018tk-demo]# ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動 ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動 ●httpdはDeployment ●postgresはStatefulSet ●httpdはDeployment ●postgresはStatefulSet
  • 19. 19 Copyright(c) 2011 Linux-HA Japan Project 19 デモ 1: ネットワーク切断が発生しての違いとは疑似故障 ●worker1の違いとは全ての違いとはアです。ダプターの違いとは ケーブル接続をオフにするコンテナ ●worker1の違いとは全ての違いとはアです。ダプターの違いとは ケーブル接続をオフにするコンテナ
  • 20. 20 Copyright(c) 2011 Linux-HA Japan Project 20 デモ 1: ネットワーク切断が発生して後の動向の違いとは状態 Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:35:42 2018 NAME STATUS ROLES AGE VERSION master Ready master 4d v1.11.3 worker1 NotReady <none> 4d v1.11.3 worker2 Ready <none> 4d v1.11.3 NAME READY STATUS RESTARTS AGE IP NODE httpd-5f9cf547cc-chk6c 1/1 Running 0 7s 10.244.2.18 worker2 httpd-5f9cf547cc-dfsqn 1/1 Running 0 10m 10.244.2.16 worker2 httpd-5f9cf547cc-pc7s2 1/1 Unknown 0 2m 10.244.1.22 worker1 postgres-0 1/1 Unknown 0 2m 10.244.1.21 worker1 ●worker1はNotReady状態となるコンテナ (Keisuke MORI)デフォルトでは40秒後の動向) ●worker1はNotReady状態となるコンテナ (Keisuke MORI)デフォルトでは40秒後の動向) ●worker1上のの違いとはpodは Unknown 状態となるコンテナ ●httpdはworker2で2つ起動するコンテナ ●postgres はworker2では起動しない (Keisuke MORI)デフォルトでは5分後の動向) ●worker1上のの違いとはpodは Unknown 状態となるコンテナ ●httpdはworker2で2つ起動するコンテナ ●postgres はworker2では起動しない (Keisuke MORI)デフォルトでは5分後の動向)
  • 21. 21 Copyright(c) 2011 Linux-HA Japan Project 21  コンテナの違いとは二重起動によるコンテナデータ破損を防ぐためです。を防ぐためです。ぐためです。  コンテナ状態: Unknown → まだ動いてるコンテナかも?  コンテナが止まった!そのときどうなる?「止めない!」こと確実に停止めない!」こと」したことを確認できない限り再起動は危険できない限りり再起動は危険  でもさあ…  Q.でもネットワークが止まった!そのときどうなる?切れてたら開発コミュニティへのフィードバック・貢献データも書き込めないから安全だよね?き込めないから安全だよね?めないから開発コミュニティへのフィードバック・貢献安全だよね?なにそれおいしいの?  ネットワーク通信が復旧するとそこで二重書き込みが発生します。が止まった!そのときどうなる?復旧するとそこで二重書き込みが発生します。するコンテナとそこで二重書き込めないから安全だよね?き込めないから安全だよね?みが止まった!そのときどうなる?発コミュニティ生してします。  ネットワークスイッチ作成などによるの違いとは一時的にフェイルオーバな故障などではよくあるコンテナシナリオ  監視用とストレージ用で別の物理サーバでも同じデータ々の識別が必要の違いとはネットワークであるコンテナ構成などによるもあります。  SAN経由、ストレージ専用ネットワーク(Keisuke MORI)トラフィック、セキュリティ上のの違いとは理ネットワーク由など)  Q.物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?が止まった!そのときどうなる?落ちたらさすがに再起動するよね?ちたら開発コミュニティへのフィードバック・貢献さすが止まった!そのときどうなる?に再起動するコンテナよね?なにそれおいしいの?  しません。  物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生してとネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して(Keisuke MORI)通信が復旧するとそこで二重書き込みが発生します。経路の故障の違いとは故障)は区別の物理サーバでも同じデータが止まった!そのときどうなる?つかないから開発コミュニティへのフィードバック・貢献です。  どちら開発コミュニティへのフィードバック・貢献も「止めない!」こと監視タイムの最小化アです。ウト(Keisuke MORI)応答なしなし)」としか検知できない なぜフェイルオーバしないのかフェイルオーバしないの違いとはか?
  • 22. 22 Copyright(c) 2011 Linux-HA Japan Project 22  一般的にフェイルオーバなデータベースサーバは StatefulSet とするコンテナ必要が止まった!そのときどうなる? あるコンテナ。  データの違いとは永続化の違いとはため  インスタンスごとの違いとは識別の物理サーバでも同じデータの違いとはため  StatefulSet は、物理ネットワークサーバの違いとは故障に対しては自動的にサーしては自動的にフェイルオーバにサー ビス継続を行うことはできない。うことはできない。  Podの違いとは二重起動によるコンテナデータ破損を防ぐためです。を防ぐためです。ぐため Kubernetesの違いとはサービス継続性の違いとは留意点
  • 23. 23 Copyright(c) 2011 Linux-HA Japan Project 23 コンテナが止まった!そのときどうなる?止めない!」ことまった!その違いとはときどうなるコンテナ?なにそれおいしいの? もう時代はコンテナ・クラウドでしょー時代はコンテナ・クラウドでしょーはコンテナ・クラウドでしょーコンテナ・クラウドでしょーでしょー Kubernetesがあるから大丈夫!大丈夫! セルフヒーリング機能は確かに便利ね機能は確かに便利ねはコンテナ・クラウドでしょー確かに便利ねかに便利ねね でもPodの種類にも気をつけて種類にも気をつけてにも気をつけてをつけてデモ展示中! StatefulSetはコンテナ・クラウドでしょー物理サーバが故障サーバが故障が故障 したら大丈夫!止まっちゃうんだよまっちゃう時代はコンテナ・クラウドでしょーんだよ 大事なデータが壊れないようになデータが壊れないようにデータが壊れないようにが壊れないようにれなデータが壊れないようにいよう時代はコンテナ・クラウドでしょーに 守っているんだねってデモ展示中!いるんだね!
  • 24. 24 Copyright(c) 2011 Linux-HA Japan Project 24 物理ネットワークサーバではどうやってたの違いとは? でも物理サーバが故障サーバが故障の種類にも気をつけてHAクラスタが壊れないようにはコンテナ・クラウドでしょー フェイルオーバが故障できてデモ展示中!たよね?なデータが壊れないようにんで? それはコンテナ・クラウドでしょー Pacemaker の種類にも気をつけて STONITH機能は確かに便利ねの種類にも気をつけておかげね
  • 25. 25 Copyright(c) 2011 Linux-HA Japan Project 25  STONI)TH機能によるコンテナ(Keisuke MORI)フェンシングと)  I)PMI)経由でサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生してを行うことはできない。う  確実にサーバを停止めない!」ことさせるコンテナことで データの違いとは安全を確保 物理ネットワークサーバではどうやってたの違いとは? サーバ#1 サーバ#2 サービスの監視・制御の監視・制御フェイルオーバ間の監視・制御 STONITH(強制電源断) I)PMI)制御機能によるコンテナ ※IPMIによるコンテナ電源が落ちたらさすがに再起動するよね?断が発生して以外に、共有ディスク接続を利用した方式などもあります。に、共有ストレージディスク接続を利用した方式などもあります。などもあります。
  • 26. 26 Copyright(c) 2011 Linux-HA Japan Project 26 STONI)TH機能によるコンテナ(Keisuke MORI)フェンシングと)とは?  フェンスを立てて隔離することてて隔離することするコンテナこと
  • 27. 27 Copyright(c) 2011 Linux-HA Japan Project 27  狩りに出かけたハンターからの救急電話りに出かけたハンターからの救急電話かけたハンターから開発コミュニティへのフィードバック・貢献の違いとは救急電話  「止めない!」こと大変だだ! 友達が木から落ちて死んでしまったが止まった!そのときどうなる?木から落ちて死んでしまったから開発コミュニティへのフィードバック・貢献落ちたらさすがに再起動するよね?ちて死んでしまったんでしまった!」  「止めない!」こと落ちたらさすがに再起動するよね?ち着いて。まずは彼が本当に死んでいるかどうか確かめて」いて。まずは彼が本当に死んでいるかどうか確かめて」が止まった!そのときどうなる?本当に死んでいるかどうか確かめて」に死んでしまったんでいるコンテナかどうか確かめて」  「止めない!」ことバーン!(Keisuke MORI)銃声)」  「止めない!」ことOK、死んでしまったんでるコンテナ。次はは?」 余談: 世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク ※出かけたハンターからの救急電話典 “World's funniest joke” ハートフォードシャー大学 リチ作成などによるャード・サポートワイズマン博士(Keisuke MORI)2002年) Make sure he is dead. 死んでしまったんでるコンテナかどうかを確かめるコンテナ (気絶しているだけかもしれない獲物をしているコンテナだけかもしれない獲物を) 確実に死んでしまったんだ状態にするコンテナ これってSTONITHじゃね?
  • 28. 28 Copyright(c) 2011 Linux-HA Japan Project 28 故障モデル ※出かけたハンターからの救急電話典: 「止めない!」こと分散システムについて語らせてくれ」熊崎 宏樹システムの最小化について語らせてくれ」熊崎 宏樹ら開発コミュニティへのフィードバック・貢献せてくれ」熊崎 宏樹 Copyright©2016 NTT Corp. All Rights Reserved. https://www.slideshare.net/kumagi/ss-78765920/15
  • 29. 29 Copyright(c) 2011 Linux-HA Japan Project 29 故障モデル Fail-Stop Crash-Recovery 故障なし Byzantine 実際の動作の違いとは故障例 物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生して カーネルクラッシュ ネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して 異常に同じ状態な高負荷 クラッキングとなど(通常に同じ状態は対しては自動的にサー応は想定しないしない) 他のワーカーノードで再起動するノードで 起動した場合のの違いとは データの違いとは安全性 監視タイムの最小化アです。ウト 発コミュニティ生して時の違いとは判断が発生して ○安全 ×危険 区別の物理サーバでも同じデータが止まった!そのときどうなる?つかない! 安全の違いとはためには他のワーカーノードで再起動するの違いとはノードで 起動してはいけない! 安全の違いとはためには他のワーカーノードで再起動するの違いとはノードで 起動してはいけない! どっちもだよ! どっち? どっち?
  • 30. 30 Copyright(c) 2011 Linux-HA Japan Project 30 故障モデル Fail-Stop Crash-Recovery 故障なし Byzantine 実際の動作の違いとは故障例 物理ネットワークサーバの違いとは電源が落ちたらさすがに再起動するよね?断が発生して カーネルクラッシュ ネットワーク通信が復旧するとそこで二重書き込みが発生します。断が発生して 異常に同じ状態な高負荷 クラッキングとなど(通常に同じ状態は対しては自動的にサー応は想定しないしない) 他のワーカーノードで再起動するノードで 起動した場合のの違いとは データの違いとは安全性 STONI)TH 実行うことはできない。後の動向の違いとは判断が発生して ○安全 ×危険 ○安全 STONI)THの違いとは実行うことはできない。により 確実に安全と言えるえるコンテナ 状態に確定しないさせるコンテナ
  • 31. 31 Copyright(c) 2011 Linux-HA Japan Project 31 物理ネットワークサーバではどうやってたの違いとは? でも物理サーバが故障サーバが故障の種類にも気をつけてHAクラスタが壊れないようにはコンテナ・クラウドでしょー フェイルオーバが故障できてデモ展示中!たよね?なデータが壊れないようにんで? それはコンテナ・クラウドでしょー Pacemaker の種類にも気をつけて STONITH機能は確かに便利ねの種類にも気をつけておかげね じゃあそれを使ってコンテナをってデモ展示中!コンテナを 止まっちゃうんだよめなデータが壊れないようにいよう時代はコンテナ・クラウドでしょーにしちゃおう時代はコンテナ・クラウドでしょー! そこで Pacemaker bundle 機能は確かに便利ねの種類にも気をつけて出番よ!よ!
  • 32. 32 Copyright(c) 2011 Linux-HA Japan Project 32  Pacemakerとは  オーケストレーションツールによるコンテナコンテナHA  Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA  今後の動向の違いとは動向 もくじ
  • 33. 34 Copyright(c) 2011 Linux-HA Japan Project 34  Pacemaker でコンテナHAを実現する新機能するコンテナ新機能によるコンテナ  コンテナ管理ネットワークに必要な機能によるコンテナをまとめたPacemakerの違いとはリソース  コンテナおよびコンテナ内で起動するアプリケーションの起動・終了・監コンテナ内におけるで起動するコンテナアです。プリケーションの違いとは起動・サポート終了・サポート監 視が止まった!そのときどうなる?可能によるコンテナ  STONI)TH機能によるコンテナや既存する必要はなの違いとはリソースエージェント(Keisuke MORI)RA)と合のわせて利用可能によるコンテナ  Pacemaker-1.1.17 以降で利用可能で利用可能によるコンテナ  対しては自動的にサー応コンテナランタイムの最小化 Pacemaker bundle とは? コンテナランタイムの最小化 対しては自動的にサー応Pacemakerバージョン Docker 1.1.17以降で利用可能 rkt 1.1.18以降で利用可能 podman (Keisuke MORI)CRI)-O) 開発コミュニティ中(Keisuke MORI)2.0.*以降で利用可能予定しない)
  • 34. 35 Copyright(c) 2011 Linux-HA Japan Project 35 Pacemaker bundle の違いとはアです。ーキテクチ作成などによるャ bundle リソースエージェント Pacemaker-remote 仮想IP リソースエージェント Pacemaker-remote 仮想IP リソースエージェント Pacemaker-remote 仮想IP コンテナの起動・制御の監視・制御起動・制御 サービスの監視・制御の監視・制御起動・監視 bundle レプリカ数の維持数の維持の監視・制御制御
  • 35. 36 Copyright(c) 2011 Linux-HA Japan Project 36 bundle 設定しない例(Keisuke MORI)cib.xml) <bundle id="httpd-bundle"> <docker image="pcmktest:http" replicas=“2" replicas-per-host= “2" options="--log-driver=journald"/> <network ip-range-start="192.168.33.200" host-interface="eth1" host-netmask="24"> <port-mapping id="httpd-port" port="80"/> </network> <storage> <storage-mapping id="httpd-root" source-dir-root="/var/local/containers" target-dir="/var/www/html" options="rw"/> <storage-mapping id="httpd-logs" source-dir-root="/var/log/pacemaker/bundles" target-dir="/etc/httpd/logs" options="rw"/> </storage> <primitive class="ocf" id="httpd" provider="heartbeat" type="apache"> <operations> <op name="start" interval="0s" timeout="60s" on-fail="restart" id="httpd-start-0s"/> <op name="monitor" interval="10s" timeout="60s" on-fail="restart" id="httpd-monitor-10s"/> <op name="stop" interval="0s" timeout="60s" on-fail="block" id="httpd-stop-0s"/> </operations> </primitive> </bundle> ※ bundleに関するコンテナ詳しく知りたかったら…細については については OSC 2018 Kyoto セミナー資料を参照を参照 http://linux-ha.osdn.jp/wp/archives/4744
  • 36. 37 Copyright(c) 2011 Linux-HA Japan Project 37 Pacemaker bundle とSTONI)THによるコンテナコンテナHA 共有ストレージストレージ 物理ネットワークネットワーク bundle external/ipmi bundle コンテナbundleリソース コンテナbundleリソース コンテナSTONI)THリソース コンテナbundleリソース external/ipmi I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ コンテナSTONI)THリソース
  • 37. 38 Copyright(c) 2011 Linux-HA Japan Project 38 Pacemaker bundle とSTONI)THによるコンテナコンテナHA 共有ストレージストレージ 物理ネットワークネットワーク bundle bundle コンテナbundleリソース コンテナbundleリソース コンテナbundleリソース I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ external/ipmi コンテナSTONI)THリソース external/ipmi コンテナSTONI)THリソース IPMIによる電源断電源断
  • 38. 39 Copyright(c) 2011 Linux-HA Japan Project 39 Pacemaker bundle とSTONI)THによるコンテナコンテナHA 共有ストレージストレージ 物理ネットワークネットワーク bundle bundle コンテナbundleリソース コンテナbundleリソース コンテナbundleリソース I)PMI)制御機能によるコンテナ I)PMI)制御機能によるコンテナ external/ipmi コンテナSTONI)THリソース external/ipmi コンテナSTONI)THリソース IPMIによる電源断電源断 安全にフェイルオーバにフェイルオーバ間の監視・制御
  • 39. 40 Copyright(c) 2011 Linux-HA Japan Project 40 Pacemaker bundle コンテナHA構成などによる例  crm_mon 出かけたハンターからの救急電話力例 コンテナbundleリソース コンテナSTONI)THリソース Online: [ worker1 worker2 ] GuestOnline: [ httpd-bundle-0@worker1 httpd-bundle-1@worker2 postgres-bundle-0@worker1 ] Full list of resources: Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1] postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker1 Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique) httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker1 httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2 stonith-worker2 (stonith:external/ipmi): Started worker1 stonith-worker1 (stonith:external/ipmi): Started worker2
  • 40. 41 Copyright(c) 2011 Linux-HA Japan Project 41 デモ Pacemaker bundle vs. Kubernetes
  • 41. 42 Copyright(c) 2011 Linux-HA Japan Project 42 Pacemaker bundle デモ環境構成などによる 物理ネットワークネットワーク Kubernetes クラスタ Pacemaker クラスタ master worker1 worker2 共有ストレージストレージ (Keisuke MORI)NFS、masterに同じ状態居) c c ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してした! ネットワーク接続断が発生してが止まった!そのときどうなる?発コミュニティ生してした!
  • 42. 43 Copyright(c) 2011 Linux-HA Japan Project 43 Pacemaker bundle デモ実行うことはできない。結果(Keisuke MORI)予定しない) 物理ネットワークネットワーク Kubernetes クラスタ Pacemaker クラスタ 共有ストレージストレージ (Keisuke MORI)NFS、masterに同じ状態居) master worker1 worker2 STONI)TH機能によるコンテナによりworker1は電源が落ちたらさすがに再起動するよね?断が発生して状態となるコンテナ Pacemakerクラスタは全コンテナが止まった!そのときどうなる?フェイルオーバ Kubernetesクラスタはデータベースが止まった!そのときどうなる?停止めない!」こと STONI)TH機能によるコンテナによりworker1は電源が落ちたらさすがに再起動するよね?断が発生して状態となるコンテナ Pacemakerクラスタは全コンテナが止まった!そのときどうなる?フェイルオーバ Kubernetesクラスタはデータベースが止まった!そのときどうなる?停止めない!」こと c c
  • 43. 44 Copyright(c) 2011 Linux-HA Japan Project 44 デモ 2: 初期状態(Keisuke MORI)Pacemaker) Online: [ worker1 worker2 ] GuestOnline: [ httpd-bundle-0@worker1 httpd-bundle-1@worker2 postgres-bundle-0@worker1 ] Full list of resources: Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1] postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker1 Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique) httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker1 httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2 stonith-worker2 (stonith:external/ipmi): Started worker1 stonith-worker1 (stonith:external/ipmi): Started worker2 ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動 ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動
  • 44. 45 Copyright(c) 2011 Linux-HA Japan Project 45 デモ 2: 初期状態(Keisuke MORI)Kubernetes) Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:39:02 2018 NAME STATUS ROLES AGE VERSION master Ready master 4d v1.11.3 worker1 Ready <none> 4d v1.11.3 worker2 Ready <none> 4d v1.11.3 NAME READY STATUS RESTARTS AGE IP NODE httpd-5f9cf547cc-dfsqn 1/1 Running 0 13m 10.244.2.16 worker2 httpd-5f9cf547cc-tn9wd 1/1 Running 0 2m 10.244.1.24 worker1 postgres-0 1/1 Running 0 2m 10.244.1.23 worker1 ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動 ●httpdは両ノードで起動ノードで起動 ●postgresはworker1で起動
  • 45. 46 Copyright(c) 2011 Linux-HA Japan Project 46 デモ 2: ネットワーク切断が発生しての違いとは疑似故障 ●worker1の違いとは全ての違いとはアです。ダプターの違いとは ケーブル接続をオフにするコンテナ ●worker1の違いとは全ての違いとはアです。ダプターの違いとは ケーブル接続をオフにするコンテナ
  • 46. 47 Copyright(c) 2011 Linux-HA Japan Project 47 デモ 2: ネットワーク切断が発生して後の動向の違いとは状態(Keisuke MORI)故障サーバ) ●worker1はSTONI)TH機能によるコンテナにより 電源が落ちたらさすがに再起動するよね?オフとなるコンテナ ●worker1はSTONI)TH機能によるコンテナにより 電源が落ちたらさすがに再起動するよね?オフとなるコンテナ
  • 47. 48 Copyright(c) 2011 Linux-HA Japan Project 48 デモ 2: マシン電源が落ちたらさすがに再起動するよね?オフ後の動向の違いとは状態(Keisuke MORI)Pacemaker) Online: [ worker2 ] OFFLINE: [ worker1 ] GuestOnline: [ httpd-bundle-0@worker2 httpd-bundle-1@worker2 postgres-bundle-0@worker2 ] Full list of resources: Docker container: postgres-bundle [192.168.33.10:5000/pcmkdemo/postgres:0.1] postgres-bundle-0 (192.168.33.200) (ocf::heartbeat:pgsql): Started worker2 Docker container set: httpd-bundle [192.168.33.10:5000/pcmkdemo/httpd:0.1] (unique) httpd-bundle-0 (192.168.33.210) (ocf::heartbeat:apache): Started worker2 httpd-bundle-1 (192.168.33.211) (ocf::heartbeat:apache): Started worker2 stonith-worker2 (stonith:external/ipmi): Stopped stonith-worker1 (stonith:external/ipmi): Started worker2 ●httpdはworker2で2つ起動するコンテナ ●postgresもworker2で再起動するコンテナ ●httpdはworker2で2つ起動するコンテナ ●postgresもworker2で再起動するコンテナ
  • 48. 49 Copyright(c) 2011 Linux-HA Japan Project 49 デモ 2: マシン電源が落ちたらさすがに再起動するよね?オフ後の動向の違いとは状態(Keisuke MORI)Kubernetes) Every 1.0s: kubectl get node; echo ; kubectl get pods -o wide Wed Oct 24 08:41:52 2018 NAME STATUS ROLES AGE VERSION master Ready master 4d v1.11.3 worker1 NotReady <none> 4d v1.11.3 worker2 Ready <none> 4d v1.11.3 NAME READY STATUS RESTARTS AGE IP NODE httpd-5f9cf547cc-9qgh2 1/1 Running 0 1m 10.244.2.19 worker2 httpd-5f9cf547cc-dfsqn 1/1 Running 0 16m 10.244.2.16 worker2 httpd-5f9cf547cc-tn9wd 1/1 Unknown 0 5m 10.244.1.24 worker1 postgres-0 1/1 Unknown 0 5m 10.244.1.23 worker1 ●worker1上のの違いとはpodは Unknown 状態となるコンテナ ●httpdはworker2で2つ起動するコンテナ ●postgres はworker2では起動しない (Keisuke MORI)ネットワーク切断が発生して時と同じ状態じ結果) ●worker1上のの違いとはpodは Unknown 状態となるコンテナ ●httpdはworker2で2つ起動するコンテナ ●postgres はworker2では起動しない (Keisuke MORI)ネットワーク切断が発生して時と同じ状態じ結果)
  • 49. 50 Copyright(c) 2011 Linux-HA Japan Project 50  Pacemakerとは  オーケストレーションツールによるコンテナコンテナHA  Pacemaker bundle 機能によるコンテナによるコンテナコンテナHA  今後の動向の違いとは動向 もくじ
  • 50. 51 Copyright(c) 2011 Linux-HA Japan Project 51 Pacemaker bundle の違いとは現する新機能状と今後の動向  Pacemaker によるコンテナコンテナHAが止まった!そのときどうなる?可能によるコンテナになった!  とは言えるえ…  bundle機能によるコンテナもまだまだ発コミュニティ展途上の  ユーザインタフェースの違いとは対しては自動的にサー応  crmshは開発コミュニティ最新版のみ対応。の違いとはみ対しては自動的にサー応。pcs の違いとは方が止まった!そのときどうなる?対しては自動的にサー応が止まった!そのときどうなる?早い。い。  ドキュメント・サポート動作仕様の詳細の違いとは詳しく知りたかったら…細については  コンテナイメージの違いとは要件・サポート作り方、詳しく知りたかったら…細については 設定しないや故障解析方法などの情報などの違いとは情報  コンテナ技術自体の発展の違いとは発コミュニティ展  podman(Keisuke MORI)CRI)-O)対しては自動的にサー応、Dockerの違いとは今後の動向は?  実績・サポートサポート  Red Hat 社 HA add-on では Technology Preview  Red Hat OpenStack Platform 12以降で利用可能の違いとはユースケースの違いとはみフルサポート  https://access.redhat.com/articles/3388681  オーケストレーションツールに取って代わるものではないって代わるものではないわるコンテナもの違いとはではない
  • 51. 52 Copyright(c) 2011 Linux-HA Japan Project 52 Pacemaker bundle の違いとは利用シーン  オーケストレーションツールが止まった!そのときどうなる?適している利用シーンしているコンテナ利用シーン  DevOps, CI)/CD、頻繁なリリース、大規模なスケーリングなリリース、大規模なスケーリングなスケーリングと  物理ネットワーク故障はマネージドサービスの違いとはSLA  Pacemaker bundle が止まった!そのときどうなる?適している利用シーンしているコンテナ利用シーン  物理ネットワーク環境と同じ状態様の詳細の違いとはHA運用が止まった!そのときどうなる?必要、かつコンテナの違いとはメリットが止まった!そのときどうなる?欲しい場合しい場合の  アです。プリケーションの違いとはバージョンアです。ップが止まった!そのときどうなる?容易  バージョン依存する必要はなが止まった!そのときどうなる?異なるコンテナ複数のアプリケーションの同居の違いとはアです。プリケーションの違いとは同じ状態居  コンテナと非コンテナアプリケーションの同居コンテナアです。プリケーションの違いとは同じ状態居(Keisuke MORI)性能によるコンテナ上のの違いとは理ネットワーク由など)  比較的にフェイルオーバ小規模なスケーリングなコンテナHAクラスタ  信が復旧するとそこで二重書き込みが発生します。頼性を求められるオンプレミスシステムめら開発コミュニティへのフィードバック・貢献れるコンテナオンプレミスシステムの最小化  物理ネットワーク故障に対しては自動的にサーするコンテナ運用責任・サポート説明責任を求められるオンプレミスシステムめら開発コミュニティへのフィードバック・貢献れるコンテナようなシステムの最小化  Pacemaker bundle の違いとは利用実績例  Red Hat OpenStack Platform 12以降で利用可能  コントローラノードの違いとは各種ミドルウェアのコンテナ化ミドルウェアです。の違いとはコンテナ化  HAProxy, RabbitMQ, Galera, redis
  • 52. 53 Copyright(c) 2011 Linux-HA Japan Project 53 Linux-HA Japan の違いとは今後の動向の違いとは活動  Pacemaker-1.1.19-1.1 リポジトリパッケージ 近日リリース予定しない!  PostgreSQL 11以降で利用可能対しては自動的にサー応など  本日の違いとは bundle の違いとはデモでも使用しました!  なお、バージョン1.1.18-1.1の違いとはリリースはありません。  (Keisuke MORI)一部の利用方法で懸念事項が存在したため。の違いとは利用方法などの情報で懸念事項が存在したため。が止まった!そのときどうなる?存する必要はな在したため。したため。1.1.19-1.1では解消済みですみです)  1.1.*系は今後も継続してメンテナンスしていきます。は今後の動向も継続してメンテナンスしていきます。  Pacemaker-2.0以降で利用可能は…  RHEL 8 / CentOS 8 同じ状態梱版のみ対応。と親和性の違いとは高い方式などもあります。を検討中。
  • 53. 54 Copyright(c) 2011 Linux-HA Japan Project 54 参考資料を参照 (Keisuke MORI)1/2)  本日の違いとはデモ環境  https://github.com/kskmori/osc2018tk-demo  (Keisuke MORI)README等準備中です)  Pacemaker bundle 関連の活動  Bundle Walk-Through (Keisuke MORI)公式などもあります。ドキュメント)  https://wiki.clusterlabs.org/wiki/Bundle_Walk-Through  Red Hat OSP12 での違いとは利用事例  https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/ 12/html/understanding_red_hat_openstack_platform_high_availability/ pacemaker#pacemaker-services  STONI)TH関連の活動  分散システムについて語らせてくれ」熊崎 宏樹システムの最小化について語らせてくれ」熊崎 宏樹ら開発コミュニティへのフィードバック・貢献せてくれ  https://www.slideshare.net/kumagi/ss-78765920  世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク (Keisuke MORI)wikipedia)  https://ja.wikipedia.org/wiki/世界で一番笑えるジョークで一番笑えるジョークえるコンテナジョーク
  • 54. 55 Copyright(c) 2011 Linux-HA Japan Project 55 参考資料を参照 (Keisuke MORI)2/2)  Kubernetes 関連の活動  StatefulSets (Keisuke MORI)公式などもあります。ドキュメント)  https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/  StatefulSets の違いとは強制削除手順  二重起動時の違いとはデータ喪失のリスクについても記載ありの違いとはリスクについても記載ありあり  https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/  ノード停止めない!」こと時に StatefulSet が止まった!そのときどうなる?移動しないという issue  設計通りの違いとは動作であるコンテナとの違いとはコメントあり  https://github.com/kubernetes/kubernetes/issues/54368#issuecomment- 339378164  Kubernetes に対しては自動的にサーするコンテナ Fencing 機能によるコンテナの違いとは提案  https://github.com/kubernetes/community/blob/master/contributors/design- proposals/storage/pod-safety.md  Kubernetes の違いとはノード断が発生して検知の違いとはロジック、パラメタチ作成などによるューニングと  https://fatalfailure.wordpress.com/2016/06/10/improving-kubernetes-reliability- quicker-detection-of-a-node-down/
  • 55. 56 Copyright(c) 2011 Linux-HA Japan Project 56 おわり  Pacemakerをこれから開発コミュニティへのフィードバック・貢献もよろしくお願いしますいします!