我有一个通过Kubernetes部署的Kafka部署和服务。它的每个Pod都有其内部IP,并带有这样的命令
kubectl describe services broker --namespace=kafka | grep Endpoints | awk '{print $2}'
我可以全部获得:10.244.1.11:9092,10.244.2.15:9092,10.244.2.16:9092
在我的Kafka之后,我还与Kubernetes一起部署了另一个服务,该服务需要该命令的结果作为环境变量KAFKA_BOOTSTRAP_SERVERS。
如何在服务kubernetes YML文件中将该命令的结果放入环境变量?
答案 0 :(得分:1)
您应该使用python开发客户端程序,或者使用安装在每个容器中的服务帐户去go,访问api服务器端点并检索Kafka端点。解析Json文件输出,并获取实际的代理IP地址
答案 1 :(得分:0)
Kubernetes允许您使用环境变量。 Here is the documentation。
您还可以使用HELM来使用模板,这些模板还允许使用环境变量。
在您的情况下,可以在如下的env变量中获得结果:
SOME_ENV_VARIABLE = $( command... )