La respuesta canónica de cambiar / leer / manipular diferentes entornos de kubernetes (también conocidos como contextos de kubernetes) es, como mencionó Mark, usar kubectl config
, vea a continuación:
$ kubectl config
Modify kubeconfig files using subcommands like "kubectl config set current-context my-context"
Available Commands:
current-context Displays the current-context
delete-cluster Delete the specified cluster from the kubeconfig
delete-context Delete the specified context from the kubeconfig
get-clusters Display clusters defined in the kubeconfig
get-contexts Describe one or many contexts
rename-context Renames a context from the kubeconfig file.
set Sets an individual value in a kubeconfig file
set-cluster Sets a cluster entry in kubeconfig
set-context Sets a context entry in kubeconfig
set-credentials Sets a user entry in kubeconfig
unset Unsets an individual value in a kubeconfig file
use-context Sets the current-context in a kubeconfig file
view Display merged kubeconfig settings or a specified kubeconfig file
Usage:
kubectl config SUBCOMMAND [options]
Detrás de la escena, hay un ~/.kube/config
archivo YAML que almacena todos los contextos disponibles con sus correspondientes credenciales y puntos finales para cada contexto.
Kubectl listo para usar no facilita la administración de diferentes contextos de kubernetes como probablemente ya sepa. En lugar de ejecutar su propio script para gestionar todo eso, un mejor enfoque es utilizar una herramienta madura llamadakubectx
, creada por un empleado de Google llamado "Ahmet Alp Balkan", que está en el equipo de experiencias de desarrollador de Kubernetes / Google Cloud Platform que crea herramientas como esta. Lo recomiendo altamente.
https://github.com/ahmetb/kubectx
$ kctx --help
USAGE:
kubectx : list the contexts
kubectx <NAME> : switch to context <NAME>
kubectx - : switch to the previous context
kubectx <NEW_NAME>=<NAME> : rename context <NAME> to <NEW_NAME>
kubectx <NEW_NAME>=. : rename current-context to <NEW_NAME>
kubectx -d <NAME> [<NAME...>] : delete context <NAME> ('.' for current-context)
(this command won't delete the user/cluster entry
that is used by the context)
kubectx -h,--help : show this message