Kubernetes で動かしているアプリケーションのログを収集するものを DaemonSet で動かすようにした。今までは温かみのある手作業でノードにセットアップしていたので、大幅に改善された。
ログは /var/log/containers/xxx.log
に吐き出されるので、tail
などで内容を取ればよい。
各ノードで 1 つずつ実行されてほしいので、DaemonSet で配置する。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: log
spec:
selector:
matchLables:
name: log
template:
metadata:
labels:
name: log
spec:
containers:
- name: log
image: xxx
securityContext:
runAsUser: 0 # /var/log/containers へのアクセスが必要なため
volumeMounts:
- mountPath: /var/log/containers
name: containers
- mountPath: /var/log/pods
name: pods
volumes:
- name: containers
hostPath:
path: /var/log/containers
type: Directory
- name: pods
hostPath:
path: /var/log/pods
type: Directory