Pide tu presupuesto ya!

Una guía para principiantes sobre Kubernetes Kustomize

Creación de una implementación personalizada

El desarrollo se vuelve significativamente más eficiente cuando no tienes que repetirte. La buena noticia es que Kustomize le garantiza que solo administrará las configuraciones necesarias una vez y las adaptará sin problemas a diferentes entornos.

En este ejemplo, implementará un Servidor HTTP Apache y cree un servicio para exponer el servidor en su clúster.

Para crear una implementación personalizada, lleve a cabo lo siguiente:

1. Crear (mkdir) y navegar (cd) en un directorio de trabajo llamado kustomize (arbitrario). Estos comandos no tienen salida pero le preparan un espacio de trabajo.

mkdir kustomize
cd kustomize

2. A continuación, cree un directorio llamado base en el directorio de su espacio de trabajo (~/personalizar) para que sirva como base para sus configuraciones de Kubernetes.

Este base El directorio contendrá las configuraciones esenciales e inalteradas que forman el punto de partida para su implementación.

3. Crea un archivo llamado httpd-deploy.yaml con su editor preferido, como Vim, complete la siguiente configuración, guarde el archivo y cierre el editor.

Esta configuración define una implementación para el servidor HTTP Apache, indicando a Kubernetes que mantenga dos réplicas de pods que ejecutan la imagen especificada (httpd).

apiVersion: apps/v1
# Specifies a Kubernetes deployment object.
kind: Deployment 
metadata:
  labels:
    # Label the application as "httpd".
    app: httpd
  name: httpd
spec:
  # The two instances of the Apache HTTP Server should be created.
  replicas: 2 
  selector:
    matchLabels:
      # Select pods with the label 'app: httpd'.
      app: httpd
  template:
    metadata:
      labels:
        # Label the application inside the pod as "httpd".
        app: httpd
    spec:
      containers:
      # Specifies the name of the official Apache HTTP Server image.
      - image: httpd
        # Specifies the name of the Apache HTTP Server image container.
        name: httpd

4. Ahora, crea otro archivo llamado httpd-svc.yaml, agregue la configuración a continuación, guarde el archivo y cierre el editor.

Esta configuración crea un servicio llamado httpd-service de tipo ClusterIPdirigiendo el tráfico a los pods etiquetados con app: httpd en port: 80. Esta configuración permite que otros componentes dentro de su clúster de Kubernetes accedan a los pods del servidor Apache HTTP a través del servicio definido.

apiVersion: v1
# Specifies a Kubernetes service object.
kind: Service
metadata:
  # The name of the service
  name: httpd-service
spec:
  # Specifies that this service is of type ClusterIP
  type: ClusterIP
  selector:
    # Select the pods with the label 'app: httpd'
    app: httpd
  ports:
    - protocol: TCP
      # The port that the service exposes
      port: 80
      # The target port on the container to send traffic to
      targetPort: 80

5. Regrese al directorio de su espacio de trabajo (~/personalizar).

6. A continuación, cree otro archivo llamado personalización.yamlagregue la configuración a continuación, guarde el archivo y cierre el editor.

Kustomize busca un archivo llamado personalización.yaml (o personalización.yml) de forma predeterminada para comprender cómo ensamblar y aplicar sus recursos de Kubernetes. Este archivo es el ancla de su configuración y le indica a Kustomize qué recursos incluir, cómo modificarlos y dónde implementarlos.

La siguiente configuración funciona de la siguiente manera:

  • Describe el proceso de instrucción a Kustomize sobre cómo ensamblar y personalizar los recursos de Kubernetes.
  • Le indica a Kustomize que use sus archivos de configuración base (httpd-deployment.yaml y httpd-svc.yaml) en el ./base/ directorio.
  • Luego, Kustomize puede aplicar superposiciones, parches u otras personalizaciones especificadas en la estructura del directorio.
  • Crea el conjunto final personalizado de manifiestos de Kubernetes para su implementación.
apiVersion: kustomize.config.k8s.io/v1beta1
# Specify the API version for the Kustomization resource.
kind: Kustomization

resources:
# Specify the relative paths to the base configuration files.
- ./base/httpd-deployment.yaml
- ./base/httpd-svc.yaml

7. Con las configuraciones establecidas, ejecute lo siguiente kubectl comando para realizar lo siguiente:

  • Deje que Kustomize lea el kustomization.yaml y procese las configuraciones según las instrucciones proporcionadas.
  • Genere el conjunto final de manifiestos de Kubernetes.

Este comando garantiza que estos manifiestos se apliquen a su clúster de Kubernetes, lo que dará como resultado la creación o actualización de los recursos especificados.

Creando una implementación y un servicio con Kustomize

💡 Kustomize está integrado en Kubernetes desde la versión 1.14 en adelante y no requiere una instalación por separado cuando se usa Kubernetes 1.14 o posterior. Kustomize funciona perfectamente con el kubectl herramienta de línea de comandos, que le permite aprovechar las funciones de Kustomize directamente a través de kubectl comandos.

8. Por último, ejecute todos los comandos siguientes para confirmar que se hayan creado los objetos de implementación y servicio.

# Check the status of deployments
kubectl get deployment

# List all pods
kubectl get pods

# Display information about services
kubectl get service

Si todo va bien, verá un resultado similar al siguiente.

Verificación de la implementación, el pod y el servicio
Verificación de la implementación, el pod y el servicio
Written by

Leave a comment