web-dev-qa-db-ja.com

ポッドのステータスを監視して警告するか、Google Container Engine(GKE)とStackdriverで再起動します

Stackdriverを使用してGKEクラスターで実行されているポッドのステータスと再起動数を監視する方法はありますか?

StackdriverですべてのポッドのCPU、メモリ、ディスク使用量のメトリックを確認できますが、クラッシュしたポッドや、クラッシュが原因で再起動されたレプリカセット内のポッドに関するメトリックを取得する方法がないようです。

ポッドを管理するためにKubernetesレプリカセットを使用しているため、ポッドがクラッシュすると、ポッドが再生成され、新しい名前で作成されます。 Stackdriverのメトリックは、ポッド名(ポッドの存続期間中に一意)で表示されることがわかりますが、これはあまり意味がありません。

ポッドの障害に関するアラートは非常に自然なことのように聞こえるので、現時点ではこれがサポートされていないとは信じがたいです。 Stackdriver for Google Container Engineから得られる監視機能とアラート機能は、すべて寿命が非常に短いポッドにバインドされているため、あまり役に立たないようです。

それで、これが箱から出してうまくいかない場合、継続的にクラッシュするポッドを監視する方法に関する既知の回避策またはベストプラクティスはありますか?

13
ctavan

私のクラスター(ベアメタルk8sクラスター)では、kube-state-metrics https://github.com/kubernetes/kube-state-metrics を使用して必要な処理を実行します。このプロジェクトはkubernetesリポジトリに属しており、非常に使いやすいです。デプロイされると、kube_pod_container_status_restartsを使用して、コンテナーが再起動するかどうかを知ることができます。

2
WizardCXY

これは、次の方法で手動で実行できます。

1)Logs Viewerで、次のフィルターを作成します。

resource.labels.project_id="<PROJECT_ID>"
resource.labels.cluster_name="<CLUSTER_NAME>"
resource.labels.namespace_name="<NAMESPACE, or default>"
jsonPayload.message:"Killing container"

2)フィルター入力の上にある[メトリックの作成]ボタンをクリックし、詳細を入力して、メトリックを作成します。

3)Stackdriverでこのメトリックを追跡できるようになりました。

これの代わりに組み込みのメトリックが通知されれば幸いです。

1
Jonathan Lin