Saltar al contenido

¿Cómo pasar la variable de entorno en la implementación de kubectl?

Ya no necesitas investigar más en otras páginas ya que has llegado al sitio perfecto, contamos con la solución que necesitas y sin problemas.

Solución:

Usé envsubst (https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html) para esto. Crear un deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: $NAME
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Entonces:

export NAME=my-test-nginx
envsubst < deployment.yaml | kubectl apply -f -

No estoy seguro de qué sistema operativo estás usando para ejecutar esto. En macOS, envsubst instalado como:

brew install gettext
brew link --force gettext 

Esta no es una forma correcta de usar la implementación, no puede proporcionar la mitad de detalles en los comandos yaml y la mitad en los comandos kubectl. Si desea pasar variables de entorno en su implementación, debe agregar esos detalles en el deployment spec.template.spec:

Debe agregar el siguiente bloque a su deployment.yaml

spec:
  containers:
  - env:
    - name: var1
      value: val1

Esto exportará sus variables de entorno dentro del contenedor.

La otra forma de exportar la variable de entorno es usar kubectl run (no es recomendable) ya que se depreciará muy pronto. Puede utilizar el siguiente comando:

 kubectl run nginx --image=nginx --restart=Always --replicas=1 --env=var1=val1

El comando anterior creará un nginx de implementación con la réplica 1 y la variable de entorno var1=val1

Siga los pasos a continuación

crear test-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: MYAPP
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

usando el comando sed puede actualizar el nombre de la implementación en el momento de la implementación

sed -e 's|MYAPP|my-nginx|g' test-deploy.yaml | kubectl apply -f -

Sección de Reseñas y Valoraciones

Si posees alguna duda y disposición de innovar nuestro sección puedes dejar una crítica y con mucho placer lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *