| # Copyright 2017-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # 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: "calico" |
| 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: "calico" |
| 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: "calico" |
| 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 |