Skip to content
This repository has been archived by the owner. It is now read-only.
Docker image designed to run an Aerospike cluster on ContainerShip
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dockerfile
.gitignore
Dockerfile
LICENSE
README.md
aerospike.js
aerospike.template
package.json

README.md

Aerospike

See https://www.aerospike.com for more information about Aerospike.

What is the Containership Marketplace?

The Containership marketplace is a series of containerized applications configured to easily run and scale on a containership.io cluster! Many conveniences such as High-Availability, automatic clustering among others are able to be configured out of the box allowing you to scale seamlessly as your infrastructure is required to grow.

Note: If you attempt to run this image outside of a containership cluster, we cannot guarantee that it will run properly.

Author

ContainerShip Developers - developers@containership.io

Configuration

This image will run as-is, with no additional environment variables set. For clustering to work properly, start the application in host networking mode. There are various optionally configurable environment variables:

  • AEROSPIKE_SINGLE_REPLICA_LIMIT - If the cluster size is less than or equal to this value, only one copy of the data (no replicas) will be kept in the cluster.
  • AEROSPIKE_SERVICE_THREADS - Number of threads receiving client requests on the network interface.
  • AEROSPIKE_TRANSACTION_QUEUES - Number of transaction queues managing client requests. Service threads will dispatch transactions into those queues (round robin).
  • AEROSPIKE_TRANSACTION_THREADS_PER_QUEUE - Number of threads per transaction queue. Those threads will consume the requests from the transaction queues.
  • AEROSPIKE_SERVICE_PORT - Maximum number of open file descriptors opened on behalf of client connections.
  • AEROSPIKE_IPADDRESS - Address that will be published for clients to connect. ContainerShip sets this automatically.
  • AEROSPIKE_SERVICE_PORT - The port at which the server listens for client connections.
  • AEROSPIKE_HEARTBEAT_PORT - Multicast Port for cluster-state communication. Applies only when mode is multicast.
  • AEROSPIKE_MESH_ADDRESSES - These are other addresses from the cluster that Aerospike will bootstrap from. ContainerShip sets these automatically.
  • AEROSPIKE_HEARTBEAT_INTERVAL - Interval in milliseconds in which heartbeats are sent.
  • AEROSPIKE_HEARTBEAT_TIMEOUT - Number of missing heartbeats after which the remote node will be declared dead.
  • AEROSPIKE_FABRIC_PORT - Port for inter-node communication within a cluster.
  • AEROSPIKE_INFO_PORT - Port used for info management. Responds to ASCII commands.
  • AEROSPIKE_NAMESPACE - Default namespace. Set to ContainerShip by default.
  • AEROSPIKE_REPLICATION_FACTOR - Number of copies of a record (including the master copy) maintained in the entire cluster.
  • AEROSPIKE_MEMORY_SIZE - Maximum amount of memory for the namespace. Defaults to 1G.
  • AEROSPIKE_TTL - Default time-to-live (in seconds) for a record from the time of creation or last update. The record will expire in the system beyond this time. Defaults to 5d.
  • AEROSPIKE_FILESIZE - Maximum size for each file storage defined in this namespace. Defaults to 4G.

See the official Aerospike Docs for more information about these parameters!

Recommendations

  • On your ContainerShip cluster, run this application using the constraints.per_node=1 tag. Each node in your cluster will run an instance of Aerospike, creating a cluster of n hosts, where n is the number of follower hosts in your ContainerShip cluster.
  • Start the application with container_volume=/opt/aerospike/data and host_volume=/mnt/aerospike so data is persisted to the host system in case your container crashes. Additionally, by bind-mounting the volume, your data will be available for backup from ContainerShip Cloud.

Contributing

Pull requests and issues are encouraged!

You can’t perform that action at this time.