From 71dabf9fb323911d387cfdb2176c0cae6689e200 Mon Sep 17 00:00:00 2001 From: xuhuilong Date: Mon, 15 May 2017 08:12:26 -0400 Subject: [PATCH 001/131] fix curl get calico status error ( error in tls version) :https://bugzilla.redhat.com/show_bug.cgi?id=1272504 --- roles/kubernetes/preinstall/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index dd5cbf810..dd9f30c74 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -11,6 +11,7 @@ common_required_pkgs: - bash-completion - socat - unzip + - nss # Set to true if your network does not support IPv6 # This maybe necessary for pulling Docker images from From 2ffcfdcd259e34d81565d229a0cfca3ae075a8b0 Mon Sep 17 00:00:00 2001 From: brx Date: Fri, 24 Nov 2017 20:13:38 +0100 Subject: [PATCH 002/131] Update main.yml --- roles/docker/docker-storage/defaults/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/docker/docker-storage/defaults/main.yml b/roles/docker/docker-storage/defaults/main.yml index 9785dac47..81afdc0dd 100644 --- a/roles/docker/docker-storage/defaults/main.yml +++ b/roles/docker/docker-storage/defaults/main.yml @@ -6,10 +6,10 @@ docker_container_storage_setup_container_thinpool: docker-pool docker_container_storage_setup_data_size: 40%FREE docker_container_storage_setup_min_data_size: 2G docker_container_storage_setup_chunk_size: 512K -docker_container_storage_setup_growpart: false -docker_container_storage_setup_auto_extend_pool: yes +docker_container_storage_setup_growpart: "false" +docker_container_storage_setup_auto_extend_pool: "yes" docker_container_storage_setup_pool_autoextend_threshold: 60 docker_container_storage_setup_pool_autoextend_percent: 20 docker_container_storage_setup_device_wait_timeout: 60 -docker_container_storage_setup_wipe_signatures: false +docker_container_storage_setup_wipe_signatures: "false" docker_container_storage_setup_container_root_lv_size: 40%FREE From 8766b36144b2052777afdb506694cf666d084945 Mon Sep 17 00:00:00 2001 From: Jan Jungnickel Date: Mon, 4 Dec 2017 16:41:35 +0100 Subject: [PATCH 003/131] Make path to generated inventory configurable --- contrib/terraform/aws/create-infrastructure.tf | 2 +- contrib/terraform/aws/terraform.tfvars | 2 ++ contrib/terraform/aws/variables.tf | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/terraform/aws/create-infrastructure.tf b/contrib/terraform/aws/create-infrastructure.tf index 9c0617d84..1ff584f0c 100644 --- a/contrib/terraform/aws/create-infrastructure.tf +++ b/contrib/terraform/aws/create-infrastructure.tf @@ -181,7 +181,7 @@ data "template_file" "inventory" { resource "null_resource" "inventories" { provisioner "local-exec" { - command = "echo '${data.template_file.inventory.rendered}' > ../../../inventory/hosts" + command = "echo '${data.template_file.inventory.rendered}' > ${var.inventory_file}" } triggers { diff --git a/contrib/terraform/aws/terraform.tfvars b/contrib/terraform/aws/terraform.tfvars index 99ea64eed..c5b1dbff1 100644 --- a/contrib/terraform/aws/terraform.tfvars +++ b/contrib/terraform/aws/terraform.tfvars @@ -31,3 +31,5 @@ default_tags = { # Env = "devtest" # Product = "kubernetes" } + +inventory_file = "../../../inventory/hosts" diff --git a/contrib/terraform/aws/variables.tf b/contrib/terraform/aws/variables.tf index 58dd31388..37aab2bae 100644 --- a/contrib/terraform/aws/variables.tf +++ b/contrib/terraform/aws/variables.tf @@ -103,3 +103,7 @@ variable "default_tags" { description = "Default tags for all resources" type = "map" } + +variable "inventory_file" { + description = "Where to store the generated inventory file" +} From 3f44a3373884e36bd89c351873756e77b464eb9a Mon Sep 17 00:00:00 2001 From: southquist Date: Wed, 14 Feb 2018 10:17:06 +0100 Subject: [PATCH 004/131] allow for configurable openstack storage class --- .../persistent_volumes/openstack/defaults/main.yml | 5 +++++ .../persistent_volumes/openstack/tasks/main.yml | 14 ++++++-------- .../templates/openstack-storage-class.yml | 10 ---------- .../templates/openstack-storage-class.yml.j2 | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 18 deletions(-) delete mode 100644 roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml create mode 100644 roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml b/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml index 8553ec5e2..05a3d944e 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml +++ b/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml @@ -1,2 +1,7 @@ --- persistent_volumes_enabled: false +storage_classes: + - name: standard + is_default: true + parameters: + availability: nova diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml b/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml index e4d1b138c..80d5fdd29 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml +++ b/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml @@ -1,21 +1,19 @@ --- - name: Kubernetes Persistent Volumes | Lay down OpenStack Cinder Storage Class template template: - src: "{{item.file}}" - dest: "{{kube_config_dir}}/{{item.file}}" - with_items: - - {file: openstack-storage-class.yml, type: StorageClass, name: storage-class } + src: "openstack-storage-class.yml.j2" + dest: "{{kube_config_dir}}/openstack-storage-class.yml" register: manifests when: - inventory_hostname == groups['kube-master'][0] - name: Kubernetes Persistent Volumes | Add OpenStack Cinder Storage Class kube: - name: "{{item.item.name}}" + name: storage-class kubectl: "{{bin_dir}}/kubectl" - resource: "{{item.item.type}}" - filename: "{{kube_config_dir}}/{{item.item.file}}" + resource: StorageClass + filename: "{{kube_config_dir}}/openstack-storage-class.yml" state: "latest" - with_items: "{{ manifests.results }}" when: - inventory_hostname == groups['kube-master'][0] + - manifests.changed diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml deleted file mode 100644 index 02d39dd97..000000000 --- a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: standard - annotations: - storageclass.kubernetes.io/is-default-class: "true" -provisioner: kubernetes.io/cinder -parameters: - availability: nova diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 new file mode 100644 index 000000000..5b1f5caed --- /dev/null +++ b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 @@ -0,0 +1,14 @@ +{% for class in storage_classes %} +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: "{{ class.name }}" + annotations: + storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) }}" +provisioner: kubernetes.io/cinder +parameters: +{% for key, value in (class.parameters | default({})).items() %} + "{{ key }}": "{{ value }}" +{% endfor %} +{% endfor %} From ba2107ea8c39fd2129ffc807119e247af4d6795d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20S=C3=B6derqvist?= Date: Thu, 15 Feb 2018 10:51:42 +0100 Subject: [PATCH 005/131] is-default-class is case sensative so we must return a lowercase string --- .../openstack/templates/openstack-storage-class.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 index 5b1f5caed..629c1f0a3 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 +++ b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 @@ -5,7 +5,7 @@ apiVersion: storage.k8s.io/v1 metadata: name: "{{ class.name }}" annotations: - storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) }}" + storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) | ternary("true","false") }}" provisioner: kubernetes.io/cinder parameters: {% for key, value in (class.parameters | default({})).items() %} From 70e0998a7076c6c36654427bcccd68d01775fdb9 Mon Sep 17 00:00:00 2001 From: Miouge1 Date: Thu, 3 May 2018 21:51:33 +0200 Subject: [PATCH 006/131] Update kube-scheduler policy --- .../templates/kube-scheduler-policy.yaml.j2 | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/roles/kubernetes/master/templates/kube-scheduler-policy.yaml.j2 b/roles/kubernetes/master/templates/kube-scheduler-policy.yaml.j2 index 6616adc6f..b87ec971b 100644 --- a/roles/kubernetes/master/templates/kube-scheduler-policy.yaml.j2 +++ b/roles/kubernetes/master/templates/kube-scheduler-policy.yaml.j2 @@ -2,17 +2,27 @@ "kind" : "Policy", "apiVersion" : "v1", "predicates" : [ - {"name" : "PodFitsHostPorts"}, - {"name" : "PodFitsResources"}, + {"name" : "MaxEBSVolumeCount"}, + {"name" : "MaxGCEPDVolumeCount"}, + {"name" : "MaxAzureDiskVolumeCount"}, + {"name" : "MatchInterPodAffinity"}, {"name" : "NoDiskConflict"}, - {"name" : "MatchNodeSelector"}, - {"name" : "HostName"} + {"name" : "GeneralPredicates"}, + {"name" : "CheckNodeMemoryPressure"}, + {"name" : "CheckNodeDiskPressure"}, + {"name" : "CheckNodePIDPressure"}, + {"name" : "CheckNodeCondition"}, + {"name" : "PodToleratesNodeTaints"}, + {"name" : "CheckVolumeBinding"} ], "priorities" : [ + {"name" : "SelectorSpreadPriority", "weight" : 1}, + {"name" : "InterPodAffinityPriority", "weight" : 1}, {"name" : "LeastRequestedPriority", "weight" : 1}, {"name" : "BalancedResourceAllocation", "weight" : 1}, - {"name" : "ServiceSpreadingPriority", "weight" : 1}, - {"name" : "EqualPriority", "weight" : 1} + {"name" : "NodePreferAvoidPodsPriority", "weight" : 1}, + {"name" : "NodeAffinityPriority", "weight" : 1}, + {"name" : "TaintTolerationPriority", "weight" : 1} ], "hardPodAffinitySymmetricWeight" : 10 } From 51a9379d3c015294470e9eb8d804d71912c8bfa7 Mon Sep 17 00:00:00 2001 From: Ryo Nishikawa Date: Tue, 8 May 2018 12:23:58 -0700 Subject: [PATCH 007/131] Add vm_name option to vsphere cloud provider config --- roles/kubernetes/node/templates/vsphere-cloud-config.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/roles/kubernetes/node/templates/vsphere-cloud-config.j2 b/roles/kubernetes/node/templates/vsphere-cloud-config.j2 index d82d72bf8..1383f78bb 100644 --- a/roles/kubernetes/node/templates/vsphere-cloud-config.j2 +++ b/roles/kubernetes/node/templates/vsphere-cloud-config.j2 @@ -14,6 +14,9 @@ server = "{{ vsphere_vcenter_ip }}" {% if vsphere_vm_uuid is defined and vsphere_vm_uuid != "" %} vm-uuid = "{{ vsphere_vm_uuid }}" {% endif %} +{% if vsphere_vm_name is defined and vsphere_vm_name != "" %} +vm-name = "{{ vsphere_vm_name }}" +{% endif %} {% endif %} {% if kube_version | version_compare('v1.9.2', '>=') %} From ba320e918d8a99e432f5d4bd7c1abf880c969e67 Mon Sep 17 00:00:00 2001 From: Arnaud Meukam Date: Fri, 11 May 2018 18:22:44 +0200 Subject: [PATCH 008/131] update elasticsearch image --- roles/download/defaults/main.yml | 4 ++-- .../templates/efk-clusterrolebinding.yml | 5 ++++- .../efk/elasticsearch/templates/efk-sa.yml | 1 + .../templates/elasticsearch-deployment.yml.j2 | 15 +++++++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 10b39967b..bbcc1996e 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -130,8 +130,8 @@ 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: "v2.4.1" -elasticsearch_image_repo: "gcr.io/google_containers/elasticsearch" +elasticsearch_version: "v5.6.4" +elasticsearch_image_repo: "k8s.gcr.io/elasticsearch" elasticsearch_image_tag: "{{ elasticsearch_version }}" fluentd_version: "1.22" fluentd_image_repo: "gcr.io/google_containers/fluentd-elasticsearch" diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml index dd5b9b630..4b9ab0067 100644 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml +++ b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-clusterrolebinding.yml @@ -1,9 +1,12 @@ --- kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 +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 diff --git a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml index 75d75f650..01e774e96 100644 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml +++ b/roles/kubernetes-apps/efk/elasticsearch/templates/efk-sa.yml @@ -6,3 +6,4 @@ metadata: 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 index 4cdcf33ad..a5edaa81f 100644 --- a/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-deployment.yml.j2 +++ b/roles/kubernetes-apps/efk/elasticsearch/templates/elasticsearch-deployment.yml.j2 @@ -1,14 +1,15 @@ --- -# https://raw.githubusercontent.com/kubernetes/kubernetes/v1.5.2/cluster/addons/fluentd-elasticsearch/es-controller.yaml -apiVersion: extensions/v1beta1 -kind: Deployment +# 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-v1 + 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: replicas: 2 selector: @@ -53,4 +54,10 @@ spec: {% if rbac_enabled %} serviceAccountName: efk {% endif %} + initContainers: + - image: alpine:3.6 + command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"] + name: elasticsearch-logging-init + securityContext: + privileged: true From 698da78768330114249b2df5fabf6d871f0431ae Mon Sep 17 00:00:00 2001 From: Arnaud Meukam Date: Fri, 11 May 2018 18:36:50 +0200 Subject: [PATCH 009/131] update kibana docker image --- roles/download/defaults/main.yml | 4 ++-- .../efk/kibana/templates/kibana-deployment.yml.j2 | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index bbcc1996e..1f036d689 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -136,8 +136,8 @@ elasticsearch_image_tag: "{{ elasticsearch_version }}" fluentd_version: "1.22" fluentd_image_repo: "gcr.io/google_containers/fluentd-elasticsearch" fluentd_image_tag: "{{ fluentd_version }}" -kibana_version: "v4.6.1" -kibana_image_repo: "gcr.io/google_containers/kibana" +kibana_version: "5.6.4" +kibana_image_repo: "docker.elastic.co/kibana/kibana" kibana_image_tag: "{{ kibana_version }}" helm_version: "v2.8.1" helm_image_repo: "lachlanevenson/k8s-helm" diff --git a/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 b/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 index c5603d389..014bf9569 100644 --- a/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 +++ b/roles/kubernetes-apps/efk/kibana/templates/kibana-deployment.yml.j2 @@ -1,6 +1,6 @@ --- -# https://raw.githubusercontent.com/kubernetes/kubernetes/v1.5.2/cluster/addons/fluentd-kibana/kibana-controller.yaml -apiVersion: extensions/v1beta1 +# 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 @@ -36,10 +36,12 @@ spec: 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 %} + - name: "SERVER_BASEPATH" + value: "/api/v1/namespaces/kube-system/services/kibana-logging/proxy" + - name: XPACK_MONITORING_ENABLED + value: "false" + - name: XPACK_SECURITY_ENABLED + value: "false" ports: - containerPort: 5601 name: ui From 7950a49e28cd72fe7cc06b618f8b9b95220653f9 Mon Sep 17 00:00:00 2001 From: Arnaud Meukam Date: Fri, 11 May 2018 18:56:14 +0200 Subject: [PATCH 010/131] update fluentd deployment and configmap --- roles/download/defaults/main.yml | 4 +- .../efk/fluentd/defaults/main.yml | 6 +- .../fluentd/templates/fluentd-config.yml.j2 | 283 ++++++++++++------ .../efk/fluentd/templates/fluentd-ds.yml.j2 | 24 +- 4 files changed, 216 insertions(+), 101 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 1f036d689..191b6bb16 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -133,8 +133,8 @@ test_image_tag: latest elasticsearch_version: "v5.6.4" elasticsearch_image_repo: "k8s.gcr.io/elasticsearch" elasticsearch_image_tag: "{{ elasticsearch_version }}" -fluentd_version: "1.22" -fluentd_image_repo: "gcr.io/google_containers/fluentd-elasticsearch" +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" diff --git a/roles/kubernetes-apps/efk/fluentd/defaults/main.yml b/roles/kubernetes-apps/efk/fluentd/defaults/main.yml index e8d93732c..0305a5f7a 100644 --- a/roles/kubernetes-apps/efk/fluentd/defaults/main.yml +++ b/roles/kubernetes-apps/efk/fluentd/defaults/main.yml @@ -1,7 +1,7 @@ --- fluentd_cpu_limit: 0m -fluentd_mem_limit: 200Mi +fluentd_mem_limit: 500Mi fluentd_cpu_requests: 100m fluentd_mem_requests: 200Mi -fluentd_config_dir: /etc/kubernetes/fluentd -fluentd_config_file: fluentd.conf +fluentd_config_dir: /etc/fluent/config.d +# fluentd_config_file: fluentd.conf diff --git a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 b/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 index b7de44dc0..19b43a130 100644 --- a/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 +++ b/roles/kubernetes-apps/efk/fluentd/templates/fluentd-config.yml.j2 @@ -1,10 +1,19 @@ +--- +# 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: - {{ fluentd_config_file }}: | + system.conf: |- + + root_dir /tmp/fluentd-buffers/ + + + 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 @@ -18,7 +27,6 @@ data: # See https://github.com/uken/fluent-plugin-elasticsearch & # https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter for # more information about the plugins. - # Maintainer: Jimmi Dyson # # Example # ======= @@ -99,63 +107,87 @@ data: # 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). - # - # TODO: Propagate the labels associated with a container along with its logs - # so users can query logs using labels as well as or instead of the pod name - # and container name. This is simply done via configuration of the Kubernetes - # fluentd plugin but requires secrets to be enabled in the fluent pod. This is a - # problem yet to be solved as secrets are not usable in static pods which the fluentd - # pod must be until a per-node controller is available in Kubernetes. - # Prevent fluentd from handling records containing its own logs. Otherwise - # it can lead to an infinite loop, when error in sending one message generates - # another message which also fails to be sent and so on. - - type null - - # Example: + + # 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 - type tail + @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 kubernetes.* - format json + tag raw.kubernetes.* read_from_head true + + @type multi_format + + format json + time_key time + time_format %Y-%m-%dT%H:%M:%S.%NZ + + + format /^(? + + + # Detect exceptions in the log output and forward them as one log entry. + + @id raw.kubernetes + @type detect_exceptions + remove_tag_prefix raw + message log + stream stream + multiline_flush_interval 5 + max_bytes 500000 + max_lines 1000 + + + 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 - type tail + @id minion + @type tail format /^(?