# fleet
**Repository Path**: mirrors/fleet
## Basic Information
- **Project Name**: fleet
- **Description**: fleet 绑定了 systemd 和 etcd 到一个分布式 init 系统,可以认为是 systemd 的扩展,但是并不是机器级别的,而是集群级别的
- **Primary Language**: Shell
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/fleet
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-05-26
- **Last Updated**: 2026-01-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 

Deprecation warning 

fleet is no longer developed or maintained by CoreOS. After February 1, 2018, a fleet container image will continue to be available from the CoreOS Quay registry, but will not be shipped as part of Container Linux. CoreOS instead [recommends Kubernetes for all clustering needs](https://coreos.com/blog/migrating-from-fleet-to-kubernetes.html).
The project exists here for historical reference. If you are interested in the future of the project and taking over stewardship, please contact fleet@coreos.com
# fleet - a distributed init system
[](https://travis-ci.org/coreos/fleet)
[](https://semaphoreci.com/coreos/fleet)
fleet ties together [systemd][coreos-systemd] and [etcd][etcd] into a simple distributed init system. Think of it as an extension of systemd that operates at the cluster level instead of the machine level.
**This project is quite low-level, and is designed as a foundation for higher order orchestration.** fleet is a cluster-wide elaboration on systemd units, and is not a container manager or orchestration system. fleet supports basic scheduling of systemd units across nodes in a cluster. Those looking for more complex scheduling requirements or a first-class container orchestration system should check out [Kubernetes][kubernetes]. The [fleet and kubernetes comparison table][fleet-vs-k8s] has more information about the two systems.
## Current status
The fleet project is [no longer maintained](#deprecation-warning).
As of v1.0.0, fleet has seen production use for some time and is largely considered stable.
However, there are [various known and unresolved issues](https://github.com/coreos/fleet/issues), including [scalability limitations][fleet-scaling] with its architecture.
As such, it is not recommended to run fleet clusters larger than 100 nodes or with more than 1000 services.
## Using fleet
Launching a unit with fleet is as simple as running `fleetctl start`:
```sh
$ fleetctl start examples/hello.service
Unit hello.service launched on 113f16a7.../172.17.8.103
```
The `fleetctl start` command waits for the unit to get scheduled and actually start somewhere in the cluster.
`fleetctl list-unit-files` tells you the desired state of your units and where they are currently scheduled:
```sh
$ fleetctl list-unit-files
UNIT HASH DSTATE STATE TMACHINE
hello.service e55c0ae launched launched 113f16a7.../172.17.8.103
```
`fleetctl list-units` exposes the systemd state for each unit in your fleet cluster:
```sh
$ fleetctl list-units
UNIT MACHINE ACTIVE SUB
hello.service 113f16a7.../172.17.8.103 active running
```
## Supported Deployment Patterns
fleet is not intended to be an all-purpose orchestration system, and as such supports only a few simple deployment patterns:
* Deploy a single unit anywhere on the cluster
* Deploy a unit globally everywhere in the cluster
* Automatic rescheduling of units on machine failure
* Ensure that units are deployed together on the same machine
* Forbid specific units from colocation on the same machine (anti-affinity)
* Deploy units to machines only with specific metadata
These patterns are all defined using [custom systemd unit options][unit-files].
## Getting Started
Before you can deploy units, fleet must be [deployed and configured][deploy-and-configure] on each host in your cluster. (If you are running CoreOS, fleet is already installed.)
After you have machines configured (check `fleetctl list-machines`), get to work with the [client][using-the-client.md].
### Building
fleet must be built with Go 1.5+ on a Linux machine. Simply run `./build` and then copy the binaries out of `bin/` directory onto each of your machines. The tests can similarly be run by simply invoking `./test`.
If you're on a machine without Go 1.5+ but you have Docker installed, run `./build-docker` to compile the binaries instead.
## Project Details
### API
The fleet API uses JSON over HTTP to manage units in a fleet cluster.
See the [API documentation][api-doc] for more information.
### Release Notes
See the [releases tab][releases] for more information on each release.
### License
fleet is released under the Apache 2.0 license. See the [LICENSE][license] file for details.
Specific components of fleet use code derivative from software distributed under other licenses; in those cases the appropriate licenses are stipulated alongside the code.
[api-doc]: Documentation/api-v1.md
[contributing]: CONTRIBUTING.md
[coreos-systemd]: https://github.com/coreos/docs/blob/master/os/getting-started-with-systemd.md
[deploy-and-configure]: Documentation/deployment-and-configuration.md
[etcd]: https://github.com/coreos/etcd
[fleet-scaling]: Documentation/fleet-scaling.md
[fleet-vs-k8s]: Documentation/fleet-k8s-compared.md
[kubernetes]: http://kubernetes.io
[license]: LICENSE
[maintainers]: MAINTAINERS
[releases]: https://github.com/coreos/fleet/releases
[unit-files]: Documentation/unit-files-and-scheduling.md#fleet-specific-options
[using-the-client.md]: Documentation/using-the-client.md