我正在创建一个kubernetes集群,其中我有几个服务。我知道基于https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#discovering-services我有两种选择。
使用由kubelet设置的环境变量。
使用skydns
我想在添加另一个依赖项之前先尝试使用环境变量。但是,我不确定每个服务的环境变量在哪里。在kubelet上执行env
或sudo env
时,我没有找到它们。它们是否在某个容器和/或容器内?如果是这样,我必须将其他pod连接到那个pod以获取服务的环境变量吗?
我在容器中有几个NodeJS服务,所以我想知道与每个服务交谈是否需要这个来获取ip:
process.env('SERVICE_X_PUBLIC_IPV4')
一旦我对环境变量进行了整理。
不是那么重要,但相关,这一切如何在多个节点上工作?
答案 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所述。