README.md
April 5, 2026 ยท View on GitHub
Table of Contents
Executables
| Directory | Binary name | Description | README |
|---|---|---|---|
cmd/cli | ais | AIS command line management utility | CLI |
cmd/aisloader | aisloader | AIS integrated load generator | aisloader |
bench/tools/aisloader-composer | aisloader-composer | Scripts and ansible playbooks to benchmark an AIS cluster using multiple hosts running aisloader, controlled by ansible | aisloader-composer |
cmd/aisnode | aisnode | AIS node (gateway or target) binary | |
cmd/aisnodeprofile | aisnode | ... with profiling enabled | |
cmd/aisinit | aisinit | Kubernetes init container: generates aisnode config from pod environment (DNS, hostnames, networking mode, external LB) | |
cmd/authn | authn | Standalone server providing token-based secure access to AIS clusters | AuthN |
cmd/xmeta | xmeta | Utility to inspect, extract, format, and (in limited cases) edit internal AIS metadata structures (cluster map, bucket metadata, etc.) | xmeta |
cmd/ishard | ishard | Utility to create well-formed shards from an original dataset | ishard |
NOTE: installed CLI executable is named ais.
Installing from GitHub
Generally, AIStore (cluster) requires at least some sort of deployment process or sequence.
Standalone binaries, on the other hand, can be built from source or installed directly from the latest or previous GitHub releases.
Each release includes ais (CLI) and aisloader binaries for linux-amd64 and darwin-arm64:
$ ./scripts/install_from_binaries.sh --help
NAME:
install_from_binaries.sh - install 'ais' (CLI) and 'aisloader' from release binaries
USAGE:
./install_from_binaries.sh [options...]
OPTIONS:
--tmpdir <dir> work directory, e.g. /root/tmp
--dstdir <dir> installation destination
--release release tag, e.g. v1.4.1, v1.4.3, latest (default: latest)
--completions install and enable _only_ CLI autocompletions (ie., skip installing binaries)
-h, --help show this help
NOTE: For CLI, the script will also enable auto-completions. CLI can be used without (bash, zsh) auto-completions but, generally, using auto-completions is strongly recommended.
Example: download 'ais' and 'aisloader' binaries from the latest release
$ ./scripts/install_from_binaries.sh --dstdir /tmp/qqq
Note: AIS container images (
aisnode,aisinit,authn, etc.) are not distributed via the GitHub release page or this install script. They are published separately and are also available with native arm64 support. See Kubernetes deployment for details.
Installing from source
CLI
The preferable way is to use Makefile:
$ make cli
builds AIS CLI from the local aistore repository and installs it in your $GOPATH/bin.
NOTE: installed CLI binary is named ais.
Alternatively, you could also use go install:
$ go install github.com/NVIDIA/aistore/cmd/cli@latest && mv $GOPATH/bin/cli $GOPATH/bin/ais
To install CLI auto-completions, you could also, and separately, use cmd/cli/install_autocompletions.sh
aisloader
Makefile way:
$ make aisloader
But again, you could also use go install:
$ go install github.com/NVIDIA/aistore/cmd/aisloader@latest
xmeta
xmeta is a utility to inspect, extract, format, and (in limited cases) edit internal AIS metadata structures - see usage.
For command line options and usage examples, simply run xmeta with no arguments:
$ xmeta
Usage of xmeta:
-f string ...
...
Examples:
# Smap:
xmeta -x -in=~/.ais0/.ais.smap - extract Smap to STDOUT
...
To install, run:
$ make xmeta
OR, same:
$ cd cmd/xmeta
$ go install
ishard
ishard is a utility to create well-formed shards from an original dataset - see usage.
To install, run:
$ make ishard
Or use go install:
$ go install github.com/NVIDIA/aistore/cmd/ishard@latest
aisinit
aisinit is a Kubernetes init container that runs before aisnode in the same pod. It takes a template local configuration and produces the final node config based on the pod's runtime environment.
Specifically, aisinit:
- resolves pod DNS names for intra-cluster (data and control) networks
- sets the public hostname based on the configured DNS mode (
IP,Node, orPod) - fetches external LoadBalancer IPs for targets when external access is enabled
- applies optional hostname mappings and cluster config overrides
The DNS mode (AIS_PUBLIC_DNS_MODE) controls how the public-facing hostname is determined:
| Mode | Hostname source | Typical use case |
|---|---|---|
IP (default) | Host IP (discovered at runtime) | Simple deployments; requires IP SANs in TLS certs |
Node | Kubernetes node name (spec.nodeName) | Environments where node names are resolvable (e.g., AWS EC2 private DNS) |
Pod | Pod DNS (pod.service.namespace.svc.cluster.local) | Host networking + TLS with wildcard certs |
aisinit is not installed as a standalone binary. It is built into the aisinit container image and deployed via the AIS Kubernetes operator.