Tenemos un conjunto de kubernetes yamls que es administrado por kustomize y se implementarán en diferentes clústeres. Cada clúster es ligeramente diferente, lo que significa que cada entorno tendrá un subdirectorio ( environ/<envname> ) que incluye alguna sobrescritura de personalización especial.
Implementaremos manualmente la nueva versión en diferentes entornos mediante el comando kubeclt apply -k environ/env . Pero a veces hacemos cosas estúpidas como esta: kubectl apply -k environ/env1 al clúster env2 . Entonces, ¿hay algún método para dejar de kubectl apply a un entorno incorrecto?
Esta es una respuesta wiki de la comunidad. Siéntete libre de expandirlo.
Si sabe que cometió un error y desea cancelar el comando de inmediato, existen algunas opciones para usted:
$ kill -9 $! eliminará el proceso más reciente ejecutado por el comando ( $! representa su ID de proceso).
Suspenda el proceso actual presionando Ctrl+z y luego elimínelo usando kill -9 %% o kill -9 %+ . Se pueden encontrar más detalles sobre este enfoque aquí .
EDITAR:
Incluyendo la solución propuesta por VASャ de los comentarios:
Usaría scripts de shell y diferentes configuraciones para cada clúster, así:
deploy-cluster1.shdonde tendríakubectl --kubeconfig .kube/cluster1 apply -k environ/cluster1o incluso más corto:deploy.sh env1deploy.shcontiene:kubectl --kubeconfig .kube/$1 apply -k environ/$1
Se pueden encontrar más detalles sobre ese enfoque aquí .
Recientemente obtuve una nueva solución aquí.
direnv que puede cambiar env después de cambiar a diferentes directorios, esto me obliga a cambiar el KUBECONFIG . Siga Dominando el archivo KUBECONFIG para obtener más detalles.