目前,容器服務Windows Kubernetes支援将業務容器産生的stdout輸出、日志檔案同步到阿裡雲日志服務(SLS)進行統一管理。
支撐元件安裝
在
Windows Kubernetes叢集安裝界面勾選
使用日志服務
,叢集會安裝支援日志收集的必要元件
logtail
。

叢集安裝完畢後,可以在
日志服務控制台檢視到按
k8s-sls-{Kubernetes 叢集 ID}
形式命名的工程。收集到的業務容器日志都會放在該工程下。
使用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檔案中寫入日志。可以按以下步驟檢視日志: