kubernete的kubelet在哪里创建服务环境变量?

时间:2015-06-17 21:10:13

标签: node.js docker service-discovery kubernetes

我正在创建一个kubernetes集群,其中我有几个服务。我知道基于https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#discovering-services我有两种选择。

  1. 使用由kubelet设置的环境变量。

  2. 使用skydns

  3. 我想在添加另一个依赖项之前先尝试使用环境变量。但是,我不确定每个服务的环境变量在哪里。在kubelet上执行envsudo env时,我没有找到它们。它们是否在某个容器和/或容器内?如果是这样,我必须将其他pod连接到那个pod以获取服务的环境变量吗?

    我在容器中有几个NodeJS服务,所以我想知道与每个服务交谈是否需要这个来获取ip: process.env('SERVICE_X_PUBLIC_IPV4')一旦我对环境变量进行了整理。

    不是那么重要,但相关,这一切如何在多个节点上工作?

1 个答案:

答案 0 :(得分:3)

给定服务的环境变量放在创建服务后启动的每个容器中。

例如,如果您创建了一个广告容器foo,然后又创建了一个服务bar,则该广告容器的容器将没有bar的任何环境变量。

如果你创建服务bar然后创建一个pod foo,那么pod的容器应该具有以下环境变量: BAR_PORT=tcp://10.167.240.1:80 BAR_SERVICE_HOST=10.167.240.1

您可以通过将终端附加到您的某个容器来测试这一点,如here所述。