kubernete的kubelet在哪里创建服务环境变量?
Where does kubernete's kubelet create service environment variables?
我正在创建一个 kubernetes 集群,其中有几个服务。我知道基于 https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#discovering-services 我有两个选择。
使用kubelet设置的环境变量
使用 skydns
我想先尝试使用环境变量,然后再将另一个依赖项添加到组合中。但是,我不确定每个服务的环境变量在哪里。我在 kubelet 上执行 env
或 sudo env
时没有找到它们。它们在某个容器 and/or pod 中吗?如果是这样,我是否必须 link 另一个 pods 到那个以获得服务的环境变量?
我在容器中有几个 NodeJS 服务,所以我想知道与每个服务对话是否需要这个来获取 ip:
process.env('SERVICE_X_PUBLIC_IPV4')
一旦我解决了环境变量问题。
不那么重要,但相关,这一切如何跨多个节点工作?
给定服务的环境变量放在创建服务后启动的每个容器中。
例如,如果您创建一个 pod foo
,然后再创建一个服务 bar
,该 pod 的容器将没有 bar
.[=17= 的任何环境变量]
如果您改为创建服务 bar
,然后创建 pod foo
,则 pod 的容器应该具有类似于以下内容的环境变量:
BAR_PORT=tcp://10.167.240.1:80
BAR_SERVICE_HOST=10.167.240.1
您可以通过将终端连接到您的容器之一来对此进行测试,如 here 所述。
我正在创建一个 kubernetes 集群,其中有几个服务。我知道基于 https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#discovering-services 我有两个选择。
使用kubelet设置的环境变量
使用 skydns
我想先尝试使用环境变量,然后再将另一个依赖项添加到组合中。但是,我不确定每个服务的环境变量在哪里。我在 kubelet 上执行 env
或 sudo env
时没有找到它们。它们在某个容器 and/or pod 中吗?如果是这样,我是否必须 link 另一个 pods 到那个以获得服务的环境变量?
我在容器中有几个 NodeJS 服务,所以我想知道与每个服务对话是否需要这个来获取 ip:
process.env('SERVICE_X_PUBLIC_IPV4')
一旦我解决了环境变量问题。
不那么重要,但相关,这一切如何跨多个节点工作?
给定服务的环境变量放在创建服务后启动的每个容器中。
例如,如果您创建一个 pod foo
,然后再创建一个服务 bar
,该 pod 的容器将没有 bar
.[=17= 的任何环境变量]
如果您改为创建服务 bar
,然后创建 pod foo
,则 pod 的容器应该具有类似于以下内容的环境变量:
BAR_PORT=tcp://10.167.240.1:80
BAR_SERVICE_HOST=10.167.240.1
您可以通过将终端连接到您的容器之一来对此进行测试,如 here 所述。