Onde a frota do CoreOS'es armazena arquivos unitários enviados?

2

Os arquivos da unidade CoreOS são, na verdade, arquivos de unidade do systemd. Quando você envia um arquivo de unidade para a frota, ele é armazenado em algum registro. Quando você inicia o arquivo de unidade, o grupo transfere esse arquivo de unidade para um diretório /run/fleet/units na máquina, a unidade está programada para ser executada. Quando a unidade pára, o arquivo da unidade é removido da máquina.

A pergunta é: onde a frota armazena esses arquivos de unidade enviados? Eu pensei que há apenas etcd como um armazenamento de dados distribuído. Mas a inspeção etcd ls não mostra nada como arquivos unitários no armazenamento.

    
por Vladislav Rastrusny 21.11.2014 / 11:38

1 resposta

3

Oh .. Parece que eles estão armazenados nas chaves escondidas no etcd assim:

core-02 ~ # etcdctl get /_coreos.com/fleet/states/hello-fleet.service/7fd494f60e2844978072683ea374a7dd
{"loadState":"loaded","activeState":"active","subState":"running","machineState":{"ID":"7fd494f60e2844978072683ea374a7dd","PublicIP":"","Metadata":null,"Version":""},"unitHash":"e738189b45f4421e25cc0990da1c1e37ba0d40c6"}
core-02 ~ # etcdctl get /_coreos.com/fleet/job/hello-fleet.service/object
{"Name":"hello-fleet.service","UnitHash":[231,56,24,155,69,244,66,30,37,204,9,144,218,28,30,55,186,13,64,198]}
core-02 ~ # etcdctl get /_coreos.com/fleet/state/hello-fleet.service
{"loadState":"loaded","activeState":"active","subState":"running","machineState":{"ID":"7fd494f60e2844978072683ea374a7dd","PublicIP":"","Metadata":null,"Version":""},"unitHash":"e738189b45f4421e25cc0990da1c1e37ba0d40c6"}
core-02 ~ # etcdctl get /_coreos.com/fleet/unit/e738189b45f4421e25cc0990da1c1e37ba0d40c6
{"Raw":"[Service]\nExecStart=/usr/bin/bash -c \"while true; do echo 'Hello Fleet'; sleep 1; done\"\n"}
core-02 ~ #
    
por 21.11.2014 / 12:01

Tags