Servers
An instance is a control plane and any number of workers. Add a server, and the instance becomes a cluster — the new machine dials home, and every name still arrives at one door.
cubeship server add eu-1It prints the command to run on the new box, address and credential already in it. From then on the instance places apps on two machines.
Control plane and workers
The control plane is the box you installed: the database, the dashboard, the registry, the builder, the proxy, and every decision. A worker is a second box running the same image in a mode where it decides nothing: it dials home every ten seconds, is told what to run, runs it, and reports back.
The worker dials the control plane. Nothing dials a worker. A worker publishes no port — no dashboard, no API, no certificate, not even a health check — so its entire network presence is one outbound request every ten seconds. A box behind NAT can report in and be told what to run.
Each pass is a join and a heartbeat at once. There is no handshake: the first call is what joining means.
Status
Derived from when the machine last called in, never stored:
| Status | Meaning |
|---|---|
pending | added here, never installed — the row is a place for a box that does not exist yet |
ready | called in within the last few passes |
unreachable | has missed three passes — one slow pass does not flip a healthy machine |
The control plane is a row in the same table, first in every listing: everything that can be placed on a machine can be placed on this one.
What you get
- Every name still arrives at your instance, whichever machine runs the app. One DNS record, one certificate store; moving an app touches neither. See One front door.
- A private network between the machines, encrypted, on which container names mean the same thing everywhere — an app on one box reaches a database on another by the name it already had. See The mesh.
- Placement, copies, spread and autoscaling — see Placement.
What it does not do
- A machine behind NAT cannot be on the mesh. It can join, report and be told what to run, and its containers cannot reach the other machines' — the mesh's data plane needs the boxes to reach each other directly. The Servers screen says whether a machine is on the network.
- Ingress is one box. Every name arrives at the control plane, so an app survives a copy or a whole worker going away, and nothing survives the control plane going away. Several A records or something in front of them is a decision about failure — and about certificates — that this does not make.
- A different number of copies per machine is not representable; the count is one number for the app, spread evenly.
In the dashboard
Servers under Platform: one row per machine with its status, whether it is on the mesh, what the box is (cores, memory, disk) and what it is running now. Add server shows the install command once.