# Kubernetes 1.23<!-- .element: style="font-size: 2.5em" --> #### Démo équipe Monitoring 15/06/2023 --- # Sujets - ChangeLog Kubernetes 1.22 et 1.23 - Versions de CoreDNS et Kubernetes - Matrice de compatibilité Kube-state-metrics - Bonus --- # Kubernetes 1.22 Features & Deprecations<!-- .element: style="font-size: 1.5em" --> - Suppression de plusieurs apiservices en beta (IngressClass, TookenReview etc.) - Ajout de nouveaux apiservices (cni, cce, proxy etc.) - Utilisation du v2 cgroup api pour l'amélioration de la qualité de service - ReadWriteOncePod: "access mode" pour les PV/PVC - L'option minReadySeconds disponible pour les StatefulSets - Arrivé du label kubernetes.io/metadata.name pour tous les namespaces --- # Kubernetes 1.22 Features & Deprecations<!-- .element: style="font-size: 1.5em" --> - Plusieurs métriques apiserver (apiserver_delegated_authz_request_total, apiserver_flowcontrol_latest_s) - Une nouvelle métrique container_start_time_seconds (exposée par kubelet) - Une nouvelle colonne LAST RESTART quand on fait (kubectl get pods output) - Une nouvelle métrique rest_client_rate_limiter_duration_seconds_* - La suppression du champ topologyKeys (pour les services) remplacé par topology-aware et/ou traffic policy - Trois nouvelles metriques pour job controller: job_sync_total,job_sync_duration_seconds, job_finished_total --- # Kubernetes 1.23 Features<!-- .element: style="font-size: 1.5em" --> - Encore plusieurs metrics apiserver (apiserver_cache_list_total, apiserver_storage_list_total ...) - Le champ OS au niveau des spec du pod. - Ephemeral containers passe en beta - Apiserver_longrunning_requests metric va remplacer apiserver_longrunning_gauge metric - StatefulSetAutoDeletePVC quand le statefulset est supprimé. - Possibilité de faire des readinessProbes avec du GRPC --- # CoreDNS et Kubernetes - Kubeadm déploie CoreDNS-1.8.0 sur K8S-1.21 et CoreDNS-1.8.6 sur K8S-1.23 - Sur FE, CoreDNS est en 1.8.4 sur K8S-1.19, K8S-1.21 et K8S-1.23 - Sur AWS, CoreDNS est en 1.8.7 sur K8S-1.23 Conséquences : - FE : pas de changement - AWS : pas de changement --- # Kube-state-metrics Nous utilisons actuellement Kube-state-metrics 2.2.0 (clusters >= 1.18)<!-- .element: style="font-size: 0.5em" --> La version 2.2.4 de Kube-state-metrics est la première compatible à la version v1.23 de Kubernetes.<!-- .element: style="font-size: 0.5em" --> | Kube-state-metrics | K8s 1.21 | K8s 1.22 | K8s 1.23 | | ------------------ | -------- | -------- | -------- | | **v2.1.1** | ✓ | -/✓ | -/✓ | | **v2.2.1** | ✓ | ✓ | -/✓ | | **v2.2.4** | ✓ | ✓ | ✓ | | **v2.3.0** | ✓ | ✓ | ✓ | ✓ 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" --> --- # StatefulSetAutoDeletePVC ```yaml= apiVersion: apps/v1 kind: StatefulSet … spec: persistentVolumeClaimRetentionPolicy: whenDeleted: Retain whenScaled: Delete ``` --- # Ephemeral conatiner - Devenu stable depuis la version 1.23 - Permet de debug les containers avec des images distroless : pas de shell ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/baee2425-c938-4e58-9c7d-0c2dbd084113.png =x250) --- # Conclusion - Pas de supression ni de renommage de métriques. - Arrivée de nouvelles métriques surout pour apiserver - 7 métriques avec un nouveau labels - Plusieurs métriques qui sont passé à stable - Aucun impact sur les rules et dashboards <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}}