すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Simple Log Serviceの設定

最終更新日:Jan 07, 2025

ほとんどの場合、ワークフローとポッドの再利用ポリシーを設定する必要があります。 これにより、ワークフローの完了後にクラスター内の制御プレーンとワークフローコントローラーによって使用されるリソースが線形に増加するのを防ぎます。 プロセス分析とワークフローのトラブルシューティングには、ワークフローログへのアクセスが必要です。 ポッドが削除された後、オープンソースのKubernetesは、ポッドのログまたはポッドが作成されたワークフローのログを保持しません。 ログを保持するには、ワークフロークラスターを使用します。 ワークフロークラスターはSimple Log Serviceと統合されており、ログを収集してSimple Log Serviceに保存できます。 Argo CLIまたはArgo UIを使用して、収集したログを表示できます。

使用上の注意

  • ワークフローのログ収集を有効にした後、ワークフローのポッドが削除されているかどうかに関係なく、Argo CLIまたはArgo UIを使用して、ワークフローが削除される前に収集されたログを表示できます。

  • ワークフローがデータベースに永続化されている場合は、Argo CLIを使用してワークフローログのZIPファイルをダウンロードするか、ワークフローの削除後にSimple Log Serviceコンソールでワークフローログを表示できます。

    ワークフローをデータベースに永続化する方法の詳細については、「ワークフローの永続化」をご参照ください。

注意事項

  • oss-artifact-repositoryが有効になっていて、ワークフロークラスターにarchiveLogs: trueが指定されている場合、Simple Log Serviceはクラスターからポッドログを収集しません。 この場合、ポッドログはoss-artifact-repositoryに収集されます。

  • oss-artifact-repositoryと比較して、Simple Log Serviceは自動化されたログライフサイクル管理と強力なログクエリ機能を提供します。 Simple Log Serviceでは、ログの保存期間を指定できます。 この場合、Simple Log Serviceを有効にするには、archiveLogs: true設定を削除します。

前提条件

Argo CLIを使用してSimple Log Serviceのログ収集を有効にする場合は、まず次の操作を実行する必要があります。

Simple Log Serviceの有効化

ワークフロークラスターを作成すると、クラスターからワークフローログを収集するために、k8s-log-<clusterid> という名前のSimple Log Serviceプロジェクトがシステムによって自動的に作成されます。 k8s-log-<clusterid> プロジェクトが作成されていない場合は、手動でプロジェクトを作成できます。 Simple Log Serviceプロジェクトの作成方法の詳細については、「Simple Log Serviceプロジェクトの作成」をご参照ください。

Simple Log Serviceを有効にするには、Alibaba Cloud Argo CLIを使用するか、AliyunLogConfigを作成します。

Alibaba Cloud Argo CLIを使用したシンプルなLog Serviceの有効化

Alibaba Cloud Argo CLIは、オープンソースのArgo CLIと完全に互換性があり、ログ機能が向上しています。 Alibaba Cloud Argo CLIは、削除されたポッドのログを収集できます。

次のコマンドを実行して、Simple Log Serviceを設定します。

argo config sls
ログ保存日数を入力してください。 デフォルトは7日です。
10 

期待される出力:

Start to config SLS for your cluster.
デフォルトの名前空間でAliyunLogConfig CR workflow-sls-configを作成しました。
作成されたSLSログストアワークフロー-SLSプロジェクトk8s-logのlogstore-<clusterid> 、ログ保持日数は10日
です

出力は、Simple Log Serviceが設定されていることを示します。 クラスター内のすべてのワークフローのログは、workflow-logstore Logstoreに収集されます。

Simple Log Serviceコンソールにログインし、[k8s-log-<clusterid>] プロジェクトを見つけ、[workflow-logstore] をクリックしてログを表示します。

AliyunLogConfigを作成してSimple Log Serviceを有効にする

次のコマンドを実行して、AliyunLogConfigを作成します。Log Serviceコントローラーは、k8s-log-<clusterid> という名前のプロジェクトとworkflow-Logstoreという名前のlogstoreを自動的に作成します。

cat << EOF | kubectl apply -f-
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
メタデータ:
  名前: workflow-sls-config
  namespace: デフォルト
spec:
  # ログは5日間保存されます
  lifeCycle: 5
  logstore: workflow-logstore
  logtailConfig:
    inputType:プラグイン
    configName: workflow-sls-config
    inputDetail:
      プラグイン:
        入力:
        -詳細:
            Stderr:true
            Stdout:true
          タイプ: service_docker_stdout
EOF 

Argo CLIを使用したSimple Log Serviceへのアクセス

クラスター内のワークフローログの表示

Argo CLIを使用して、既存のポッドのログや削除されたポッドのログを含むワークフローのログを表示できます。

kubectl logs <pod-name> コマンドを実行して、既存のポッドのログを表示できます。 デフォルトでは、最大2,000行のログデータが返されます。 さらにログデータを表示したり、削除されたポッドのログを表示したりする場合は、次のいずれかの方法を選択できます。

Argo CLIを使用したSimple Log Serviceへのアクセス (推奨)

  1. 次のコマンドを実行して、Argo CLIに権限を付与します。

    argo config init# 画面上の指示に基づいて、AccessKey IDやAccessKey secretなどの情報を指定します。
  2. 次のコマンドを実行して、ポッドのログを照会します。

    argo logs <workflow-name> <pod-name> -- sls# 指定されたポッドのログを照会します。 
    argo logs <workflow-name> -- sls# 指定したワークフローのログのZIPファイルをダウンロードします。

Argo Serverを使用したSimple Log Serviceへのアクセス

Argo CLIを使用して削除されたポッドのログを表示する場合は、最初にArgo Serverを有効にし、必要なパラメーターを設定する必要があります。

    説明

    Simple Log Serviceによって収集されたワークフローログを照会するには、<pod-name> を指定する必要があります。

    別の名前空間のワークフローまたはポッドにアクセスするには、名前空間のKUBE_TOKENを取得する必要があります。

  1. 次のコマンドを実行してArgo Serverを有効にし、パラメーターを設定します。

    export ARGO_SERVER=argo.<cluster id>.<regio n>.alicontainer.com:2746
    export KUBE_TOKEN=$(k create token default -n default -- duration 24h)
    export ARGO_TOKEN="ベアラー $KUBE_TOKEN"
    export ARGO_INSECURE_SKIP_VERIFY=true 
  2. 次のコマンドを実行して、ワークフローポッドのログを照会します。

    argo logs <workflow-name> <pod-name>

データベースに保持されているワークフローのログを表示する

ワークフローをデータベースに保持できます。 これにより、ワークフローが削除された後に、Argo CLIを使用してワークフローログをダウンロードできます。

  1. 次のコマンドを実行して、Argo CLIに権限を付与します。

    argo config init# 画面上の指示に基づいて、AccessKey IDやAccessKey secretなどの情報を指定します。
  2. 次のコマンドを実行して、ワークフローのユーザーID (UID) を照会します。

    # argoアーカイブリスト
    NAMESPACE NAME STATUS AGE DURATION PRIORITYメッセージP/R/CパラメータUID
    デフォルトhello-world-l6c2r成功3d 1m 0 0/0/0 179eaef0-fde3-496f-946d-549e8f ****** 
  3. ワークフローログをダウンロードします。

    # argoアーカイブログ179eaef0-fde3-496f-946d-549e8f ******
    # ls
    hello-world-l6c2r.zip 

Argo UIを使用したSimple Log Serviceへのアクセス

ポッドが削除されているかどうかに関係なく、Argo UIを使用してワークフローポッドのログを表示できます。 削除されたポッドのログを照会すると、次の図に示すように、ログがArgo UIに表示されます。

访问日志

簡易ログサービスの無効化

  1. 次のコマンドを実行して、AliyunLogConfigを削除します。

    kubectl delet e aliyunlogconfigs.log.alibabacloud.comワークフロー-sls-config -n default
  2. Simple Log Serviceコンソールにログインし、workflow-logstore Logstoreを削除します。