# Kubernetes 1.21<!-- .element: style="font-size: 2.5em" --> #### Démo Équipe Monitoring du 30/08/22 --- # Sujets - ChangeLog Kubernetes 1.20 et 1.21 - Versions de CoreDNS et Kubernetes - Matrice de compatibilité Kube-state-metrics --- # Kubernetes 1.20 Features & Deprecations<!-- .element: style="font-size: 1.5em" --> - Pas de changements significatifs - Update cadvisor d'une **version antérieure à v0.37.0** vers **v0.38.7** (pas de changements notables) --- # Kubernetes 1.21 Features<!-- .element: style="font-size: 1.5em" --> - [Generic Ephemeral Volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) - Nouvelle fonctionnalité avec les métriques associées : - Added `ephemeral_volume_controller_create[_failures]_total counters` to kube-controller-manager metrics (#99115) - Nouvelles métriques pour les Cronjobs - Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob (#99341, @alaypatel07) - Métrique : histogramme `cronjob_job_creation_skew_duration_seconds` (la "gauge" n'est pas dans le code !!!) --- # Kubernetes 1.21 Deprecations<!-- .element: style="font-size: 1.5em" --> - Removed metrics - Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`. And add new field status for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. (#98332, @JornShen) [SIG Instrumentation and Storage] - Utilisé dans le dashboard `defaultv2/kubernetes-v2-kubelet.json` - D'autres métriques ont également été marquées *deprecated*. Nous ne les avons pas dans Caascad (tableaux de bord et rules) - PodSecurityPolicy - `policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+` : [PodSecurityPolicy Deprecation: Past, Present, and Future](https://kubernetes.io/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/) --- # CoreDNS et Kubernetes - CoreDNS n'est pas un composant natif de Kubernetes - Kubeadm déploie CoreDNS-1.7.0 sur K8S-1.19 et CoreDNS-1.8.0 sur K8S-1.21 - Sur FE, CoreDNS est en 1.8.4 sur K8S-1.19 et K8S-1.21 - Sur AWS, CoreDNS est en 1.7.0 sur K8S-1.19 Conséquences : - FE : pas de changement - AWS : nous ne savons pas si AWS déploie CoreDNS 1.8.0 ou une autre version. --- # CoreDNS Versions successives : 1.7.1 - 1.8.0 - 1.8.1 - 1.8.2 - 1.8.3 - 1.8.4 Changements notables : - 1.8.1&nbsp;: * </span>plugin/kubernetes: Fix dns programming duration metric (https://github.com/coredns/coredns/pull/4255) Fix endpoint object latency metrics (previously the metric was not reported)</span><!-- .element: style="font-size:60%" --> * Nom de la métrique : `dns_programming_duration_seconds` * Mais qui utilise cette métrique ? - 1.8.4 : * </span>plugin/health: add logging for local health request (https://github.com/coredns/coredns/pull/4533) Exemple de logs : `[WARNING] plugin/health: Local health request to "http://:8080/health" took more than 1s: 2.001739243s`</span><!-- .element: style="font-size:60%" --> --- # Kube-state-metrics Nous utilisons actuellement Kube-state-metrics 2.2.0 (clusters >= 1.18)<!-- .element: style="font-size: 0.5em" --> Kube-state-metrics 2.1.1 est la dernière à supporter (-/✓) K8S-1.17.<!-- .element: style="font-size: 0.5em" --> | kube-state-metrics | **Kubernetes 1.19** | **Kubernetes 1.20** | **Kubernetes 1.21** | **Kubernetes 1.22** | **Kubernetes 1.23** | **Kubernetes 1.24** | |--------------------|:--------------------:|:---------------------:|:-------------------:|:-------------------:|:-------------------:|:-------------------:| | **v2.1.1** | ✓ | ✓ | ✓ | -/✓ | -/✓ | ? | | **v2.2.0** | ✓ | ✓ | ✓ | ✓ | ? | ? | | **v2.2.4** | ✓ | ✓ | ✓ | ✓ | ✓ | ? | | **v2.3.0** | ✓ | ✓ | ✓ | ✓ | ✓ | - | | **v2.4.2** | -/✓ | -/✓ | ✓ | ✓ | ✓ | - | | **v2.5.0** | ? | -/✓ | -/✓ | ✓ | ✓ | ✓ | | **v2.6.0** | ? | -/✓ | -/✓ | ✓ | ✓ | ✓ | | **master** | -/✓ | -/✓ | -/✓ | ✓ | ✓ | ✓ | ✓ Fully supported version range.<!-- .element: style="font-size: 0.3em;" --> &dash; The Kubernetes cluster has features the client-go library can't use (additional API objects, deprecated APIs, etc).<!-- .element: style="font-size: 0.3em" --> ? The Kubernetes cluster has features the client-go library can't use (additional API objects, deprecated APIs, etc).<!-- .element: style="font-size: 0.3em" --> Tableau créé à partir de 3 versions de la matrice de compatibilité kube-state-metrics.<!-- .element: style="font-size: 0.5em" --> --- # Conclusion Sujets pour aller plus loin... - Mise à jour des dashboards "upstream" (`defaultv2/kubernetes-v2-kubelet.json`) - Étude des Generic Ephemeral Volumes - Stratégie d'upgrade de Kube-state-metrics <style type="text/css"> p { font-size: smaller; } .reveal ul ul li { font-size: smaller; } .reveal ul li { font-size: 0.6em; } .reveal section { text-align: left; } } .reveal h3 { color: orange; text-align: center; border-bottom: 1px solid orange; } .reveal h1 { color: orange; text-align: center; border-bottom: 1px solid orange; margin-bottom: 0.4em; font-size: 2em; } .reveal code { color: aquamarine; font-size: smaller; } .reveal table { font-size: .4em; }</style>
{"type":"slide","slideOptions":{"transition":"slide","center":true}}