我正嘗試在kubernetes集羣上運行帶有nginx的docker容器。我爲所有其他容器使用了環境變量服務發現,所以我想保持它的一致性,而不必因爲這個而將諸如skydns之類的東西帶入混合。是否有可能訪問nginx中的環境變量,以便我可以告訴它代理傳遞給kubernetes服務?nginx.conf可以訪問環境變量嗎?
回答
做了hacky HEREDOC的問題很多,包括只有一次服務發現(沒有比硬編碼好得多)。所以我的解決方案最終使用confd來模板nginx,並在環境變量發生變化時重新啓動nginx。這裏是指向confd的鏈接:https://github.com/kelseyhightower/confd
在規範中,您可以定義一個環境變量,例如
spec:
containers:
- name: kibana-logging
image: gcr.io/google_containers/kibana:1.3
livenessProbe:
name: kibana-liveness
httpGet:
path:/
port: 5601
initialDelaySeconds: 30
timeoutSeconds: 5
env:
- name: "ELASTICSEARCH_URL"
value: "http://elasticsearch-logging:9200"
ports:
- containerPort: 5601
name: kibana-port
protocol: TCP
這將導致環境變量ELASTICSEARCH_URL被設置爲http://elasticsearch-logging:9200。這會爲你工作嗎?
乾杯,
薩特南
不,我知道我可以做到這一點,它使用的是我在想的nginx中可以使用的環境。 –
你的意思是在nginx的配置文件使用的環境變量設置的值以這種方式?我過去做過的一件事就是擁有一個由Docker容器運行的run.sh配置腳本,該腳本使用env變量在模板文件中爲nginx配置生成變電站 - 是嗎?
這不是100%清楚你在說什麼,你能舉個例子嗎?但是要回答你的問題,是的,我希望在我的nginx配置中使用這些環境變量。 –
下面的shell腳本是由Docker容器運行的嗎?
謝謝,這確實有效,你可以將你的答案壓縮到一個單一的答案,所以這是一個更有組織的一點嗎? –
將ConfigMap中包含的配置文件保存爲卷也應該工作。
雖然您可能需要更改配置文件的結構。
- 1. 有些環境變量可以訪問,有些則不可以?
- 2. catalina.bat可以更改環境變量嗎?
- 3. 環境變量訪問AWS
- 4. 訪問環境變量
- 5. 我可以從我的源代碼訪問Bitbucket Pipelines環境變量嗎?
- 6. 用戶可以訪問$ _SESSION變量嗎?
- 7. Coffeescript可以訪問SASS變量嗎?
- 8. 從java servlet訪問環境變量
- 9. 訪問用戶環境變量
- 10. 從javascript訪問Apache環境變量
- 11. 從Spark Worker訪問環境變量
- 12. Yii框架訪問環境變量
- 13. Linux MAKEFILE訪問環境變量
- 14. Ansible - 訪問本地環境變量
- 15. Cygwin無法訪問環境變量
- 16. jenkins中訪問環境變量
- 17. Jenkinsfile訪問現有環境變量
- 18. 從Foxx訪問環境變量
- 19. 通過webistrano訪問環境變量
- 20. 的log4j - 訪問環境變量
- 21. 訪問閃存中的環境變量
- 22. Jenkins - 如何訪問BUILD_NUMBER環境變量
- 23. 在Java中訪問shell環境變量
- 24. 如何從winrt訪問環境變量
- 25. Spring:從AbstractBeanDefinitionParser訪問環境變量
- 26. Scala:Eclipse在Ubuntu中訪問環境變量
- 27. 如何訪問Anaconda環境變量?
- 28. 訪問package.json中的環境變量
- 29. Makefile無法訪問環境變量
- 30. Log4j - 在Windows上訪問環境變量
[此服務器默認問題] [1]應該包含您的問題的答案。 [1]:http://serverfault.com/questions/577370/how-can-i-use-environment-variables-in-nginx-conf –
這工作,但相當哈克,我沒看到那,但我希望有這樣做的「kubernetes方式」。 –