質問するログイン新規登録

質問編集履歴

2

2019/01/30 12:29

投稿

h-matsuo
h-matsuo

スコア11

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,6 @@
4
4
 
5
5
  Deployment が 2 つ定義されており,`app-master` ではマスターアプリケーションを 1 Pod だけ,
6
6
  `app-worker` ではマスターに依存しているワーカーアプリケションを複数 Pod 作成しています。
7
- (以下では,ホストやポートの指定等の,実際の細かい設定は省いています。)
8
7
 
9
8
  ```lang-yaml
10
9
  apiVersion: apps/v1
@@ -44,7 +43,15 @@
44
43
  image: (略)
45
44
  ```
46
45
 
46
+ 上記では省きましたが,実際には ClusterIP サービスを立てて app-master が app-worker から見えるようになっています。
47
+
48
+ app-worker はパラメータとして app-master のホストやポートを渡され,
49
+ app-worker は起動時に app-master との接続を確立するようになっています。
50
+
51
+
52
+ # 問題点
53
+
47
- 残念ながらアプリケーションの実装がく,app-worker が app-master と接続を確立した後に app-master が落ちても,
54
+ 残念ながらアプリケーションの実装があまり良なく,app-worker が app-master と接続を確立した後に app-master が落ちても,
48
55
  app-worker はそれを検知できずにプロセスは残り続けます。
49
56
 
50
57
  結果,Kubernetes は app-master が落ちたことを検知して Pod を新しく作成してくれますが,

1

2019/01/30 12:29

投稿

h-matsuo
h-matsuo

スコア11

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  Deployment が 2 つ定義されており,`app-master` ではマスターアプリケーションを 1 Pod だけ,
6
6
  `app-worker` ではマスターに依存しているワーカーアプリケションを複数 Pod 作成しています。
7
+ (以下では,ホストやポートの指定等の,実際の細かい設定は省いています。)
7
8
 
8
9
  ```lang-yaml
9
10
  apiVersion: apps/v1
@@ -47,14 +48,15 @@
47
48
  app-worker はそれを検知できずにプロセスは残り続けます。
48
49
 
49
50
  結果,Kubernetes は app-master が落ちたことを検知して Pod を新しく作成してくれますが,
50
- app-worker はプロセスが落ちないまま残り続けるため新しい app-master とのコネクションが貼られせん
51
+ app-worker はプロセスが落ちないまま残り続け,古い app-master を参照し続け
52
+ このため新しい app-master とのコネクションが貼られません。
51
53
 
52
54
  従って,現状 app-master が落ちた場合は,マニフェスト全体を手動で `kubectl delete` & `kubectl apply` する必要がある状態となっています。
53
55
 
54
56
 
55
57
  # やりたいこと
56
58
 
57
- app-master が落ちた場合の復帰も自動化させたいです。
59
+ app-master が落ちた場合の復帰も意図通りに自動化させたいです。
58
60
 
59
61
  アプリケーションの実装を見直すのも手ですが,時間もないためアプリケーション側の変更はしたくありません。
60
62