| 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.
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 helpNOTE: 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.
$ ./scripts/install_from_binaries.sh --dstdir /tmp/qqqNote: 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.
The preferable way is to use Makefile:
$ make clibuilds 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/aisTo install CLI auto-completions, you could also, and separately, use cmd/cli/install_autocompletions.sh
Makefile way:
$ make aisloaderBut again, you could also use go install:
$ go install github.com/NVIDIA/aistore/cmd/aisloader@latestxmeta 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 xmetaOR, same:
$ cd cmd/xmeta
$ go installishard is a utility to create well-formed shards from an original dataset - see usage.
To install, run:
$ make ishardOr use go install:
$ go install github.com/NVIDIA/aistore/cmd/ishard@latestaisinit 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.