Connect to an Aerospike Cluster on Kubernetes
Connect to an Aerospike cluster deployed by Aerospike Kubernetes Operator (AKO) through Aerospike Admin (asadm) or through applications that use Aerospike client libraries.
Port Accessโ
Configure the firewall rules for the Kubernetes cluster depending on the number of pods per Kubernetes host.
If the Aerospike cluster is deployed with a single pod per host (multiPodPerHost
set to its default value 'false'), make ports 3000 (service port) and 4333 (TLS port) on all hosts accessible to all clients and tools.
If the Aerospike cluster is deployed with multiple pods per host (multiPodPerHost
set to 'true'), make port range 30000โ32767 on all hosts accessible to all clients and tools.
See the Cluster Configuration Settings section for more information on using the multiPodPerHost
setting.
Aerospike Node Endpointsโ
Use kubectl -n NAMESPACE describe aerospikecluster AEROSPIKE_CLUSTER_NAME
to get the IP addresses and port numbers.
The following example gets the IP addresses and port numbers for the cluster aerocluster
in the aerospike
namespace:
kubectl -n aerospike describe aerospikecluster aerocluster
The Status > Pods section provides pod-wise access, alternate access, TLS access, and TLS alternate access endpoints as well as the TLS name (if TLS is configured) to be used to access the cluster.
Output:
$ kubectl -n aerospike describe aerospikecluster aerocluster
Name: aerocluster
Namespace: aerospike
Labels: <none>
API Version: aerospike.com/v1alpha1
Kind: AerospikeCluster
.
.
.
Status:
Aerospike Access Control:
Users:
Name: admin
Roles:
sys-admin
user-admin
Secret Name: auth-secret
Aerospike Config:
Logging:
Any: info
Clustering: debug
Name: /var/log/aerospike/aerospike.log
Any: info
Name: console
Namespaces:
Memory - Size: 3000000000
Name: test
Replication - Factor: 2
Storage - Engine: memory
.
.
.
Pods:
aerocluster-0-0:
Aerospike:
Access Endpoints:
10.128.15.225:31312
Alternate Access Endpoints:
34.70.193.192:31312
Cluster Name: aerocluster
Node ID: 0a0
Tls Access Endpoints:
Tls Alternate Access Endpoints:
Tls Name:
Aerospike Config Hash: 39730a4545725a86206dcb5a2b158005621ae9b5
Dirty Volumes:
Host External IP: 34.70.193.192
Host Internal IP: 10.128.15.225
Image: aerospike/aerospike-server-enterprise:5.2.0.7
Initialized Volumes:
workdir
ns
Network Policy Hash: acbbfab3668e1fceeed201139d1173f00095667e
Pod IP: 10.0.4.6
Pod Port: 3000
Service Port: 31312
aerocluster-0-1:
Aerospike:
Access Endpoints:
10.128.15.226:30196
Alternate Access Endpoints:
35.192.88.52:30196
Cluster Name: aerocluster
Node ID: 0a1
Tls Access Endpoints:
Tls Alternate Access Endpoints:
Tls Name:
Aerospike Config Hash: 39730a4545725a86206dcb5a2b158005621ae9b5
Dirty Volumes:
Host External IP: 35.192.88.52
Host Internal IP: 10.128.15.226
Image: aerospike/aerospike-server-enterprise:5.2.0.7
Initialized Volumes:
workdir
ns
Network Policy Hash: acbbfab3668e1fceeed201139d1173f00095667e
Pod IP: 10.0.5.8
Pod Port: 3000
Service Port: 30196
Connect to the Clusterโ
When connecting from outside the Kubernetes cluster network, use the host external IP addresses. By default, the Operator configures access endpoints to use Kubernetes host internal IPs and alternate access endpoints to use host external IP addresses.
See network policy configuration for details.
From the example status output, for pod aerocluster-0-0, the alternate access endpoint is 34.70.193.192:31312
With a Clientโ
To use a client from outside the Kubernetes network using external IP addresses, set the following for the client policy using the appropriate client API.
host: 34.70.193.192
port: :31312
username: admin
password: admin123 # based on the configured secret
use-services-alternate: true
To use Aerospike Admin (asadm
) from within the Kubernetes network, run:
host: 10.128.15.225
port: :31312
username: admin
password: admin123 # based on the configured secret
use-services-alternate: false
With asadmโ
Run this kubectl command:
kubectl run -it --rm --restart=Never aerospike-tool -n aerospike --image=aerospike/aerospike-tools:latest -- asadm -h [cluster name] -U [username] -P [password]
To use asadm
from outside the Kubernetes network:
asadm -h 34.70.193.192:31312 -U [username] -P [password] --services-alternate
To use asadm
from within the Kubernetes network:
asadm -h 10.128.15.225:31312 -U [username] -P [password]