blob: f275bc1f7e65182fa4644f552c9ab24af5d7519a [file] [log] [blame]
#
# This file describes a cluster of 3 fluentd forwarders that
# send logs to a cluster of 2 fluentd aggregators: one active
# and one standby.
#
# The active fluentd aggregator
#
apiVersion: v1
kind: Service
metadata:
name: fluentdactv
namespace: voltha
spec:
clusterIP: None
selector:
app: fluentdactv
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
#
# Ensure that the active aggregator is not deployed to the
# same node as the standby
#
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: fluentdactv
namespace: voltha
spec:
replicas: 1
template:
metadata:
labels:
app: fluentdactv
annotations:
cni: "weave"
spec:
terminationGracePeriodSeconds: 10
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- fluentdstby
topologyKey: kubernetes.io/hostname
containers:
- name: fluentdactv
image: k8s.gcr.io/fluentd-gcp:1.30
imagePullPolicy: Never
volumeMounts:
- name: fluentd-log
mountPath: /fluentd/log
- name: config-volume
mountPath: /etc/fluentd-config
ports:
- containerPort: 24224
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd-agg.conf
volumes:
- name: config-volume
configMap:
name: fluentd-config
- name: fluentd-log
hostPath:
path: /var/log/voltha/logging_volume
type: Directory
---
#
# The standby fluentd aggregator
#
apiVersion: v1
kind: Service
metadata:
name: fluentdstby
namespace: voltha
spec:
clusterIP: None
selector:
app: fluentdstby
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
#
# Ensure thet the standby aggregator is not deployed to the
# same node as the active
#
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: fluentdstby
namespace: voltha
spec:
replicas: 1
template:
metadata:
labels:
app: fluentdstby
annotations:
cni: "weave"
spec:
terminationGracePeriodSeconds: 10
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- fluentdactv
topologyKey: kubernetes.io/hostname
containers:
- name: fluentdstby
image: k8s.gcr.io/fluentd-gcp:1.30
imagePullPolicy: Never
volumeMounts:
- name: fluentd-log
mountPath: /fluentd/log
- name: config-volume
mountPath: /etc/fluentd-config
ports:
- containerPort: 24224
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd-agg.conf
volumes:
- name: config-volume
configMap:
name: fluentd-config
- name: fluentd-log
hostPath:
path: /var/log/voltha/logging_volume
type: Directory
---
#
# The cluster of fluentd forwarders. The service itself will be removed once all fluentd forwarding logic are removed
# from the specific voltha services. Fluentd is defined as a DaemonSet which implies that only 1 instance will
# run on each node. Each instance will also gets its configuration data from a config map (fluentd-config.yml).
#
apiVersion: v1
kind: Service
metadata:
name: fluentd
namespace: voltha
spec:
clusterIP: None
selector:
app: fluentd
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: fluentd
namespace: voltha
spec:
template:
metadata:
labels:
app: fluentd
annotations:
cni: "weave"
spec:
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
containers:
- name: fluentd
image: k8s.gcr.io/fluentd-gcp:1.30
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd.conf
volumeMounts:
- name: varlog
mountPath: /var/log/
- name: varlogcontainers
mountPath: /var/lib/docker/containers/
- name: config-volume
mountPath: /etc/fluentd-config
volumes:
- name: varlog
hostPath:
path: /var/log/
- name: varlogcontainers
hostPath:
path: /var/lib/docker/containers/
- name: config-volume
configMap:
name: fluentd-config