From dc98fa21a94293aff0923a64ec2767a409426663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Wed, 15 Aug 2018 04:04:18 -0500 Subject: [PATCH 1/4] Add explanations for a failure mode in logging (#324) * Add explanations for a failure mode in logging Thanks @abuisine for reporting that one too! * Typo --- slides/kube/logs-centralized.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/slides/kube/logs-centralized.md b/slides/kube/logs-centralized.md index d316b2fa..a707e0b9 100644 --- a/slides/kube/logs-centralized.md +++ b/slides/kube/logs-centralized.md @@ -113,7 +113,7 @@ and a few roles and role bindings (to give fluentd the required permissions). - The first time you connect to Kibana, you must "configure an index pattern" -- Just use the one that is suggested, `@timestamp` +- Just use the one that is suggested, `@timestamp`.red[*] - Then click "Discover" (in the top-left corner) @@ -123,6 +123,9 @@ and a few roles and role bindings (to give fluentd the required permissions). `kubernetes.host`, `kubernetes.pod_name`, `stream`, `log` +.red[*]If you don't see `@timestamp`, it's probably because no logs exist yet. +
Wait a bit, and double-check the logging pipeline! + --- ## Caveat emptor From fb7f7fd8c8b1390900e233ff6dca58ea3a384654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Thu, 9 Aug 2018 07:25:30 -0500 Subject: [PATCH 2/4] Expand to the brief logging/metrics slide Thanks to @abuisine for reminding me that Heapster is going through a deprecation cycle. I'm also expanding these two slides to be a bit more useful and relevant. --- slides/kube/whatsnext.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/slides/kube/whatsnext.md b/slides/kube/whatsnext.md index bbce2681..c77da18f 100644 --- a/slides/kube/whatsnext.md +++ b/slides/kube/whatsnext.md @@ -93,13 +93,35 @@ And *then* it is time to look at orchestration! --- -## Logging and metrics +## Logging - Logging is delegated to the container engine -- Metrics are typically handled with [Prometheus](https://prometheus.io/) +- Logs are exposed through the API - ([Heapster](https://github.com/kubernetes/heapster) is a popular add-on) +- Logs are also accessible through local files (`/var/log/containers`) + +- Log shipping to a central platform is usually done through these files + + (e.g. with an agent bind-mounting the log directory) + +--- + +## Metrics + +- The kubelet embeds cAdvisor, which exposes container metrics + + (cAdvisor might be separated in the future for more flexibility) + +- [Heapster](https://github.com/kubernetes/heapster) is a popular add-on + + (but is being [deprecated](https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md) starting with Kubernetes 1.11) + +- It is now recommended to use the [Metrics Server](https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/) instead + +- It is a good idea to start with [Prometheus](https://prometheus.io/) + + (even if you end up using something else) --- From f66b6b2ee3b1167359db5db9dfd9ae2f13203c6e Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Wed, 15 Aug 2018 04:07:12 -0500 Subject: [PATCH 3/4] Slight edits (#326) --- slides/kube/whatsnext.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/slides/kube/whatsnext.md b/slides/kube/whatsnext.md index c77da18f..b2eba31e 100644 --- a/slides/kube/whatsnext.md +++ b/slides/kube/whatsnext.md @@ -109,20 +109,22 @@ And *then* it is time to look at orchestration! ## Metrics -- The kubelet embeds cAdvisor, which exposes container metrics +- The kubelet embeds [cAdvisor](https://github.com/google/cadvisor), which exposes container metrics (cAdvisor might be separated in the future for more flexibility) -- [Heapster](https://github.com/kubernetes/heapster) is a popular add-on - - (but is being [deprecated](https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md) starting with Kubernetes 1.11) - -- It is now recommended to use the [Metrics Server](https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/) instead - - It is a good idea to start with [Prometheus](https://prometheus.io/) (even if you end up using something else) +- Starting from Kubernetes 1.8, we can use the [Metrics API](https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/) + +- [Heapster](https://github.com/kubernetes/heapster) was a popular add-on + + (but is being [deprecated](https://github.com/kubernetes/heapster/blob/master/docs/deprecation.md) starting with Kubernetes 1.11) + + + --- ## Managing the configuration of our applications From d4d460397f964468a879b847944d113291ad8c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Thu, 9 Aug 2018 07:00:52 -0500 Subject: [PATCH 4/4] Mention progressDeadlineSeconds @abuisine ran through the whole deck recently, taking the long route each time it was possible; and he noticed that another field had to be removed when transforming the Deployment into a DaemonSet. --- slides/kube/daemonset.md | 1 + 1 file changed, 1 insertion(+) diff --git a/slides/kube/daemonset.md b/slides/kube/daemonset.md index 08fc06e2..8234bad9 100644 --- a/slides/kube/daemonset.md +++ b/slides/kube/daemonset.md @@ -130,6 +130,7 @@ We all knew this couldn't be that easy, right! - remove the `replicas` field - remove the `strategy` field (which defines the rollout mechanism for a deployment) + - remove the `progressDeadlineSeconds` field (also used by the rollout mechanism) - remove the `status: {}` line at the end --