Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

493
Visualizações
¿Cómo puedo eliminar un elemento en los montajes de volumen de implementación con el comando kubectl Patch?

Tengo una implementación como esta:

 apiVersion: apps/v1 kind: Deployment spec: template: volumeMounts: - mountPath: /home name: john-webos-vol subPath: home - mountPath: /pkg name: john-vol readOnly: true subPath: school

Quiero cambiar la Deloyment con el comando de kubectl patch , por lo que tiene los siguientes montajes de volumen en el volumeMounts en PodTemplate lugar:

objetivo.yaml:

 apiVersion: apps/v1 kind: Deployment spec: template: volumeMounts: - mountPath: /home name: john-webos-vol subPath: home

Usé el siguiente comando, pero no funcionó.

 kubectl patch deployment sample --patch "$(cat target.yaml)"

¿Alguien puede darme algún consejo?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

no puedes hacer esto con kubectl patch . El parche que hiciste en tu problema se llama strategic merge patch . el parche no puede reemplazar cosas, en cambio con este parche solo puedes agregar cosas.

como si inicialmente tiene un container en su podspec pero necesita agregar otro container . puede usar el patch aquí para agregar otro container . pero si tiene dos container y necesita eliminar uno, no puede hacerlo con este tipo de parche.

si desea esto con el patch , debe usar retainKeys . Árbitro

déjame explicarte cómo puedes hacer esto de otra manera simple. supongamos que ha aplicado a continuación test.yaml con kubectl apply -f test.yaml

prueba.yaml

 apiVersion: apps/v1 kind: Deployment metadata: name: test spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - mountPath: /home name: john-webos-vol subPath: home - mountPath: /pkg name: john-vol readOnly: true subPath: school volumes: - name: john-webos-vol emptyDir: {} - name: john-vol emptyDir: {}

ahora necesitas actualizar este. y el target.yaml actualizado eliminará uno de volumen.

objetivo.yaml

 apiVersion: apps/v1 kind: Deployment metadata: name: test spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - mountPath: /pkg name: john-vol readOnly: true subPath: school volumes: - name: john-vol emptyDir: {}

solo puedes usar:

 kubectl apply -f target.yaml

este actualizará su implementación con una nueva configuración

over 4 years ago · Santiago Trujillo Relatório

0

Puede usar el parche JSON http://jsonpatch.com/

Eliminar montaje de volumen específico

 kubectl patch deployment <NAME> --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/volumeMounts/0"}]'

Reemplace los montajes de volumen con lo que necesita

 kubectl patch deployment <NAME> --type json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/volumeMounts", "value": [{"mountPath": "/home", "name": "john-webos-vol", "subPath": "home"}]}]'

Hoja de referencia de Kubectl para obtener más información: https://kubernetes.io/docs/reference/kubectl/cheatsheet/#patching-resources

over 4 years ago · Santiago Trujillo Relatório

0

Puede aprovechar el comando de aplicación , obteniendo la definición de implementación en formato JSON, modificando (en su caso eliminando) esta sección

 - mountPath: /pkg name: john-vol readOnly: true subPath: school

con sed o una utilidad similar y luego volver a aplicarla:

 kubectl get deployment <myDeployment> -n <myNamespace> | sed -z -s -E -b -e 's/REGEX_TO_MATCH_PART_OF_DEPLOYMENT_TO_REMOVE//g' | kubectl apply -f -
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda