我正在将 CoreOS 与 cloud-init 一起使用,我正在尝试为法兰绒卷曲。我有一个这样的单元文件:
[Unit]
Description=Run flannel
Documentation=https://github.com/coreos/flannel
Requires=etcd2.service
After=etcd2.service
[Service]
ExecStartPre=/usr/bin/curl -L -o /opt/bin/flannel-0.5.1-linux-amd64.tar.gz -z /opt/bin/flannel-0.5.1-linux-amd64.tar.gz https://github.com/coreos/flannel/releases/download/v0.5.1/flannel-0.5.1-linux-amd64.tar.gz
ExecStartPre=/usr/bin/tar -C /opt/bin -xzvf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz
ExecStartPre=/usr/bin/mv /opt/bin/flannel-0.5.1/flanneld /opt/bin/flanneld
ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1
ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz
ExecStart=/opt/bin/flanneld
当它为法兰绒卷曲时,我得到cannot resolve host 'github.com'
并卷曲退出,代码为 1。在 systemd 启动时是否存在无法使用 dns 的问题?
对于 CoreOS,您将需要:
和之间有区别
network.target
network-online.target
。network-online.target
是尝试在 中执行网络挂载时引入的内容/etc/fstab
,并且您的依赖需求更接近于此。使用它。在我的情况下,这个答案有效https://unix.stackexchange.com/questions/353179/why-isnt-my-systemd-service-waiting-for-the-network/356189#356189
你有两个选择
变体 1
等待网络和 dns 准备好
脚步:
systemd
模块(必需)变体 2
在失败时重新启动脚本并重试
脚步: