LoggingTraitカスタム・リソース定義

LoggingTraitカスタム・リソースには、カスタム・イメージおよびFluentd構成ファイルを含む追加のロギング・サイドカーの構成が含まれています。LoggingTraitを含むサンプルApplicationConfigurationを次に示します。このLoggingTraitを含むサンプル・アプリケーションをデプロイするには、ToDo-Listサンプル・アプリケーションのApplicationConfigurationを次のサンプルに置き換えます。

apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
  name: todo-appconf
  namespace: todo-list
  annotations:
    version: v1.0.0
    description: "ToDo List example application"
spec:
  components:
    - componentName: todo-domain
      traits:
        - trait:
            apiVersion: oam.verrazzano.io/v1alpha1
            kind: LoggingTrait
            metadata:
              name: logging-trait-example
              namespace: todo-list
            spec:
              loggingImage: fluent/fleuntd-example-image # Replace with custom Fluentd Image
              loggingConfig: |-
                # Replace with Fluentd config file
                <match **>
                @type stdout
                </match>                
    - componentName: todo-jdbc-configmap
    - componentName: todo-mysql-configmap
    - componentName: todo-mysql-service
    - componentName: todo-mysql-deployment

このサンプル構成では、LoggingTrait logging-trait-exampletodo-domainアプリケーション・コンポーネントに設定され、指定されたFluentdイメージおよび構成ファイルを含むロギング・サイドカーを定義しています。このサイドカーはコンポーネントのポッドにアタッチされ、指定されたFluentd構成ファイルに従ってログを収集します。Fluentd DaemonSetがカスタム・ログを収集するには、前述の例に示すように、Fluentd構成ファイルでログをSTDOUTにする必要があります。

たとえば、ToDo-ListのサンプルApplicationConfigurationがLoggingTraitとともに正常にデプロイされると、tododomain-adminserverポッドにはlogging-stdoutという名前のコンテナが含まれます。

$ kubectl get pods tododomain-adminserver -n todo-list -o jsonpath='{.spec.containers[*].name}'
  ... logging-stdout ...

この例では、logging-stdoutコンテナはLoggingTraitで指定されたイメージを実行し、logging-stdout-todo-domain-domainという名前のConfigMapがカスタムFluentd構成ファイルを使用して作成されます。

LoggingTrait

フィールド 説明 必須
apiVersion 文字列 oam.verrazzano.io/v1alpha1 はい
kind 文字列 LoggingTrait はい
metadata ObjectMeta メタデータのフィールドについては、Kubernetes APIのドキュメントを参照してください。 いいえ
spec LoggingTraitSpec ロギング・トレイトの希望の状態。 はい

LoggingTraitSpec

LoggingTraitSpecは、ロギング・トレイトの希望の状態を指定します。

フィールド 説明 必須
loggingConfig 文字列 Fluentd構成の文字列表現。 はい
loggingImage 文字列 カスタムFluentdイメージの名前。 はい