diff --git a/inventory/sample/group_vars/k8s-cluster/addons.yml b/inventory/sample/group_vars/k8s-cluster/addons.yml index 7c9057e715e2fb8047a48259eebbaa7142734a08..962bcb96ad8cf16e3cd6ad144322df5aa7d7cfb1 100644 --- a/inventory/sample/group_vars/k8s-cluster/addons.yml +++ b/inventory/sample/group_vars/k8s-cluster/addons.yml @@ -2,9 +2,6 @@ # RBAC required. see docs/getting-started.md for access details. dashboard_enabled: true -# Monitoring apps for k8s -efk_enabled: false - # Helm deployment helm_enabled: false diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 8d1549af5c15ecb833e609dee2060358c8ebefcd..969f66b3c7670edc95b01278ba6d440ed14ed479 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -169,15 +169,6 @@ kubednsautoscaler_image_repo: "gcr.io/google_containers/cluster-proportional-aut kubednsautoscaler_image_tag: "{{ kubednsautoscaler_version }}" test_image_repo: busybox test_image_tag: latest -elasticsearch_version: "v5.6.4" -elasticsearch_image_repo: "k8s.gcr.io/elasticsearch" -elasticsearch_image_tag: "{{ elasticsearch_version }}" -fluentd_version: "v2.0.4" -fluentd_image_repo: "k8s.gcr.io/fluentd-elasticsearch" -fluentd_image_tag: "{{ fluentd_version }}" -kibana_version: "5.6.4" -kibana_image_repo: "docker.elastic.co/kibana/kibana" -kibana_image_tag: "{{ kibana_version }}" helm_version: "v2.9.1" helm_image_repo: "lachlanevenson/k8s-helm" helm_image_tag: "{{ helm_version }}" @@ -479,33 +470,6 @@ downloads: tag: "{{ test_image_tag }}" sha256: "{{ testbox_digest_checksum|default(None) }}" - elasticsearch: - enabled: "{{ efk_enabled }}" - container: true - repo: "{{ elasticsearch_image_repo }}" - tag: "{{ elasticsearch_image_tag }}" - sha256: "{{ elasticsearch_digest_checksum|default(None) }}" - groups: - - kube-node - - fluentd: - enabled: "{{ efk_enabled }}" - container: true - repo: "{{ fluentd_image_repo }}" - tag: "{{ fluentd_image_tag }}" - sha256: "{{ fluentd_digest_checksum|default(None) }}" - groups: - - kube-node - - kibana: - enabled: "{{ efk_enabled }}" - container: true - repo: "{{ kibana_image_repo }}" - tag: "{{ kibana_image_tag }}" - sha256: "{{ kibana_digest_checksum|default(None) }}" - groups: - - kube-node - helm: enabled: "{{ helm_enabled }}" container: true diff --git a/roles/kubernetes-apps/efk/elasticsearch/defaults/main.yml b/roles/kubernetes-apps/efk/elasticsearch/defaults/main.yml deleted file mode 100644 index d38ba6a6b6ede21a45232087235a95ea9ef976e7..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/defaults/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -elasticsearch_cpu_limit: 1000m -elasticsearch_mem_limit: 0M -elasticsearch_cpu_requests: 100m -elasticsearch_mem_requests: 0M -elasticsearch_service_port: 9200 diff --git a/roles/kubernetes-apps/efk/elasticsearch/meta/main.yml b/roles/kubernetes-apps/efk/elasticsearch/meta/main.yml deleted file mode 100644 index 0fa1b05d8393863140fc02efebd65bca352e8b03..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# TODO: bradbeam add in curator -# https://github.com/Skillshare/kubernetes-efk/blob/master/configs/elasticsearch.yml#L94 -# - role: download -# file: "{{ downloads.curator }}" diff --git a/roles/kubernetes-apps/efk/elasticsearch/tasks/main.yml b/roles/kubernetes-apps/efk/elasticsearch/tasks/main.yml deleted file mode 100644 index 888cbd189ce039e84cf6f218471a5213acaec81f..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/tasks/main.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -- name: "ElasticSearch | Write efk manifests (RBAC)" - template: - src: "{{ item }}" - dest: "{{ kube_config_dir }}/{{ item }}" - with_items: - - "efk-sa.yml" - - "efk-clusterrolebinding.yml" - run_once: true - -- name: "ElasticSearch | Create Serviceaccount and Clusterrolebinding (RBAC)" - command: "{{ bin_dir }}/kubectl apply -f {{ kube_config_dir }}/{{ item }} -n kube-system" - with_items: - - "efk-sa.yml" - - "efk-clusterrolebinding.yml" - run_once: true - -- name: "ElasticSearch | Write ES deployment" - template: - src: elasticsearch-deployment.yml.j2 - dest: "{{ kube_config_dir }}/elasticsearch-deployment.yaml" - register: es_deployment_manifest - -- name: "ElasticSearch | Create ES deployment" - command: "{{ bin_dir }}/kubectl apply -f {{ kube_config_dir }}/elasticsearch-deployment.yaml -n kube-system" - run_once: true - when: es_deployment_manifest.changed - -- name: "ElasticSearch | Write ES service " - template: - src: elasticsearch-service.yml.j2 - dest: "{{ kube_config_dir }}/elasticsearch-service.yaml" - register: es_service_manifest - -- name: "ElasticSearch | Create ES service" - command: "{{ bin_dir }}/kubectl apply -f {{ kube_config_dir }}/elasticsearch-service.yaml -n kube-system" - run_once: true - when: es_service_manifest.changed diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml deleted file mode 100644 index 4b9ab006737bc7278c4031c373bb670469e21219..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: efk - namespace: kube-system - labels: - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile -subjects: - - kind: ServiceAccount - name: efk - namespace: kube-system -roleRef: - kind: ClusterRole - name: cluster-admin - apiGroup: rbac.authorization.k8s.io diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml deleted file mode 100644 index 01e774e966626edf6a104f59b6adf33db0538fa4..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: efk - namespace: kube-system - labels: - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-deployment.yml.j2 b/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-deployment.yml.j2 deleted file mode 100644 index ad1adc536c627304718d975984ddb684dac017e6..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-deployment.yml.j2 +++ /dev/null @@ -1,62 +0,0 @@ ---- -# https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.2/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: elasticsearch-logging - namespace: kube-system - labels: - k8s-app: elasticsearch-logging - version: "{{ elasticsearch_image_tag }}" - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile -spec: - serviceName: elasticsearch-logging - replicas: 2 - selector: - matchLabels: - k8s-app: elasticsearch-logging - version: "{{ elasticsearch_image_tag }}" - template: - metadata: - labels: - k8s-app: elasticsearch-logging - version: "{{ elasticsearch_image_tag }}" - kubernetes.io/cluster-service: "true" - spec: - containers: - - image: "{{ elasticsearch_image_repo }}:{{ elasticsearch_image_tag }}" - name: elasticsearch-logging - resources: - # need more cpu upon initialization, therefore burstable class - limits: - cpu: {{ elasticsearch_cpu_limit }} -{% if elasticsearch_mem_limit is defined and elasticsearch_mem_limit != "0M" %} - memory: "{{ elasticsearch_mem_limit }}" -{% endif %} - requests: - cpu: {{ elasticsearch_cpu_requests }} -{% if elasticsearch_mem_requests is defined and elasticsearch_mem_requests != "0M" %} - memory: "{{ elasticsearch_mem_requests }}" -{% endif %} - ports: - - containerPort: 9200 - name: db - protocol: TCP - - containerPort: 9300 - name: transport - protocol: TCP - volumeMounts: - - name: es-persistent-storage - mountPath: /data - volumes: - - name: es-persistent-storage - emptyDir: {} - serviceAccountName: efk - initContainers: - - image: alpine:3.6 - command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"] - name: elasticsearch-logging-init - securityContext: - privileged: true - diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-service.yml.j2 b/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-service.yml.j2 deleted file mode 100644 index 789ecb215a09500001d4541bbc1c373ef8cda42c..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-service.yml.j2 +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: elasticsearch-logging - namespace: "kube-system" - labels: - k8s-app: elasticsearch-logging - kubernetes.io/cluster-service: "true" - kubernetes.io/name: "Elasticsearch" -spec: - ports: - - port: {{ elasticsearch_service_port }} - protocol: TCP - targetPort: db - selector: - k8s-app: elasticsearch-logging - diff --git a/roles/kubernetes-apps/efk/fluentd/defaults/main.yml b/roles/kubernetes-apps/efk/fluentd/defaults/main.yml deleted file mode 100644 index 0305a5f7a7c7b9883d364c6c6989eeecf0c8c68a..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/fluentd/defaults/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fluentd_cpu_limit: 0m -fluentd_mem_limit: 500Mi -fluentd_cpu_requests: 100m -fluentd_mem_requests: 200Mi -fluentd_config_dir: /etc/fluent/config.d -# fluentd_config_file: fluentd.conf diff --git a/roles/kubernetes-apps/efk/fluentd/tasks/main.yml b/roles/kubernetes-apps/efk/fluentd/tasks/main.yml deleted file mode 100644 index f444c79b62f7a9db4e28aa1de0d899fa8fbbd358..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/fluentd/tasks/main.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- name: "Fluentd | copy config file" - template: - src: fluentd-config.yml.j2 - dest: "{{ kube_config_dir }}/fluentd-config.yaml" - register: fluentd_config - -- name: "Fluentd | create configMap" - command: "{{bin_dir}}/kubectl apply -f {{ kube_config_dir }}/fluentd-config.yaml" - run_once: true - when: fluentd_config.changed - -- name: "Fluentd | Write fluentd daemonset" - template: - src: fluentd-ds.yml.j2 - dest: "{{ kube_config_dir }}/fluentd-ds.yaml" - register: fluentd_ds_manifest - -- name: "Fluentd | Create fluentd daemonset" - command: "{{ bin_dir }}/kubectl apply -f {{ kube_config_dir }}/fluentd-ds.yaml -n kube-system" - run_once: true - when: fluentd_ds_manifest.changed diff --git a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 b/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 deleted file mode 100644 index 0b0229f69fddde55b9bb72d8bdc1b0a74d6b4ac3..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 +++ /dev/null @@ -1,441 +0,0 @@ ---- -# https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.10/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: fluentd-config - namespace: "kube-system" - labels: - addonmanager.kubernetes.io/mode: Reconcile -data: - system.conf: |- - <system> - root_dir /tmp/fluentd-buffers/ - </system> - - containers.input.conf: |- - # This configuration file for Fluentd / td-agent is used - # to watch changes to Docker log files. The kubelet creates symlinks that - # capture the pod name, namespace, container name & Docker container ID - # to the docker logs for pods in the /var/log/containers directory on the host. - # If running this fluentd configuration in a Docker container, the /var/log - # directory should be mounted in the container. - # - # These logs are then submitted to Elasticsearch which assumes the - # installation of the fluent-plugin-elasticsearch & the - # fluent-plugin-kubernetes_metadata_filter plugins. - # See https://github.com/uken/fluent-plugin-elasticsearch & - # https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter for - # more information about the plugins. - # - # Example - # ======= - # A line in the Docker log file might look like this JSON: - # - # {"log":"2014/09/25 21:15:03 Got request with path wombat\n", - # "stream":"stderr", - # "time":"2014-09-25T21:15:03.499185026Z"} - # - # The time_format specification below makes sure we properly - # parse the time format produced by Docker. This will be - # submitted to Elasticsearch and should appear like: - # $ curl 'http://elasticsearch-logging:9200/_search?pretty' - # ... - # { - # "_index" : "logstash-2014.09.25", - # "_type" : "fluentd", - # "_id" : "VBrbor2QTuGpsQyTCdfzqA", - # "_score" : 1.0, - # "_source":{"log":"2014/09/25 22:45:50 Got request with path wombat\n", - # "stream":"stderr","tag":"docker.container.all", - # "@timestamp":"2014-09-25T22:45:50+00:00"} - # }, - # ... - # - # The Kubernetes fluentd plugin is used to write the Kubernetes metadata to the log - # record & add labels to the log record if properly configured. This enables users - # to filter & search logs on any metadata. - # For example a Docker container's logs might be in the directory: - # - # /var/lib/docker/containers/997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b - # - # and in the file: - # - # 997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b-json.log - # - # where 997599971ee6... is the Docker ID of the running container. - # The Kubernetes kubelet makes a symbolic link to this file on the host machine - # in the /var/log/containers directory which includes the pod name and the Kubernetes - # container name: - # - # synthetic-logger-0.25lps-pod_default_synth-lgr-997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b.log - # -> - # /var/lib/docker/containers/997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b/997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b-json.log - # - # The /var/log directory on the host is mapped to the /var/log directory in the container - # running this instance of Fluentd and we end up collecting the file: - # - # /var/log/containers/synthetic-logger-0.25lps-pod_default_synth-lgr-997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b.log - # - # This results in the tag: - # - # var.log.containers.synthetic-logger-0.25lps-pod_default_synth-lgr-997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b.log - # - # The Kubernetes fluentd plugin is used to extract the namespace, pod name & container name - # which are added to the log message as a kubernetes field object & the Docker container ID - # is also added under the docker field object. - # The final tag is: - # - # kubernetes.var.log.containers.synthetic-logger-0.25lps-pod_default_synth-lgr-997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b.log - # - # And the final log record look like: - # - # { - # "log":"2014/09/25 21:15:03 Got request with path wombat\n", - # "stream":"stderr", - # "time":"2014-09-25T21:15:03.499185026Z", - # "kubernetes": { - # "namespace": "default", - # "pod_name": "synthetic-logger-0.25lps-pod", - # "container_name": "synth-lgr" - # }, - # "docker": { - # "container_id": "997599971ee6366d4a5920d25b79286ad45ff37a74494f262e3bc98d909d0a7b" - # } - # } - # - # This makes it easier for users to search for logs by pod name or by - # the name of the Kubernetes container regardless of how many times the - # Kubernetes pod has been restarted (resulting in a several Docker container IDs). - - # Json Log Example: - # {"log":"[info:2016-02-16T16:04:05.930-08:00] Some log text here\n","stream":"stdout","time":"2016-02-17T00:04:05.931087621Z"} - # CRI Log Example: - # 2016-02-17T00:04:05.931087621Z stdout F [info:2016-02-16T16:04:05.930-08:00] Some log text here - <source> - @id fluentd-containers.log - @type tail - path /var/log/containers/*.log - pos_file /var/log/es-containers.log.pos - time_format %Y-%m-%dT%H:%M:%S.%NZ - tag raw.kubernetes.* - read_from_head true - <parse> - @type multi_format - <pattern> - format json - time_key time - time_format %Y-%m-%dT%H:%M:%S.%NZ - </pattern> - <pattern> - format /^(?<time>.+) (?<stream>stdout|stderr) [^ ]* (?<log>.*)$/ - time_format %Y-%m-%dT%H:%M:%S.%N%:z - </pattern> - </parse> - </source> - - # Detect exceptions in the log output and forward them as one log entry. - <match raw.kubernetes.**> - @id raw.kubernetes - @type detect_exceptions - remove_tag_prefix raw - message log - stream stream - multiline_flush_interval 5 - max_bytes 500000 - max_lines 1000 - </match> - - system.input.conf: |- - # Example: - # 2015-12-21 23:17:22,066 [salt.state ][INFO ] Completed state [net.ipv4.ip_forward] at time 23:17:22.066081 - <source> - @id minion - @type tail - format /^(?<time>[^ ]* [^ ,]*)[^\[]*\[[^\]]*\]\[(?<severity>[^ \]]*) *\] (?<message>.*)$/ - time_format %Y-%m-%d %H:%M:%S - path /var/log/salt/minion - pos_file /var/log/salt.pos - tag salt - </source> - - # Example: - # Dec 21 23:17:22 gke-foo-1-1-4b5cbd14-node-4eoj startupscript: Finished running startup script /var/run/google.startup.script - <source> - @id startupscript.log - @type tail - format syslog - path /var/log/startupscript.log - pos_file /var/log/es-startupscript.log.pos - tag startupscript - </source> - - # Examples: - # time="2016-02-04T06:51:03.053580605Z" level=info msg="GET /containers/json" - # time="2016-02-04T07:53:57.505612354Z" level=error msg="HTTP Error" err="No such image: -f" statusCode=404 - # TODO(random-liu): Remove this after cri container runtime rolls out. - <source> - @id docker.log - @type tail - format /^time="(?<time>[^)]*)" level=(?<severity>[^ ]*) msg="(?<message>[^"]*)"( err="(?<error>[^"]*)")?( statusCode=($<status_code>\d+))?/ - path /var/log/docker.log - pos_file /var/log/es-docker.log.pos - tag docker - </source> - - # Example: - # 2016/02/04 06:52:38 filePurge: successfully removed file /var/etcd/data/member/wal/00000000000006d0-00000000010a23d1.wal - <source> - @id etcd.log - @type tail - # Not parsing this, because it doesn't have anything particularly useful to - # parse out of it (like severities). - format none - path /var/log/etcd.log - pos_file /var/log/es-etcd.log.pos - tag etcd - </source> - - # Multi-line parsing is required for all the kube logs because very large log - # statements, such as those that include entire object bodies, get split into - # multiple lines by glog. - - # Example: - # I0204 07:32:30.020537 3368 server.go:1048] POST /stats/container/: (13.972191ms) 200 [[Go-http-client/1.1] 10.244.1.3:40537] - <source> - @id kubelet.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/kubelet.log - pos_file /var/log/es-kubelet.log.pos - tag kubelet - </source> - - # Example: - # I1118 21:26:53.975789 6 proxier.go:1096] Port "nodePort for kube-system/default-http-backend:http" (:31429/tcp) was open before and is still needed - <source> - @id kube-proxy.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/kube-proxy.log - pos_file /var/log/es-kube-proxy.log.pos - tag kube-proxy - </source> - - # Example: - # I0204 07:00:19.604280 5 handlers.go:131] GET /api/v1/nodes: (1.624207ms) 200 [[kube-controller-manager/v1.1.3 (linux/amd64) kubernetes/6a81b50] 127.0.0.1:38266] - <source> - @id kube-apiserver.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/kube-apiserver.log - pos_file /var/log/es-kube-apiserver.log.pos - tag kube-apiserver - </source> - - # Example: - # I0204 06:55:31.872680 5 servicecontroller.go:277] LB already exists and doesn't need update for service kube-system/kube-ui - <source> - @id kube-controller-manager.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/kube-controller-manager.log - pos_file /var/log/es-kube-controller-manager.log.pos - tag kube-controller-manager - </source> - - # Example: - # W0204 06:49:18.239674 7 reflector.go:245] pkg/scheduler/factory/factory.go:193: watch of *api.Service ended with: 401: The event in requested index is outdated and cleared (the requested history has been cleared [2578313/2577886]) [2579312] - <source> - @id kube-scheduler.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/kube-scheduler.log - pos_file /var/log/es-kube-scheduler.log.pos - tag kube-scheduler - </source> - - # Example: - # I1104 10:36:20.242766 5 rescheduler.go:73] Running Rescheduler - <source> - @id rescheduler.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/rescheduler.log - pos_file /var/log/es-rescheduler.log.pos - tag rescheduler - </source> - - # Example: - # I0603 15:31:05.793605 6 cluster_manager.go:230] Reading config from path /etc/gce.conf - <source> - @id glbc.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/glbc.log - pos_file /var/log/es-glbc.log.pos - tag glbc - </source> - - # Example: - # I0603 15:31:05.793605 6 cluster_manager.go:230] Reading config from path /etc/gce.conf - <source> - @id cluster-autoscaler.log - @type tail - format multiline - multiline_flush_interval 5s - format_firstline /^\w\d{4}/ - format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/ - time_format %m%d %H:%M:%S.%N - path /var/log/cluster-autoscaler.log - pos_file /var/log/es-cluster-autoscaler.log.pos - tag cluster-autoscaler - </source> - - # Logs from systemd-journal for interesting services. - # TODO(random-liu): Remove this after cri container runtime rolls out. - <source> - @id journald-docker - @type systemd - filters [{ "_SYSTEMD_UNIT": "docker.service" }] - <storage> - @type local - persistent true - </storage> - read_from_head true - tag docker - </source> - - # <source> - # @id journald-container-runtime - # @type systemd - # filters [{ "_SYSTEMD_UNIT": "{% raw %}{{ container_runtime }} {% endraw %}.service" }] - # <storage> - # @type local - # persistent true - # </storage> - # read_from_head true - # tag container-runtime - # </source> - - <source> - @id journald-kubelet - @type systemd - filters [{ "_SYSTEMD_UNIT": "kubelet.service" }] - <storage> - @type local - persistent true - </storage> - read_from_head true - tag kubelet - </source> - - <source> - @id journald-node-problem-detector - @type systemd - filters [{ "_SYSTEMD_UNIT": "node-problem-detector.service" }] - <storage> - @type local - persistent true - </storage> - read_from_head true - tag node-problem-detector - </source> - - forward.input.conf: |- - # Takes the messages sent over TCP - <source> - @type forward - </source> - - monitoring.conf: |- - # Prometheus Exporter Plugin - # input plugin that exports metrics - <source> - @type prometheus - </source> - - <source> - @type monitor_agent - </source> - - # input plugin that collects metrics from MonitorAgent - <source> - @type prometheus_monitor - <labels> - host ${hostname} - </labels> - </source> - - # input plugin that collects metrics for output plugin - <source> - @type prometheus_output_monitor - <labels> - host ${hostname} - </labels> - </source> - - # input plugin that collects metrics for in_tail plugin - <source> - @type prometheus_tail_monitor - <labels> - host ${hostname} - </labels> - </source> - - output.conf: |- - # Enriches records with Kubernetes metadata - <filter kubernetes.**> - @type kubernetes_metadata - </filter> - - <match **> - @id elasticsearch - @type elasticsearch - @log_level info - include_tag_key true - host elasticsearch-logging - port 9200 - logstash_format true - <buffer> - @type file - path /var/log/fluentd-buffers/kubernetes.system.buffer - flush_mode interval - retry_type exponential_backoff - flush_thread_count 2 - flush_interval 5s - retry_forever - retry_max_interval 30 - chunk_limit_size 2M - queue_limit_length 8 - overflow_action block - </buffer> - </match> \ No newline at end of file diff --git a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-ds.yml.j2 b/roles/kubernetes-apps/efk/fluentd/templates/fluentd-ds.yml.j2 deleted file mode 100644 index 03b118f8d70720409e1f4d44ddef57d94c6afdc8..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-ds.yml.j2 +++ /dev/null @@ -1,68 +0,0 @@ ---- -# https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.2/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: "fluentd-es-{{ fluentd_version }}" - namespace: "kube-system" - labels: - k8s-app: fluentd-es - version: "{{ fluentd_version }}" - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile -spec: - selector: - matchLabels: - k8s-app: fluentd-es - version: "{{ fluentd_version }}" - template: - metadata: - labels: - k8s-app: fluentd-es - kubernetes.io/cluster-service: "true" - version: "{{ fluentd_version }}" - # This annotation ensures that fluentd does not get evicted if the node - # supports critical pod annotation based priority scheme. - # Note that this does not guarantee admission on the nodes (#40573). - annotations: - scheduler.alpha.kubernetes.io/critical-pod: '' - spec: - priorityClassName: system-node-critical - serviceAccountName: efk - # When having win nodes in cluster without this patch, this pod cloud try to be created in windows - nodeSelector: - beta.kubernetes.io/os: linux - containers: - - name: fluentd-es - image: "{{ fluentd_image_repo }}:{{ fluentd_image_tag }}" - env: - - name: FLUENTD_ARGS - value: "--no-supervisor -q" - resources: - limits: -{% if fluentd_cpu_limit is defined and fluentd_cpu_limit != "0m" %} - cpu: {{ fluentd_cpu_limit }} -{% endif %} - memory: {{ fluentd_mem_limit }} - requests: - cpu: {{ fluentd_cpu_requests }} - memory: {{ fluentd_mem_requests }} - volumeMounts: - - name: varlog - mountPath: /var/log - - name: varlibdockercontainers - mountPath: "{{ docker_daemon_graph }}/containers" - readOnly: true - - name: config-volume - mountPath: "{{ fluentd_config_dir }}" - terminationGracePeriodSeconds: 30 - volumes: - - name: varlog - hostPath: - path: /var/log - - name: varlibdockercontainers - hostPath: - path: {{ docker_daemon_graph }}/containers - - name: config-volume - configMap: - name: fluentd-config diff --git a/roles/kubernetes-apps/efk/kibana/defaults/main.yml b/roles/kubernetes-apps/efk/kibana/defaults/main.yml deleted file mode 100644 index c76e3e71009461a722968e70d20f8e0113a11752..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/kibana/defaults/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -kibana_cpu_limit: 100m -kibana_mem_limit: 0M -kibana_cpu_requests: 100m -kibana_mem_requests: 0M -kibana_service_port: 5601 -kibana_base_url: "/api/v1/namespaces/kube-system/services/kibana-logging/proxy" diff --git a/roles/kubernetes-apps/efk/kibana/tasks/main.yml b/roles/kubernetes-apps/efk/kibana/tasks/main.yml deleted file mode 100644 index 424b313b80c96830915b922100276f66a3b4c243..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/kibana/tasks/main.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -- 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: "kube-system" - resource: "deployment" - state: "latest" - 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: "kube-system" - resource: "svc" - state: "latest" - with_items: "{{ kibana_service_manifest.changed }}" - run_once: true diff --git a/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 b/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 deleted file mode 100644 index b9c875be6863d184086f57357624664ef766d930..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 +++ /dev/null @@ -1,49 +0,0 @@ ---- -# https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.10/cluster/addons/fluentd-elasticsearch/kibana-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kibana-logging - namespace: "kube-system" - 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" %} - memory: "{{ kibana_mem_limit }}" -{% endif %} - requests: - cpu: {{ kibana_cpu_requests }} -{% if kibana_mem_requests is defined and kibana_mem_requests != "0M" %} - memory: "{{ kibana_mem_requests }}" -{% endif %} - env: - - name: "ELASTICSEARCH_URL" - value: "http://elasticsearch-logging:{{ elasticsearch_service_port }}" - - name: "SERVER_BASEPATH" - value: "{{ kibana_base_url }}" - - name: XPACK_MONITORING_ENABLED - value: "false" - - name: XPACK_SECURITY_ENABLED - value: "false" - ports: - - containerPort: 5601 - name: ui - protocol: TCP - serviceAccountName: efk diff --git a/roles/kubernetes-apps/efk/kibana/templates/kibana-service.yml.j2 b/roles/kubernetes-apps/efk/kibana/templates/kibana-service.yml.j2 deleted file mode 100644 index 5cff3c628094e0cad46e5251a3ecb74d16536136..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/kibana/templates/kibana-service.yml.j2 +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: kibana-logging - namespace: "kube-system" - 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 - diff --git a/roles/kubernetes-apps/efk/meta/main.yml b/roles/kubernetes-apps/efk/meta/main.yml deleted file mode 100644 index 550ba94975cb8040e87768ce92a907e13f9265d2..0000000000000000000000000000000000000000 --- a/roles/kubernetes-apps/efk/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -dependencies: - - role: kubernetes-apps/efk/elasticsearch - - role: kubernetes-apps/efk/fluentd - - role: kubernetes-apps/efk/kibana diff --git a/roles/kubernetes-apps/meta/main.yml b/roles/kubernetes-apps/meta/main.yml index b6f94d1f1aa6762c3d1f3f8796c82b90e59fe7af..52ddee1bc6d8612b39bfd7965d33555c20e575c2 100644 --- a/roles/kubernetes-apps/meta/main.yml +++ b/roles/kubernetes-apps/meta/main.yml @@ -6,14 +6,6 @@ dependencies: tags: - apps - - role: kubernetes-apps/efk - when: - - efk_enabled - - inventory_hostname == groups['kube-master'][0] - tags: - - apps - - efk - - role: kubernetes-apps/helm when: - helm_enabled diff --git a/roles/kubernetes-apps/rotate_tokens/tasks/main.yml b/roles/kubernetes-apps/rotate_tokens/tasks/main.yml index 2589b3610f30f067286fd129b796b30690c48544..5d0abf0f152d2914c1865a4314d6efcb26cf079c 100644 --- a/roles/kubernetes-apps/rotate_tokens/tasks/main.yml +++ b/roles/kubernetes-apps/rotate_tokens/tasks/main.yml @@ -34,7 +34,7 @@ {{ bin_dir }}/kubectl get secrets --all-namespaces -o 'jsonpath={range .items[*]}{"\n"}{.metadata.namespace}{" "}{.metadata.name}{" "}{.type}{end}' | grep kubernetes.io/service-account-token - | egrep 'default-token|kube-proxy|kube-dns|dnsmasq|netchecker|weave|calico|canal|flannel|dashboard|cluster-proportional-autoscaler|efk|tiller|local-volume-provisioner' + | egrep 'default-token|kube-proxy|kube-dns|dnsmasq|netchecker|weave|calico|canal|flannel|dashboard|cluster-proportional-autoscaler|tiller|local-volume-provisioner' register: tokens_to_delete when: needs_rotation diff --git a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml index 22ac009348a212f962b97d566805f295f8ef9b85..2e2823623f5b35453b61e1f98b2a4a916b547e1b 100644 --- a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml +++ b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml @@ -39,7 +39,6 @@ - { name: download_run_once, value: "{{ download_run_once }}" } - { name: deploy_netchecker, value: "{{ deploy_netchecker }}" } - { name: download_always_pull, value: "{{ download_always_pull }}" } - - { name: efk_enabled, value: "{{ efk_enabled }}" } - { name: helm_enabled, value: "{{ helm_enabled }}" } - { name: openstack_lbaas_enabled, value: "{{ openstack_lbaas_enabled }}" } ignore_errors: "{{ ignore_assert_errors }}" diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml index a81eb85f06371a23536fb7548f76e51fc417675c..6620eb47d06cd9725ce66df24b92647749b69342 100644 --- a/roles/kubespray-defaults/defaults/main.yaml +++ b/roles/kubespray-defaults/defaults/main.yaml @@ -238,7 +238,6 @@ k8s_image_pull_policy: IfNotPresent dashboard_enabled: true # Addons which can be enabled -efk_enabled: false helm_enabled: false registry_enabled: false enable_network_policy: true diff --git a/tests/files/gce_centos7-flannel-addons.yml b/tests/files/gce_centos7-flannel-addons.yml index f6bfb6cb276cae26062d45da911b8b9cc15da146..86a3199c87bfc975eb356f9f93cdc89473ec7db6 100644 --- a/tests/files/gce_centos7-flannel-addons.yml +++ b/tests/files/gce_centos7-flannel-addons.yml @@ -7,7 +7,6 @@ mode: ha # Deployment settings kube_network_plugin: flannel helm_enabled: true -efk_enabled: true kubernetes_audit: true etcd_events_cluster_setup: true local_volume_provisioner_enabled: true