diff --git a/addons/logging-elasticsearch/addon.yaml b/addons/logging-elasticsearch/addon.yaml new file mode 100644 index 0000000000..0cec48d6a5 --- /dev/null +++ b/addons/logging-elasticsearch/addon.yaml @@ -0,0 +1,9 @@ +kind: Addons +metadata: + name: logging-elasticsearch +spec: + addons: + - version: 1.5.0 + selector: + k8s-addon: logging-elasticsearch.addons.k8s.io + manifest: v1.5.0.yaml diff --git a/addons/logging-elasticsearch/v1.5.0.yaml b/addons/logging-elasticsearch/v1.5.0.yaml new file mode 100644 index 0000000000..151e2f3789 --- /dev/null +++ b/addons/logging-elasticsearch/v1.5.0.yaml @@ -0,0 +1,185 @@ +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: fluentd-es + namespace: kube-system + labels: + k8s-addon: logging-elasticsearch.addons.k8s.io + k8s-app: fluentd-es + kubernetes.io/cluster-service: "true" + version: v1.20 +spec: + template: + metadata: + labels: + k8s-app: fluentd-es + kubernetes.io/cluster-service: "true" + version: v1.20 + spec: + containers: + - name: fluentd-es + image: gcr.io/google_containers/fluentd-elasticsearch:1.20 + command: + - '/bin/sh' + - '-c' + - '/usr/sbin/td-agent 2>&1 >> /var/log/fluentd.log' + resources: + limits: + memory: 200Mi + requests: + cpu: 100m + memory: 200Mi + volumeMounts: + - name: varlog + mountPath: /var/log + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + #nodeSelector: + # alpha.kubernetes.io/fluentd-ds-ready: "true" + terminationGracePeriodSeconds: 30 + volumes: + - name: varlog + hostPath: + path: /var/log + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers + +--- + +apiVersion: v1 +kind: Service +metadata: + name: elasticsearch-logging + namespace: kube-system + labels: + k8s-addon: logging-elasticsearch.addons.k8s.io + k8s-app: elasticsearch-logging + kubernetes.io/cluster-service: "true" + kubernetes.io/name: "Elasticsearch" +spec: + ports: + - port: 9200 + protocol: TCP + targetPort: db + selector: + k8s-app: elasticsearch-logging + +--- + +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: elasticsearch-logging + namespace: kube-system + labels: + k8s-addon: logging-elasticsearch.addons.k8s.io + k8s-app: elasticsearch-logging + version: v1 + kubernetes.io/cluster-service: "true" +spec: + serviceName: elasticsearch-logging + replicas: 2 + template: + metadata: + labels: + k8s-app: elasticsearch-logging + version: v1 + kubernetes.io/cluster-service: "true" + spec: + containers: + - image: gcr.io/google_containers/elasticsearch:v2.4.1 + name: elasticsearch-logging + resources: + # need more cpu upon initialization, therefore burstable class + limits: + cpu: 1000m + requests: + cpu: 100m + ports: + - containerPort: 9200 + name: db + protocol: TCP + - containerPort: 9300 + name: transport + protocol: TCP + volumeMounts: + - name: es-persistent-storage + mountPath: /data + env: + - name: "NAMESPACE" + valueFrom: + fieldRef: + fieldPath: metadata.namespace + volumeClaimTemplates: + - metadata: + name: es-persistent-storage + annotations: + volume.beta.kubernetes.io/storage-class: "default" + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 20Gi + +--- + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: kibana-logging + namespace: kube-system + labels: + k8s-addon: logging-elasticsearch.addons.k8s.io + k8s-app: kibana-logging + kubernetes.io/cluster-service: "true" +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kibana-logging + template: + metadata: + labels: + k8s-app: kibana-logging + spec: + containers: + - name: kibana-logging + image: gcr.io/google_containers/kibana:v4.6.1 + resources: + # keep request = limit to keep this container in guaranteed class + limits: + cpu: 100m + requests: + cpu: 100m + env: + - name: "ELASTICSEARCH_URL" + value: "http://elasticsearch-logging:9200" + - name: "KIBANA_BASE_URL" + value: "/api/v1/proxy/namespaces/kube-system/services/kibana-logging" + ports: + - containerPort: 5601 + name: ui + protocol: TCP + +--- + +apiVersion: v1 +kind: Service +metadata: + name: kibana-logging + namespace: kube-system + labels: + k8s-addon: logging-elasticsearch.addons.k8s.io + k8s-app: kibana-logging + kubernetes.io/cluster-service: "true" + kubernetes.io/name: "Kibana" +spec: + ports: + - port: 5601 + protocol: TCP + targetPort: ui + selector: + k8s-app: kibana-logging +