容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 目前,容器服务Windows Kubernetes支持将业务容器产生的stdout输出、日志文件同步到阿里云日志服务(SLS)进行统一管理。 支撑组件安装 在Windows Kubernetes集群安装界面勾选使用日志服务,集群会安装支持日志收集的必要组件logtail。

目前,容器服务Windows Kubernetes支持将业务容器产生的stdout输出、日志文件同步到阿里云日志服务(SLS)进行统一管理。

支撑组件安装

Windows Kubernetes集群安装界面勾选使用日志服务,集群会安装支持日志收集的必要组件logtail

_2019_06_16_1_08_12

集群安装完毕后,可以在日志服务控制台 查看到按k8s-sls-{Kubernetes 集群 ID}形式命名的工程。收集到的业务容器日志都会放在该工程下。

_2019_06_16_1_16_59

使用YAML模版部署业务容器

YAML 模板的语法同 Kubernetes 语法,但是为了给容器指定采集配置,需要使用 env 来为 container 增加采集配置和自定义 Tag,并根据采集配置,创建对应的 volumeMounts 和 volumns。以下是一个简单的 Deployment 示例:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: logtail-test
  name: logtail-test
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: logtail-test
      name: logtail-test
    spec:
      containers:
      - name: logtail
        image: registry-vpc.cn-hangzhou.aliyuncs.com/acs/windows-logtail:1809-1.0.0.4
        command: ["powershell.exe"]
        args: [cmd /k "ping -t 127.0.0.1 -w 10000 > C:\log\data.log"]
        env:
      ######### 配置 环境变量 ###########
        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: C:\log\*.log
        - name: aliyun_logs_log_tags
          value: tag1=v1
      #################################
      ######### 配置vulume mount #######
        volumeMounts:
        - name: volumn-sls-win
          mountPath: c:\log
      volumes:
      - name: volumn-sls-win
        emptyDir: {}
      ###############################
      nodeSelector:
        beta.kubernetes.io/os: windows

其中有三部分需要根据您的需求进行配置,一般按照顺序进行配置。

  • 第一部分通过环境变量来创建您的采集配置和自定义 Tag,所有与配置相关的环境变量都采用aliyun_logs_作为前缀。
    创建采集配置的规则如下:
- name: aliyun_logs_{Logstore 名称}
  value: {日志采集路径}

示例中创建了两个采集配置,其中 aliyun_logs_log-stdout 这个 env 表示创建一个 Logstore 名字为 log-stdout,日志采集路径为 stdout 的配置,从而将容器的标准输出采集到 log-stdout 这个 Logstore 中。

说明 Logstore 名称中不能包含下划线(_),可以使用 - 来代替。

  • 创建自定义 Tag 的规则如下:
- name: aliyun_logs_{任意不包含'_'的名称}_tags
  value: {Tag 名}={Tag 值}

配置 Tag 后,当采集到该容器的日志时,会自动附加对应的字段到日志服务。

  • 如果您的采集配置中指定了非 stdout 的采集路径,需要在此部分创建相应的 volumnMounts。
    示例中采集配置添加了对c:log*.log 的采集,因此相应地添加了c:log的 volumeMounts。

查看日志

本例部署的应用会向data.log文件中写入日志。可以按以下步骤查看日志:

  1. 安装成功后,进入日志服务控制台
  2. 在进入控制台后,选择 Kubernetes 集群对应的 Project(默认为 k8s-log-{Kubernetes 集群 ID}),进入 Logstore 列表页面。
  3. 在列表中找到相应的 Logstore(采集配置中指定),单击查询
    _2019_06_17_10_05_09
  4. 本例中,在日志查询页面,您可查看容器内文本日志,并可发现自定义tag附加到日志字段中。
    _2019_06_17_10_07_34
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1天前
|
Kubernetes Shell 容器
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
|
1天前
|
Kubernetes 容器 Perl
在K8S中,如何查看Pod中某个容器日志?
在K8S中,如何查看Pod中某个容器日志?
|
1天前
|
Kubernetes 负载均衡 网络协议
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
|
1天前
|
Kubernetes 算法 容器
在k8S中,Pod的容器重启策略有哪些?
在k8S中,Pod的容器重启策略有哪些?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何查看Pod中上一个挂掉的容器日志?
在k8S中,如何查看Pod中上一个挂掉的容器日志?
|
3月前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
3月前
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
319 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
3天前
|
Kubernetes 负载均衡 安全
【技术揭秘】阿里云容器服务Ingress高级玩法:如何轻松实现客户端原始IP透传,提升应用安全性与用户体验!
【8月更文挑战第17天】本文介绍如何在阿里云容器服务中配置Ingress以透传客户端原始IP地址。通过Ingress可实现HTTP负载均衡等功能。需在Ingress定义文件中添加特定注解,如`nginx.ingress.kubernetes.io/real-ip-header: X-Real-IP`。创建并应用Ingress配置后,后端服务可通过读取`X-Real-IP`头获取真实IP。此举有助于安全审计及流量分析。
12 2

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多