--- apiVersion: v1 kind: ServiceAccount metadata: name: fluentd namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: fluentd rules: - apiGroups: - "" resources: - pods - namespaces verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: fluentd namespace: default --- apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd namespace: default labels: app: fluentd spec: selector: matchLabels: app: fluentd template: metadata: labels: app: fluentd spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule containers: - name: fluentd image: fluent/fluentd-kubernetes-daemonset:v1.4-debian-elasticsearch-1 env: - name: FLUENT_ELASTICSEARCH_HOST value: "elasticsearch" - name: FLUENT_ELASTICSEARCH_PORT value: "9200" - name: FLUENT_ELASTICSEARCH_SCHEME value: "http" - name: FLUENT_UID value: "0" - name: FLUENTD_SYSTEMD_CONF value: "disable" - name: FLUENTD_PROMETHEUS_CONF value: "disable" resources: limits: memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: /var/log - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: elasticsearch name: elasticsearch namespace: default spec: selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: containers: - image: elasticsearch:5 name: elasticsearch resources: limits: memory: 2Gi requests: memory: 1Gi env: - name: ES_JAVA_OPTS value: "-Xms1g -Xmx1g" --- apiVersion: v1 kind: Service metadata: labels: app: elasticsearch name: elasticsearch namespace: default spec: ports: - port: 9200 protocol: TCP targetPort: 9200 selector: app: elasticsearch type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: kibana name: kibana namespace: default spec: selector: matchLabels: app: kibana template: metadata: labels: app: kibana spec: containers: - env: - name: ELASTICSEARCH_URL value: http://elasticsearch:9200/ image: kibana:5 name: kibana resources: {} --- apiVersion: v1 kind: Service metadata: labels: app: kibana name: kibana namespace: default spec: ports: - port: 5601 protocol: TCP targetPort: 5601 selector: app: kibana type: NodePort