Snapshot of coreos/fleet: 2.4k★, Go. fleet ties together systemd and etcd into a distributed init system
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
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.
The project exists here for historical reference. If you are interested in the future of the project and taking over stewardship, please contact [email protected]
fleet - a distributed init system
fleet ties together systemd and 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. The fleet and kubernetes comparison table has more information about the two systems.
Current status
The fleet project is no longer maintained.
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, including scalability limitations 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:
$ 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:
$ 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:
$ 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.
Getting Started
Before you can deploy units, fleet must be deployed and configured 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.
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 for more information.
Release Notes
See the releases tab for more information on each release.
License
fleet is released under the Apache 2.0 license. See the 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.
The most recent commit recorded on coreos/fleet was 7.8 years ago, based on the GitHub push timestamp. The repository has 296 forks — one of the better signals of community interest.
How many stars does coreos/fleet have?
coreos/fleet has 2.4k GitHub stars — refresh the page for the live number, or check github.com/coreos/fleet. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is coreos/fleet open source?
Yes — coreos/fleet ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/coreos/fleet.
What is coreos/fleet?
coreos/fleet (coreos/fleet) is a Go project on GitHub. From the project's own README: fleet ties together systemd and etcd into a distributed init system
Where do I read more about coreos/fleet?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/coreos/fleet is the definitive source.
Read full README in the tab above.
Still deciding about fleet?
One click hands the question to an AI along with this page — see what it says about fleet.