2015-06-18 2 views
1

Я пытаюсь запустить контейнер докеров с nginx на кластере кубернетов. Я использую обнаружение службы переменных окружения для всех моих других контейнеров, поэтому я хотел бы поддерживать его согласованность и не должен приводить что-то вроде skydns в микс только из-за этого. Возможно ли получить доступ к переменным окружения в nginx, чтобы я мог передать его proxy-pass службе kubernetes?Могут ли переменные среды доступа nginx.conf?

+0

[Этот вопрос о сервере] [1] должен содержать ответ на ваш вопрос. [1]: http://serverfault.com/questions/577370/how-can-i-use-environment-variables-in-nginx-conf –

+0

Это работает, но довольно Hacky, я видел это, но я надеюсь, что есть «кубернетовский способ» этого. –

ответ

0

Было немало проблем с выполнением хакерского HEREDOC, в том числе с наличием только одного сервисного обнаружения (не намного лучше жесткого кодирования). Таким образом, мое решение закончилось тем, что использовало confd для шаблона nginx и перезапускал nginx при изменении переменных среды. Вот ссылка на confd: https://github.com/kelseyhightower/confd

0

В спецификации вы можете определить переменную окружения, например.

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. Будет ли это работать на вас?

Приветствие,

Сатно

+0

Нет, я знаю, что я мог бы это сделать, он использует эту среду, которая может быть envariable в nginx, о которой мне интересно. –

0

Вы имеете в виду использовать значение набора вара окр таким образом, в конфигурационный файл для Nginx? Одна вещь, которую я делал в прошлом, - это иметь сценарий конфигурации run.sh, который запускается контейнером Docker, который использует переменную env для подстановки в файле шаблона для конфигурации nginx - это вы имели в виду?

+0

Это не на 100% ясно, что вы говорите, можете ли вы привести пример? Но чтобы ответить на ваш вопрос, да, я хочу использовать эти переменные среды в моей конфигурации nginx. –

1

Как насчет этого сценария оболочки, под которым работает контейнер Docker?

https://github.com/GoogleCloudPlatform/kubernetes/blob/295bd3768d016a545d4a60cbb81a4983c2a26968/cluster/addons/fluentd-elasticsearch/kibana-image/run_kibana_nginx.sh?

+0

Спасибо, что работает, любой шанс, что вы можете сконденсировать свои ответы в один ответ, так что это немного более организовано? –

0

Сохранение включенного конфигурационного файла в ConfigMap, смонтированном как том, также должно работать.

Возможно, для этого вам, возможно, потребуется изменить структуру конфигурационных файлов.

Смежные вопросы