Я пытаюсь запустить kubernetes на coreos. Я использую флот, setup-network-environment и kube-register для регистрации узлов. Тем не менее, в моем файле облако инициализации, где я пишу мои файлы Systemd единиц, файл подразделение kubelet будет не запускать это правильно:Почему мой системный блок не читает env-переменные должным образом?
ExecStart=/opt/bin/kubelet \
--address=0.0.0.0 --port=10250 \
--hostname_override=${DEFAULT_IPV4} \
--allow_privileged=true \
--logtostderr=true \
--healthz_bind_address=0.0.0.0
Вместо моего IP публики, ${DEFAULT_IPV4}
результатов в $default_ipv4
, который также не привести к ip. Я знаю, что --host-name-override
должен просто взять строку, и она работает, когда я запускаю эту строку из командной строки. Существуют и другие файлы модулей, где ${ENV_VAR}
отлично работает. Почему это для файла кубельного файла, он просто ломается?
EDIT 1
/и т.д./сети окружающая среда
LO_IPV4=127.0.0.1
ENS33_IPV4=192.168.195.242
DEFAULT_IPV4=192.168.195.242
ENS34_IPV4=172.22.22.238
EDIT 2
блок kubelet файл
- name: kube-kubelet.service
command: start
content: |
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=setup-network-environment.service
After=setup-network-environment.service
[Service]
EnvironmentFile=/etc/network-environment
ExecStartPre=/usr/bin/curl -L -o /opt/bin/kubelet -z /opt/bin/kubelet https://storage.googleapis.com/kubernetes-release/release/v0.18.2/bin/linux/amd64/kubelet
ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
# wait for kubernetes master to be up and ready
ExecStartPre=/opt/bin/wupiao 172.22.22.10 8080
ExecStart=/opt/bin/kubelet \
--address=0.0.0.0 \
--port=10250 \
--hostname_override=172.22.22.21 \
--api_servers=172.22.22.10:8080 \
--allow_privileged=true \
--logtostderr=true \
--healthz_bind_address=0.0.0.0 \
--healthz_port=10248
Restart=always
RestartSec=10
Где находится 'd'? Я использую среду по умолчанию/etc/network-environment из setup-network-environment, я упомянул, что использую ее. Я не работаю на цифровом океане, это на локальных виртуальных машинах и, наконец, на gce. –
Можете ли вы опубликовать текст облака? Кроме того, это поможет узнать содержимое/etc/network-environment после запуска установки-сети-среды. материал $ {d ..} исходит из аргументов шаблона. Мой шаблон разрешает --hostname_override = $ public_ip, я изменю ответ, чтобы содержать разрешенный текст. – Greg
Хорошо добавил/etc/network-environment –