2016-10-27 5 views
0

私はk8sの下で動作するポッドにlivenessProbesを実装しようとしています。私はポッドごとに50秒を殺している実装する必要がlivenessprobe mongodbのexecプローブがk8sの下でポッドを殺しています1.2.4

livenessProbe: 
     exec: 
     command: 
     - cat 
     - /etc/services 
     initialDelaySeconds: 45 
     timeoutSeconds: 5 

プローブ: ごく簡単なプローブは、例を参照して、取り組んでいます。

プローブが実装されていないと、必要に応じて見つからない場合は削除文字列が見つかった場合、それは1を返しているポッド内部と0ランコマンド
livenessProbe: 
     exec: 
     command: 
      mongo --port 27018 --eval "rs.status()" | grep "REMOVED" ; test $? -eq 1 
     initialDelaySeconds: 45 
     timeoutSeconds: 5 

[root @ eas-mongo-rs-3-ui81p /]#mongo --port 27018 --eval "rs.status()" | grep "REMOVED";テスト$? -eq 1

質問は、Container Exec Checkなどのコマンドを実装する方法です。あなたが考えるよう

よろしく

答えて

0

は、あなたのコマンドは、あなたがパイプラインや他のより高度なシェルの機能を使用したい場合は、あなたが/bin/shを使用することができ、あなたは公式ドキュメントでも見ることができます回避策を引用して実行されません。

だからあなたのプローブは次のようになります:

livenessProbe: 
    exec: 
    command: 
     - /bin/sh 
     - -c 
     - mongo --port 27018 --eval "rs.status()" | grep -vq "REMOVED" 
    initialDelaySeconds: 45 
    timeoutSeconds: 5 

あなたはまた、余分なtestコマンドを使用して、ステータスの反転を回避するためにgrepをする-vスイッチを使用することができます。

関連する問題