0

Google Container EngineにStackdriverロギングエージェントが有効なコンテナクラスターがあります。私のコンテナからstdoutログを正しく引き出しています。ここで、fluentd設定を変更して、GCPロギングビューに表示されるログに正しい重大度とコンポーネントが含まれるようにログパーサーを指定したいとします。このStackdriver logging guide from kubernetes.ioに続いて、私がしようと試みてきたGKE管理ログエージェントのfluentd設定を変更するにはどうすればよいですか?

:私のlog4jsに応じて新しい<filter>を追加しました

  • YMLファイルとして

    1. はfluentd ConfigMapを取得fluentdという名前の新しいConfigMapを作成しフォーマット
    2. を記録-cm-2 in kube-system名前空間
    3. fluentdのためにDaemonSetを編集し、それを設定します。 ConfigMap~fluentd-cm-2。私はDaemonSet yamlの新鮮なコピーを入手した後であっても、 "オブジェクトが変更されました"というエラーメッセージで後者が失敗したため、kubectl edit dsの代わりにkubectl replace -fを使用しました。

    予期しない結果:DaemonSetが再起動されますが、その設定を元ConfigMapに戻され、ので、私の変更を有効にしませんでした。

    ConfigMapも直接編集してみましたが(kubectl edit cm fluentd-gcp-config-v1.1 --namespace kube-system)、保存しましたが、元に戻しました。

    fluentdのDaemonSetConfigMapにはaddonmanager.kubernetes.io/mode: Reconcileというタグが付いています。私はこの "調整"モードのためにGKEが私の設定を上書きしたと結論づけます。

    私の質問は次のとおりです。クラスタコンフィギュレーションでGKEによってロギングエージェントがインストールされたときに、Google Container EngineクラスタのFluentD設定を変更するにはどうすればよいですか?

    答えて

    3

    documentation page you mentionedの前提条件のセクションをご覧ください。 GKEでは、デフォルトのStackdriver Loggingの統合を変更することはできません。その理由は、GKEがこの設定を維持しているためです。エージェントを更新し、その状態を監視します。すべての可能な構成に対して同じレベルのサポートを提供することは不可能です。

    しかし、いつでもデフォルトの統合を無効にして、独自のパッチ付きバージョンのDaemonSetを導入することができます。あなたはGKE documentationにデフォルトの統合を無効にする方法を見つけることができます:デフォルトの統合を無効にした後、あなたは新しい展開を自分で維持する必要があること

    gcloud beta container clusters update [CLUSTER-NAME] \ --logging-service=none

    注:エージェントを更新し、リソースを設定し、その健康を監視する。

    +0

    ありがとう、私の前提条件をスキップして悪い! – edwinbs

    関連する問題