ここでは、Alibaba Cloud Log Service を使用して、サーバーレス Kubernetes クラスター内のコンテナーの標準出力とログファイルを収集する方法について説明します。

始める前に

サーバーレス Kubernetes クラスターが作成されていること。 詳細は、「Serverless Kubernetes クラスターの作成」をご参照ください。

YAML テンプレートを使用してログ収集を設定

  1. Container Service-Kubernetes の左側のナビゲーションウィンドウで、[アプリケーション] > [デプロイメント] をクリックします。 右上隅の [イメージによる作成] をクリックします。
  2. env フィールドに環境変数を指定して、ログ収集を設定します。 ログファイルを収集するには、volumeMounts フィールドと volumes フィールドも指定する必要があります。 次の例は、デプロイメントのログ収集を設定する方法を示しています。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: alpine
      name: alpine
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: alpine
      template:
        metadata:
          labels:
            app: alpine
        spec:
          containers:
          - image: alpine
            imagePullPolicy: Always
            args:
            - ping
            - 127.0.0.1
            name: alpine
            env:
            ######### Specify environment variables ###########
            - name: aliyun_logs_test-stdout
              value: stdout
            - name: aliyun_logs_catalina
              value: /var/log/*.log
            #################################
            ######### Configure volume mounting #######
            volumeMounts:
            - name: volume-sls
              mountPath: /var/log
          volumes:
          - name: volumn-sls
            emptyDir: {}
          ###############################

    必要に応じて、次の設定を順番に指定します。

    • 環境変数を指定してログ収集を設定します。 ログ収集に関するすべての環境変数は、プレフィックスとして aliyun_logs_ がついている必要があります。 環境変数を次の形式で指定します。
      - name: aliyun_logs_{Logstore name}
        value: {log path}

      前の例では、2 つの環境変数が指定されています。 aliyun_logs_test-stdout 環境変数は、コンテナーの標準出力を収集するために test-stdout という名前の Logsotre を作成するようシステムに指示します。

      Logstore 名にはアンダースコア (_) を使用できません。 代わりにハイフン (-) を使用できます。
    • 標準出力とは別にログファイルを収集するためのパスを指定する場合は、volumeMounts フィールドを追加する必要があります。

      前の例では、volumeMounts フィールドが追加され、その値は /logであり、/log/*.log ファイルが収集されていることを示しています。

  3. YAML コードを入力したら、[作成] をクリックして、サーバーレス Kubernetes クラスターに設定を配布します。
    デプロイが完了したら、対応するコマンドを実行してポッドのステータスを表示します。
    NAME                      READY     STATUS    RESTARTS   AGE       IP             NODE
    alpine-76d978dbdd-gznk6   1/1       Running   0          21m       10.1.XX.XX   viking-c619c41329e624975a7bb50527180****
    alpine-76d978dbdd-vb9fv   1/1       Running   0          21m       10.1.XX.XX   viking-c619c41329e624975a7bb50527180****

ログの表示

  1. インストールが正常に完了したら、Log Service コンソール にログインします。
  2. コンソールで、Kubernetes クラスターに対応するプロジェクト (デフォルトは、k8s-log-{Kubernetes cluster ID}) を選択します。
  3. Logstore リストで、ログ収集設定で指定された Logstore を見つけ、花 をクリックし、ドロップダウンリストから [検索と分析] を選択します。
    この例では、test-stdout Logstore を見つけ、花 をクリックして、ドロップダウンリストから [検索と分析] を選択します。 収集された ECI (Elastic Container Instance) の standard output を確認します。