1

core-os を使用し、cloud-config ファイルで構成しています。アプリケーションに etcd サービスを使用する必要があります。

これは、cloud-config ファイルの関連部分です。

- name: etcd.service
  command: start
  content: |
    [Unit]
    Description=etcd
    Requires=setup-network-environment.service
    After=setup-network-environment.service

    [Service]
    EnvironmentFile=/etc/network-environment
    User=etcd
    PermissionsStartOnly=true
    ExecStart=/usr/bin/etcd \
    --name ${DEFAULT_IPV4} \
    --addr ${DEFAULT_IPV4}:4001 \
    --bind-addr 0.0.0.0 \
    --discovery https://discovery.etcd.io/SOMEKEY \
    --data-dir /var/lib/etcd \
    --http-read-timeout 86400 \
    --peer-addr ${DEFAULT_IPV4}:7001 \
    --snapshot true
    Restart=always
    RestartSec=10s

etcd のバージョンを更新する方法がわかりません。

4

3 に答える 3

1

etcd2 は既に coreos にインストールされていることがわかります。現在、etcd と一緒に coreos-alpha 653 リリースで出荷されています。クラウド構成で変更するには、変更するだけです

ExecStart=/usr/bin/etcd

ExecStart=/usr/bin/etcd2

etcd2 で廃止されたいくつかのフラグを削除します。

于 2015-04-22T15:31:01.853 に答える
0

cloud-config パーサーには、etcd2 と新しい構成パラメーターのサポートが組み込まれています: https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/#etcd2

例:

#cloud-config

coreos:
  etcd2:
    # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
    discovery: https://discovery.etcd.io/<token>
    # multi-region and multi-cloud deployments need to use $public_ipv4
    advertise-client-urls: http://$public_ipv4:2379
    initial-advertise-peer-urls: http://$private_ipv4:2380
    # listen on both the official ports and the legacy ports
    # legacy ports can be omitted if your application doesn't depend on them
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
    listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
于 2015-04-23T17:07:50.883 に答える
0

テンプレートジェネレーターがあり、単一の環境変数を設定することで、etcd と etcd2 を切り替えるように指示できます。私が行ったことの 1 つは、etcd2.service 名または etcd.service を使用することでした (etcd2 構成を etcd ユニット セクションに入れただけではありません)。それはうまくいくかもしれませんが、ファイル内のすべての etcd.service 参照を etcd2.service に変更することを考えるかもしれません。とにかく、これは etcd2 の ExecStart セクションです。

    ExecStart=/usr/bin/etcd2 \
    --name ${d['etcd']['name']} \
    --advertise-client-urls ${d['etcd']['advertise-client-urls']} \
    --discovery ${d['etcd']['discovery']} \
    --data-dir /var/lib/etcd \
    --initial-advertise-peer-urls ${d['etcd']['initial-advertise-peer-urls']} \
    --listen-client-urls ${d['etcd']['listen-client-urls']} \
    --listen-peer-urls ${d['etcd']['listen-peer-urls']}

d['etcd'] の環境変数は次のとおりです。

"etcd": {
    "mver":"etcd2.service",
    "discovery":"http://discovery.etcd.io/SOMEKEY",
    "addr":"$private_ipv4:4001",
    "name":"$private_ipv4",
    "peer-addr":"$private_ipv4:7001",
    "advertise-client-urls":"http://$private_ipv4:2379",
    "initial-advertise-peer-urls":"http://$private_ipv4:2380",
    "listen-client-urls":"http://0.0.0.0:2379,http://0.0.0.0:4001",
    "listen-peer-urls":"http://$private_ipv4:2380,http://$private_ipv4:7001"
}

$public_ipv4 がこれらの変数の 1 つに必要であるとどこかで読んだことを覚えています。私の環境はデジタルオーシャンです。必ずcoreos-alphaを使用してください(少なくとも、これを書いている時点ではまだ必要だと思います)。

于 2015-04-22T14:38:55.700 に答える