2017-12-16 15 views
0

2つのコンテナを持つPodがあります:AppDatabaseです。 Appでコマンドを実行して終了するPodを実行したい。コンテナが完成したときにKubernetes - Mark Podが完了しました

私はそのコマンドを実行するために私のAppコンテナをセットアップしてから、それは十分に実行して終了します。しかし今、私のDatabaseコンテナはまだ稼働しているので、Podcompleteとマークされていません。

Appコンテナが完成したら、Podに完全とマークするにはどうすればよいですか?

答えて

0

これを実行するには、Kubernetes APIサーバーを呼び出すことができます。次の例を考えてみましょう:

fbgrecojr/office-hours:so-47848488

FROM centos:latest 
COPY pre-stop.sh/
RUN chmod +x /pre-stop.sh 

NOTEため

--- apiVersion: v1 kind: Pod metadata: name: multi-container-completion spec: containers: - name: long-running-process image: fbgrecojr/office-hours:so-47848488 command: ["sleep", "1000"] - name: short-running-process image: fbgrecojr/office-hours:so-47848488 command: ["sleep", "1"] lifecycle: preStop: exec: command: ["/pre-stop.sh"] 

pre-stop.sh

#!/bin/bash 
curl \ 
    -X DELETE \ 
    -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \ 
    --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ 
    https://kubernetes.default.svc.cluster.local/api/v1/namespaces/$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)/pods/$HOSTNAME 

Dockerfile私はきちんとので、これをテストすることができませんでしたフックは、私のローカルMinikube設定では動作していないようです。この問題が私にローカライズされていない場合は、対応する問題を追跡することができますhere

関連する問題