Cómo validar el manifiesto de Kubernetes
Verificar que el código funcione correctamente puede ser la diferencia entre implementar algo confiable para el cliente o derribar el entorno y costarle dinero a la organización.
Se necesitan desarrolladores Pruebe su código de Kubernetes para una correcta colocación. Los equipos deben confirmar YAMAL-para este propósito, el código formateado en Kubernetes se convierte en un manifiesto. Los equipos de desarrollo deben comprender qué es un manifiesto, sus posibles problemas de validación y cómo validar un manifiesto de Kubernetes.
¿Qué es el manifiesto de Kubernetes?
Cuando los equipos de software implementan una aplicación en Kubernetes, esa aplicación debe estar lista contenedorizado y ejecutar en el tiempo de ejecución del contenedor. Una vez que esto suceda, los desarrolladores deberían poder determinar los diversos aspectos de la implementación de esa aplicación dentro del clúster. Para lograr esto, se refieren a los manifiestos de Kubernetes.
El manifiesto de Kubernetes es una forma en formato YAML de interactuar con Kubernetes API. Define el estado deseado de la aplicación definiendo aspectos como:
- qué especificación usar;
- qué imagen de contenedor usar;
- puertos en los que funcionará el programa; y
- secretos o variables de entorno para pasar a la aplicación.
Los desarrolladores definen las cualidades anteriores a través de pares clave/valor a través de mapas y listas de Kubernetes. A continuación se muestra un ejemplo de un manifiesto de Kubernetes procedente de implementaciones de Kubernetes página:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
El manifiesto de Kubernetes define cómo funciona toda la aplicación. Esto garantiza que Kubernetes implemente la aplicación correctamente.
Posibles problemas de validación
Antes de intentar validar el manifiesto de Kubernetes, el equipo de desarrollo debe considerar algunos problemas que pueden ocurrir durante este proceso.
Los problemas más grandes y comunes con el manifiesto de Kubernetes son:
- formato
- la API utilizada
- campos obligatorios
Los desarrolladores se refieren al formato Kubernetes como el formato del lenguaje de programación Python, porque estilo YAML. Este enfoque tiene sus dificultades. En otros estilos de formato, por ejemplo JSON, el inicio/fin del bloque está dentro de los paréntesis. YAML usa sangrías en su lugar. Los desarrolladores no pueden usar la tecla Tab al ingresar el manifiesto de Kubernetes. Deberían usar espacios en su lugar. El código de muestra para el manifiesto de Kubernetes tiene dos párrafos después etiquetas: y antes software: nginx.
Otro problema potencial es con la API utilizada para la especificación de Kubernetes. La primera línea de código anterior se lee apiVersión:. Esto le dice a Kubernetes qué API usar. Hay un conjunto básico de API con funcionalidad nativa de Kubernetes. Esto incluye implementaciones, pods y ConfigMaps. También hay grupos de API con nombre a los que van todas las nuevas API. Además, las versiones beta de API pueden tener su propia versión única de API. Valide la API correcta para la especificación de recursos correcta o errores de riesgo.
Los campos obligatorios también pueden causar problemas con el manifiesto de Kubernetes. Algunos campos son obligatorios y el código no funcionará sin ellos. Si no se incluye un determinado campo obligatorio, el manifiesto no funcionará correctamente.
Cómo validar el manifiesto de Kubernetes
Varias herramientas pueden validar el manifiesto de Kubernetes, todas las cuales están disponibles en GitHub. Algunos son los siguientes:
- Cubeval
- Config-lint
- Puntos de cubo
Si bien las herramientas de terceros son útiles, Kubernetes tiene una forma nativa de validar manifiestos. –ejercicio en seco bandera en kubectl. Esta opción ya está disponible para los desarrolladores que utilizan Kubernetes.
Por ejemplo, usando –ejercicio en seco El comando produce una salida similar a la Figura 1.
Para demostrar cómo funcionan las herramientas de validación de manifiestos, podemos instalar y ejecutar Kubeval.
Kubeval puede validar uno o más manifiestos de Kubernetes.
Primero, instale la aplicación Kubeval. Kubeval tiene muchas instalaciones opciones. Para esta demostración estoy usando Apple macOS. La instalación se realiza a través de la siguiente biblioteca de instalación del paquete Homebrew:
brew tap instrumenta/instrumenta brew install kubeval
Entonces, los desarrolladores pueden ponerse a trabajar cuboval comando contra cualquier manifiesto de Kubernetes. La Figura 2 muestra una transición exitosa.

La Figura 3 muestra una transición fallida.

El error es porque cambié la salida. aplicaciones/v1 por programas/etc. en el manifiesto para depurar.
¿Qué pasa con la política como código?
Los desarrolladores pueden usar política como código creando un conjunto de reglas y expectativas. Por ejemplo, una política como código puede ser útil cuando un equipo usa la versión más reciente de una imagen de Docker, pero el líder del equipo quiere asegurarse de usar una versión específica en su lugar. Un líder de equipo puede establecer una política que diga “no permitir que nadie ejecute la última versión de esta imagen de Docker”. Luego, si alguien lo intenta, la política se activará y la implementación fallará.
Una herramienta que los desarrolladores pueden usar para implementar políticas como código es Checkov. realizar análisis de código estático a través de una serie de políticas.