Kubernetes v1.31.0 ya está aquí: ¿Qué hay de nuevo y por qué debería importarme?

Kubernetes v1.31 es más que solo una colección de nuevas características y mejoras; es un testimonio del compromiso del proyecto con la evolución constante, la mejora de la experiencia del usuario y la seguridad mejorada. Tanto si eres un veterano experimentado en Kubernetes como si acabas de empezar tu viaje, la versión v1.31 tiene algo que ofrecer a todo el mundo. Entonces, ¿a qué esperas? Sumérgete, explora y experimenta la potencia y flexibilidad de Kubernetes v1.31.

Vale, suficiente bla, bla. Ve directo al grano.

Cada lanzamiento de Kubernetes tiene sus estrellas, y la versión v1.31 no es una excepción. Vamos a centrarnos en algunos elementos que cambian las reglas del juego:

¿Proveedores de nube In-Tree? ¡Fuera de aquí!

Este es el equivalente tecnológico de que esa banda a la que has estado siguiendo desde sus días en el garaje finalmente haya alcanzado el éxito. ¡Kubernetes se está volviendo agnóstico a la nube! La versión v1.31 se despide de todas las integraciones In-Tree con proveedores de nube. Este proceso de externalización es un gran paso hacia un Kubernetes verdaderamente neutral para los proveedores, liberándolo de las ataduras de entornos de nube específicos.

Política de reclamación de PersistentVolume: ¡Ahora con garras y dientes!

¿Recuerdas cuando establecías una política de reclamación de PersistentVolume (PersistentVolume Reclaim Policy) y se sentía más como una sugerencia que como una regla? Esos días se acabaron. La versión v1.31 introduce finalizadores de protección contra eliminación para garantizar que tu política se aplique realmente. Por fin, puedes confiar en que tus valiosos datos se gestionarán de acuerdo con tus deseos.

Kubectl Debug

La depuración de imágenes base sin shell ahora es mucho más sencilla. La versión v1.31 introduce una opción de perfil personalizado para el comando kubectl debug, lo que te permite montar volúmenes de datos y otros recursos directamente en tu contenedor de depuración. Es como tener un pase entre bastidores para solucionar problemas de tus aplicaciones con facilidad.

Apps (Deployments, StatefulSets, etc)

Kubernetes no se trata solo de infraestructura; se trata de potenciar tus aplicaciones. Así es como la versión v1.31 sube de nivel tu juego de aplicaciones:

PodDisruptionBudgets

Despídete de esos momentos incómodos en los que los Pods no saludables acaparan recursos y estropean tu escalado. La versión v1.31 presenta PodHealthyPolicy para PodDisruptionBudgets (PDB), lo que te permite especificar si solo se deben tener en cuenta los Pods saludables al aplicar los límites de interrupción. Interesante....

StatefulSets: Maestros de su propio dominio (y numeración ordinal)

La migración de StatefulSets ahora es mucho menos estresante. La versión v1.31 permite a los StatefulSets controlar su propia numeración ordinal de réplicas de inicio, allanando el camino para migraciones sin problemas entre namespaces y clusters sin el drama del tiempo de inactividad o las reprogramaciones manuales. (Hola mySQL)

Política de éxito/ finalizaciones

¿Quién dice que Kubernetes debe dictar cómo es el éxito para tus trabajos? La versión v1.31 te pone al mando con la capacidad de definir políticas de éxito y finalización personalizadas para tus workloads. Esto es particularmente útil para cargas de trabajo por lotes donde el éxito podría no significar que todas las actividades se completen.

kubectl y cli

La CLI de Kubernetes es tu fiel compañero para administrar clústeres. La versión v1.31 le ofrece algunas actualizaciones ingeniosas:

WebSockets para kubectl

Kubernetes está adoptando el futuro de la comunicación web al cambiar de SPDY a WebSockets. La versión v1.31 introduce un WebSocketExecutor para kubectl, lo que permite una comunicación más rápida y eficiente con el servidor de API de Kubernetes. Es como actualizar tu conexión de acceso telefónico a fibra óptica.

Kustomize: separado de kubectl (eventualmente)

Aunque se aplazó por ahora, el plan para desacoplar kustomize de kubectl todavía está en el horizonte. Esta separación permite que cada herramienta evolucione a su propio ritmo, evitando desajustes de versión y simplificando la base de código de kubectl. Es como esa ruptura amistosa en la que todos están de acuerdo en que es lo mejor.

Preferencias de Kubectl: La ansiedad por separación ya no existe

Mezclar las preferencias del usuario con las configuraciones del clúster es cosa del pasado. La versión v1.31 introduce el archivo kuberc, un espacio dedicado para almacenar tus preferencias de kubectl. Ahora puedes mantener tus configuraciones personales separadas de las configuraciones específicas del clúster, evitando sobrescrituras accidentales y simplificando la administración de preferencias.

Instrumentación de Kubernetes v1.31: Vigilando más de cerca las cosas

La supervisión y las métricas son cruciales para mantener tu clúster funcionando sin problemas. La versión v1.31 trae algunas mejoras notables en esta área:

Cardinalidad de métricas: Domesticando esas métricas descontroladas

La cardinalidad de métricas no controlada puede convertirse rápidamente en una pesadilla de recursos. La versión v1.31 introduce la aplicación de la cardinalidad de métricas, lo que brinda a los administradores de clústeres el poder de definir límites y evitar que las métricas descontroladas consuman todos tus recursos. Es como ponerle un regulador a un demonio de la velocidad, asegurando que todo funcione dentro de límites seguros.

Redes en Kubernetes 1.31: Conexiones más fluidas, más control

Las redes son la columna vertebral de cualquier clúster de Kubernetes, y la versión v1.31 trae algunas mejoras significativas:

Con conectividad Ingress: Kube-Proxy obtiene un aumento de confiabilidad

La versión v1.31 introduce el drenaje de conexiones para los nodos de terminación y mejora las comprobaciones de estado para Kube-proxy, lo que lleva a una conectividad Ingress más confiable para tus aplicaciones. Es como tener un policía de tránsito dirigiendo el tráfico sin problemas, incluso durante las horas pico.

Distribución del tráfico: Ajuste fino de su enrutamiento

La versión v1.31 te brinda más control sobre cómo fluye el tráfico a través de tu clúster con la adición del campo trafficDistribution en la especificación del servicio. Esto te permite especificar preferencias para enrutar el tráfico, como preferir puntos finales topológicamente más cercanos. Es como tener un GPS para el tráfico de tu clúster, guiándolo por las rutas más eficientes.

Múltiples CIDR de servicio: Abundancia de direcciones IP

Quedarse sin IP de servicio es cosa del pasado. La versión v1.31 introduce los objetos ServiceCIDR e IPAddress, lo que te permite expandir dinámicamente tu espacio de direcciones IP de servicio disponible. Es como agregar carriles a una carretera, acomodando más tráfico sin esfuerzo.

Nodos de Kubernetes v1.31: Soporte SWAP, Cgroups y AppArmor, Uf!

En el corazón de cada clúster de Kubernetes están los worker nodes. La versión v1.31 introduce algunos cambios fundamentales en el funcionamiento de los nodos:

Soporte de intercambio de memoria (SWAP)

La memoria de intercambio finalmente obtiene el reconocimiento que merece en Kubernetes. La versión v1.31 introduce soporte swap a nivel de nodo, lo que te brinda la flexibilidad de utilizar el espacio de intercambio y potencialmente mejorar el rendimiento de tus cargas de trabajo.

Cgroup v1: Se jubila

Cgroup v1 nos ha servido bien, pero es hora de pasar la antorcha. La versión v1.31 hace la transición del soporte de cgroup v1 al modo de mantenimiento, allanando el camino para la adopción del cgroup v2 más potente y eficiente.

Chapter 1. Introduction to Control Groups (Cgroups) | Red Hat Product Documentation
Chapter 1. Introduction to Control Groups (Cgroups) | Red Hat Documentation

Soporte para AppArmor

Finalmente k8s da soporte nativo para AppArmor, lo que te permite definir perfiles de seguridad detallados para tus contenedores y Pods. Esto agrega una capa adicional de protección a tus apps, limitando sus capacidades y mitigando el impacto de posibles violaciones de seguridad.

apiVersion: v1
kind: Pod
metadata:
  name: hello-apparmor
spec:
  securityContext:
    appArmorProfile:
      type: Localhost
      localhostProfile: k8s-apparmor-example-deny-write
  containers:
  - name: hello
    image: busybox:1.28
    command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
Restrict a Container’s Access to Resources with AppArmor
FEATURE STATE: Kubernetes v1.31 [stable] This page shows you how to load AppArmor profiles on your nodes and enforce those profiles in Pods. To learn more about how Kubernetes can confine Pods using AppArmor, see Linux kernel security constraints for Pods and containers. Objectives See an example of how to load a profile on a Node Learn how to enforce the profile on a Pod Learn how to check that the profile is loaded See what happens when a profile is violated See what happens when a profile cannot be loaded Before you begin AppArmor is an optional kernel module and Kubernetes feature, so verify it is supported on your Nodes before proceeding:

Scheduling: la afinidad se refina

La capacidad de "agendar" o "programar" (scheduling) es crucial para optimizar la utilización de recursos. La versión v1.31 trae algunas mejoras para PodAffinity:

PodAffinity y PodAntiAffinity se vuelven más selectivos

Despídete de los días de las reglas torpes de afinidad . La versión v1.31 introduce MatchLabelKeys y MismatchLabelKeys para PodAffinityTerm, lo que te brinda un control más granular sobre cómo los Pods se ubican conjuntamente o se distribuyen en tu clúster.

Almacenamiento en Kubernetes: timestamps en PersistentVolume, VolumeAttributesClass y más

El almacenamiento es un aspecto crítico de cualquier implementación de Kubernetes, y la versión v1.31 introduce algunas mejoras notables:

Timestamps en PersistentVolume

La administración de PersistentVolumes ahora es más fácil. La versión v1.31 agrega un nuevo campo de marca de tiempo a los PersistentVolumes, que registra cuándo hacen la transición entre diferentes fases. Esto te ayuda a comprender el ciclo de vida de tus volúmenes, simplifica las tareas de limpieza y obtiene información sobre tus patrones de uso del almacenamiento. Es como tener un libro de registro para tus volúmenes, rastreando sus viajes a través de los mares de Kubernetes.

VolumeAttributesClass: Desacoplar atributos de la capacidad

Atrás quedaron los días de administrar los atributos de almacenamiento y la capacidad como una entidad monolítica. La versión v1.31 introduce el recurso VolumeAttributesClass, lo que te permite definir y administrar atributos de volumen como IOPS y rendimiento independientemente de la capacidad. Este control detallado simplifica la administración del almacenamiento y facilita la adaptación de los recursos de almacenamiento a las necesidades específicas de tus cargas de trabajo. Es como tener una caja de herramientas llena de diferentes opciones de almacenamiento, lo que te permite elegir la que mejor se adapte a cada trabajo.

CSI Differential Snapshot : Optimización y eficiencia incremental

Las instantáneas (snapshots) son esenciales para la protección de datos, pero pueden consumir muchos recursos. Si bien se aplazó por ahora, la característica planificada de instantánea diferencial CSI tiene como objetivo optimizar este proceso al permitir la recuperación de metadatos solo para los bloques modificados entre instantáneas. Esto puede reducir significativamente el tiempo y los recursos necesarios para las operaciones de instantáneas. Es como tomar una instantánea solo de los cambios en un documento en lugar de todo el documento cada vez, ahorrando tiempo y espacio.

Otras mejoras notables en Kubernetes 1.31

Kubernetes v1.31 está repleto de muchas otras mejoras y refinamientos. Aquí hay algunos puntos destacados:

Mejoras en el token de cuenta de servicio Más seguridad y trazabilidad

La versión v1.31 refuerza la seguridad al incrustar información del nodo en tokens de cuenta de servicio vinculados (bound service account tokens), lo que dificulta su uso indebido. Además, introduce UUID para tokens, mejorando la trazabilidad de las solicitudes del servidor API. Es como agregar sellos a prueba de manipulaciones y números de seguimiento a tus tokens, mejorando la seguridad y la responsabilidad.

Políticas de admisión "mutantes"

La versión v1.31 da un paso más hacia la simplificación del control de admisión con la introducción de políticas de admisión mutantes (mutating) utilizando CEL (lenguaje de expresión común/common expression language). Esto proporciona una alternativa más eficiente a la mutación de webhooks de admisión para tareas comunes como configurar etiquetas o inyectar contenedores sidecar. Es como tener un conjunto de reglas programables para modificar automáticamente los recursos a medida que ingresan a tu clúster.

Elastic Indexed Jobs: Escalar con elegancia

La versión v1.31 agrega más flexibilidad para administrar trabajos indexados al permitirte modificar dinámicamente el número deseado de finalizaciones (spec.completions). Esto facilita la escala de tus cargas de trabajo de procesamiento por lotes hacia arriba o hacia abajo sin interrumpir el progreso del trabajo. Es como tener un acordeón para tus trabajos indexados, expandiéndose o contrayéndose para adaptarse a diversas cargas de trabajo.

kubernetes/CHANGELOG/CHANGELOG-1.31.md at master · kubernetes/kubernetes
Production-Grade Container Scheduling and Management - kubernetes/kubernetes
Kubernetes 1.31 - What’s new?
Kubernetes 1.31 is nearly here, and it’s full of exciting major changes to the project! So, what’s new in this upcoming release?

Comment using your social account:

You will be asked to grant read-only access to your public profile and email address only to verify your identity. We will never post to your account. Select your preferred social account to get started.
Service provided by Spectral Web Services.

  |

Read interesting articles in SREDevOps.org:

Whonix: An Operating System for DevSecOps, Researchers and Paranoids like you and me

Whonix: An Operating System for DevSecOps, Researchers and Paranoids like you and me

Ah, privacy. That mythical beast we all chase in this digital jungle. You think incognito mode is enough? Honey, please. Your ISP knows what you had for breakfast, and they're judging. But fear not, my friend, for there's a solution for the truly paranoid: Whonix. Whonix

DevOps Paradox: OpenTelemetry meets Mobile

DevOps Paradox: OpenTelemetry meets Mobile

OpenTelemetry is transforming the landscape of mobile app observability, providing developers with powerful tools to monitor, understand, and optimize their applications. Embrace, with its open-source SDKs and commitment to community involvement, is at the forefront of this exciting evolution. This episode of DevOps Paradox features Austin Alexander from Embrace (https:

How to fix the Critical 9.9 CVE Linux Vulnerability in CUPS: A Step-by-Step Guide

How to fix the Critical 9.9 CVE Linux Vulnerability in CUPS: A Step-by-Step Guide

Oh No! Not My Printers! Exploiting CUPS on Linux: A How-to Guide (Just Kidding, Please Patch Your Systems) Remember those carefree days when the most terrifying thing about printers was running out of ink at 3 AM just before a big deadline? Yeah, me neither. But hold onto your coffee

Linux could be facing a critical RCE vulnerability, scoring 9.9 (CVE): Let's separate hype, security, facts, and developer drama

Linux could be facing a critical RCE vulnerability, scoring 9.9 (CVE): Let's separate hype, security, facts, and developer drama

The Linux community is abuzz with news of a potential Remote Code Execution (RCE) vulnerability, sending chills down the spines of sysadmins and prompting frantic security checks. But hold on to your penguins, because things are a bit more complicated than they appear. UPDATE 29-09-2024: How to fix the Critical