Quickstart with AKS
This is a quickstart guide for deploying TigerGraph single servers and clusters in Kubernetes on Azure Kubernetes Service(AKS).

Before you begin

Single-server deployment

This section describes the steps to deploy, verify, and remove a single-server deployment of TigerGraph on AKS.

Deploy single server

Step 1: Generate deployment manifest. Clone the TigerGraph ecosystems repository and change into the k8s directory. You can edit the kustimization.yaml file in the aks folder to change the namespace and image name for your deployment. The default namespace is default, and the default image is the official docker image for TigerGraph 3.2.0. No need to edit the files if no changes are needed.
Next, run the ./tg script in the k8s directory to generate the deployment manifest for a single-server deployment. A deploy directory will be created automatically and you should find the manifest named tigergraph-aks.yaml in the directory.
1
./tg aks kustomize -s 1
Copied!
Step 2: Deploy manifest. Run kubectl apply to create the deployment using the manifest you generated in step 1.
1
kubectl apply -f deploy/tigergraph-aks.yaml
Copied!

Verify single server

After you create the deployment, run kubectl get pods to verify that the pods were created successfully.
1
$ kubectl get pods
2
NAME READY STATUS RESTARTS AGE
3
installer-zsnb4 1/1 Running 0 4m11s
4
tigergraph-0 1/1 Running 0 4m10s
Copied!
Run kubectl describe service/tg-external-service to find the IP address of the load balancer. You can then make curl calls to port 9000 to make sure that RESTPP is running:
1
$ curl <load_balancer_ip>:9000/echo | jq .
2
% Total % Received % Xferd Average Speed Time Time Time Current
3
Dload Upload Total Spent Left Speed
4
100 39 100 39 0 0 120 0 --:--:-- --:--:-- --:--:-- 120
5
{
6
"error": false,
7
"message": "Hello GSQL"
8
}
Copied!
You can also copy the IP address into your browser and visit port 14240 to make sure that GraphStudio is working.

Connect to single server

You can use kubectl to get a shell to the container or log in via ssh
1
# Via kubectl
2
kubectl exec -it tigergraph-0 -- /bin/bash
3
4
# Via ssh
5
ip_m1=$(kubectl get pod -o wide |grep tigergraph-0| awk '{print $6}')
Copied!
To use GraphStudio, copy the IP address into your browser and visit port 14240.

Remove single server resources

Run the command below to delete all cluster resources:
1
$ kubectl delete -f deploy/tigergraph-aks.yaml && kubectl delete pvc -l app=tigergraph
Copied!

Cluster deployment

This section describes the steps to deploy, verify, and delete a TigerGraph cluster in Kubernetes on AKS.

Deploy TigerGraph cluster

1. Generate Kubernetes manifest

Clone the TigerGraph ecosystem repository and change into the k8s directory:
1
$ git clone https://github.com/tigergraph/ecosys.git
2
$ cd ecosys/k8s
Copied!
You can customize your deployment by editing the kustomize.yaml file in the aks directory. The tg script in the k8s folder offers a convenient way to make common customizations such as namespace, TigerGraph version, as well as cluster size. Run ./tg -h to view the help text on how to use the script.
Use the tg script in the k8s directory of the repo to create a Kubernetes manifest. Use -s or --size to indicate the number of nodes in the cluster. Use the --ha option to indicate the replication factor of the cluster, and the partitioning factor will be the number of nodes divided by the replication factor.
For example, the following command will create a manifest that will deploy a 3*2 cluster with a replication factor of 2 and a partitioning factor of 3. The --version flag specifies the version of TigerGraph to use for the deployment.
1
$ ./tg aks kustomize -s 6 --ha 2 --version 3.2.0
Copied!
The command will create a directory named deploy with the manifest inside.

2. Deploy the cluster

Run kubectl apply to create the deployment
1
$ kubectl apply -f ./deploy/tigergraph-aks.yaml
Copied!

Verify cluster

Run kubectl get pods to verify the pods were created successfully:
1
kubectl get pods
2
NAME READY STATUS RESTARTS AGE
3
installer-zsnb4 1/1 Running 0 4m11s
4
tigergraph-0 1/1 Running 0 4m10s
5
tigergraph-1 1/1 Running 0 75s
Copied!
Run kubectl describe service/tg-external-service to find the IP address of the load balancer for your AKS cluster. You can make a curl call to port 9000 to make sure that RESTPP is working:
1
$ curl <load_balancer_ip>:9000/echo | jq .
2
% Total % Received % Xferd Average Speed Time Time Time Current
3
Dload Upload Total Spent Left Speed
4
100 39 100 39 0 0 120 0 --:--:-- --:--:-- --:--:-- 120
5
{
6
"error": false,
7
"message": "Hello GSQL"
8
}
Copied!
You can also copy the IP address into your browser and visit port 14240 to make sure that GraphStudio is working.

Connect to instances

You can use kubectl to get a shell to the container or log in via ssh
1
# Via kubectl
2
kubectl exec -it tigergraph-0 -- /bin/bash
3
4
# Via ssh
5
ip_m1=$(kubectl get pod -o wide |grep tigergraph-0| awk '{print $6}')
Copied!
To use GraphStudio, copy the IP address into your browser and visit port 14240.

Delete cluster resources

Run the command below to delete all cluster resources:
1
$ kubectl delete -f deploy/tigergraph-aks.yaml && kubectl delete pvc -l app=tigergraph
Copied!