2

一般に、Stackdriver でのロギングは、Container Engine -> cluster -> namespace -> application name (たとえば「postgres」) に移動することで、GKE 上の Kubernetes から自動的にログを取得するのに優れています。

GKE の Kubernetes デフォルト名前空間でステージング アプリケーションと本番アプリケーションを実行するポッドの 2 つのグループがあります。これらのうち 1 つのみが、Stackdriver 上の Pod のデフォルト アプリケーション名に記録されます。

切り捨てられた 2 つの postgres デプロイメント構成のスニペット:

製造

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres spec: replicas: 1 template: metadata: labels: app: database-production track: production spec: containers: - name: postgres image: postgres

演出

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres-staging spec: replicas: 1 template: metadata: labels: app: database-staging track: staging spec: containers: - name: postgres-staging image: postgres

これらのログの 1 つだけpostgresが Stackdriver に記録され、もう 1 つはまったく表示されません。デプロイのコンテナー名を変更しようとしましたが、効果はありません。うまくいくと思われる唯一の方法は、アプリケーション全体を別の名前空間でホストすることですが、Kubernetes のドキュメントでは、アプリケーションが巨大でない限り、名前空間を使用しないことを推奨しています

Stackdriver Logging / GKE 名が Kubernetes デプロイ構成を介してログを記録する方法を具体的に定義する方法はありますか?

4

0 に答える 0