我希望能够在将其发送到集群之前在本地测试我的 docker 应用程序。我想为此使用 mini Kube。同时,我不想使用多个 kube 配置文件来为云环境和本地计算机定义 env 变量,而是想在本地运行时覆盖一些 env 变量。我可以看到你可以使用 docker compose 做类似的事情:
docker-compose up -f docker-compose.yml -f docker-compose.e2e.yml.
第二个文件将仅具有覆盖值。是的,有两个文件,但我发现它很干净。
有没有办法用 Kube/minikube 做类似的事情?或者甚至更好的东西???
最佳答案
我认为您是在问如何根据 Pod 部署到的环境将不同的环境值传递到 Pod 中。实现此目的的一种模式是使用 helm 进行部署。然后,您可以使用 kubernetes 描述符的模板化版本进行部署。您还有一个values.yaml 文件,其中包含要注入(inject)描述符的值。您可以switch and overlay values.yaml files在安装时控制为给定安装注入(inject)哪些值。
如果您询问如何切换 kubectl
命令是针对本地还是云运行,而无需不断切换 kubeconfig 文件,那么您可以 add both contexts to your kubeconfig并使用 kubectl context 在它们之间切换,如 @ Ijaz Khan建议
关于docker - kubernetes 覆盖环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52892766/