-
Notifications
You must be signed in to change notification settings - Fork 154
Joyent Triton Overview
┌──────────────────────────────────────────────────────────┐
│ Joyent Triton Container Cloud │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Container OS │ │ Container OS │ │ Container OS │ │
│ │ (CentOS) │ │ (CentOS) │ │ (CentOS) │ │
│ │ ┌───────────┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │
│ │ │ Couchbase │ │ │ │ Couchbase │ │ │ │ Couchbase │ │ │
│ │ │ Server │ │ │ │ Server │ │ │ │ Server │ │ │
│ │ └───────────┘ │ │ └───────────┘ │ │ └───────────┘ │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
└──────────────────────────────────────────────────────────┘
Joyent's Triton container cloud provides Software Defined Networking (SDN) which simplifies the networking setup required to run Couchbase Server. We have experimented with Couchbase Server deployments on Joyent's Triton offering and have been very pleased with the performance and ease of use, so this section will be based on those experiences.
Within Joyent, a container is itself a first-class citizen; there is no "host" for the container. This is how they achieve bare-metal speeds while keeping the advantages of containerization.
Networking
- Each container is given an IP on an account-wide LAN.
- Every container can see every other container on these internal IP addresses.
- When configuring a Couchbase cluster, internal IP addresses should be used.
- The network infrastructure between containers is handled automatically and efficiently.
- By specifying the
-P
option todocker run
, you can request that a container be given a public IP that is visible from the internet. You should specify this option for at least one node in your cluster so that you can access the Admin Console, Client API ports, and so on. It is not necessary or desirable to specify-P
for every container.
Volumes
- There is no "host" for a container in Joyent. Therefore the
-v
option is not used. - All storage must be inside a container.
- Joyent does not use a union filesystem for its Docker layer, but rather a highly efficient ZFS implementation.
- There is no performance penalty to using in-container storage.
Persistent data and upgrades
- Joyent does support volume links between containers. You could therefore launch two containers per node in your cluster - one simply to host the storage, and the other running Couchbase Server. (downside: extra cost)
- Another option is to stick with a single container per node, and use rolling upgrades when you wish to upgrade to a newer Couchbase Server version.
So the docker run
command for nodes in Joyent becomes very easy:
docker run -d couchbase/server
Just remember to also specify -P
for one or two nodes so you can connect to port 8091 for the Admin Console.
For more details on setup, see Running a Couchbase cluster on Joyent Triton