1

現在、systemd を使用してローカル バイナリで Etcd を実行しています。rkt を使用して etcd を実行したいのですが、まだ systemd を使用しているため、バイナリ サービスを使用してバイナリを「手動で」ダウンロードする必要はありません。

# /etc/systemd/system/etcd2.service
[Unit]
After=binaries.service
Requires=binaries.service

[Service]
User=core
Type=notify
EnvironmentFile=/home/core/environment
ExecStart=/opt/bin/etcd
Restart=always

LimitNOFILE=40000
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

みたいなことをしたい。これは正しいですか?不足しているものはありますか?

# /etc/systemd/system/etcd2.service
[Unit]
# Wait for networking
Requires=network-online.target
After=network-online.target

[Service]
User=core
Type=notify
EnvironmentFile=/home/core/environment
ExecStart==/usr/bin/rkt run --inherit-env --port=http:2380  --port=http:2379 quay.io/coreos/etcd:v2.3.3
Restart=always

LimitNOFILE=40000
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

また、stout/stderr へのロギングに関して、ロケットで etcd を実行するといくつかの問題があることもわかりました。このことをどのようにデバッグすれば、何が起こっているのかがわかります。ロケットいじり初日!ありがとう!

私が得ているエラー

Sep 21 18:08:04 master systemd[1]: etcd2.service: Unit entered failed state.
Sep 21 18:08:04 master systemd[1]: etcd2.service: Failed with result 'exit-code'.
Sep 21 18:08:04 master systemd[1]: etcd2.service: Service hold-off time over, scheduling restart.
Sep 21 18:08:04 master systemd[1]: Stopped etcd2.service.
Sep 21 18:08:04 master systemd[1]: etcd2.service: Start request repeated too quickly.
Sep 21 18:08:04 master systemd[1]: Failed to start etcd2.service.
4

1 に答える 1

1

CoreOS を実行している場合は、まさにこれを行う「etcd-wrapper」スクリプトと「etcd-wrapper.service」systemd ユニットがあります (rkt コンテナーから etcd を実行します)。

執筆時点では、ラッパーとユニット ファイルは CoreOS ベータ版 (1153.4.0) とアルファ版 (1164.1.0) でのみ出荷されています。

別のバージョンを実行している場合、または CoreOS をまったく実行していない場合は、https ://github.com/coreos/coreos-overlay/tree/master/app-admin/etcd-wrapper/ から直接スクリプトを入手できます。ファイル

ラッパー スクリプトはまだアルファ版またはベータ版の状態ですが、これらは出発点として適しています。

于 2016-09-21T19:31:23.500 に答える