Adding EFK logging stack

This commit is contained in:
Brad Beam
2017-01-26 17:33:01 -06:00
parent 5a7a3f6d4a
commit df3e11bdb8
19 changed files with 333 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
---
kibana_cpu_limit: 100m
kibana_mem_limit: 0M
kibana_cpu_requests: 100m
kibana_mem_requests: 0M
kibana_service_port: 5601
kibaba_base_url: "/api/v1/proxy/namespaces/kube-system/services/kibana-logging"

View File

@@ -0,0 +1,3 @@
dependencies:
- role: download
file: "{{ downloads.kibana }}"

View File

@@ -0,0 +1,34 @@
---
- name: "Kibana | Write Kibana deployment"
template:
src: kibana-deployment.yml.j2
dest: "{{ kube_config_dir }}/kibana-deployment.yaml"
register: kibana_deployment_manifest
- name: "Kibana | Create Kibana deployment"
kube:
filename: "{{kube_config_dir}}/kibana-deployment.yaml"
kubectl: "{{bin_dir}}/kubectl"
name: "kibana-logging"
namespace: "{{system_namespace}}"
resource: "rc"
state: "{{ item | ternary('latest','present') }}"
with_items: "{{ kibana_deployment_manifest.changed }}"
run_once: true
- name: "Kibana | Write Kibana service "
template:
src: kibana-service.yml.j2
dest: "{{ kube_config_dir }}/kibana-service.yaml"
register: kibana_service_manifest
- name: "Kibana | Create Kibana service"
kube:
filename: "{{kube_config_dir}}/kibana-service.yaml"
kubectl: "{{bin_dir}}/kubectl"
name: "kibana-logging"
namespace: "{{system_namespace}}"
resource: "svc"
state: "{{ item | ternary('latest','present') }}"
with_items: "{{ kibana_service_manifest.changed }}"
run_once: true

View File

@@ -0,0 +1,46 @@
---
# https://raw.githubusercontent.com/kubernetes/kubernetes/v1.5.2/cluster/addons/fluentd-kibana/kibana-controller.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kibana-logging
namespace: "{{ system_namespace }}"
labels:
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: "{{ kibana_image_repo }}:{{ kibana_image_tag }}"
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: {{ kibana_cpu_limit }}
{% if kibana_mem_limit is defined and kibana_mem_limit != "0M" %}
mem: {{ kibana_mem_limit }}
{% endif %}
requests:
cpu: {{ kibana_cpu_requests }}
{% if kibana_mem_requests is defined and kibana_mem_requests != "0M" %}
mem: {{ kibana_mem_requests }}
{% endif %}
env:
- name: "ELASTICSEARCH_URL"
value: "http://elasticsearch-logging:{{ elasticsearch_service_port }}"
{% if kibana_base_url is defined and kibana_base_url != "" %}
- name: "KIBANA_BASE_URL"
value: "{{ kibana_base_url }}"
{% endif %}
ports:
- containerPort: 5601
name: ui
protocol: TCP

View File

@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Service
metadata:
name: kibana-logging
namespace: "{{ system_namespace }}"
labels:
k8s-app: kibana-logging
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "Kibana"
spec:
ports:
- port: {{ kibana_service_port }}
protocol: TCP
targetPort: ui
selector:
k8s-app: kibana-logging