Azure AKS
Sprinkle requires AKS cluster for data ingestion and processing. This is required to process all your data locally within your Azure private network.
Follow the below steps to create and configure AKS cluster:
STEP-1: Create AKS Cluster
Section titled βSTEP-1: Create AKS ClusterβCreate a AKS Standard cluster with all default settings with following configuration:
Networking
- Enable private cluster (if Sprinkle VM is in the same virtual private network)
- Select virtual network of the sprinkle VM
STEP-2: Generate user token
Section titled βSTEP-2: Generate user tokenβSprinkle authenticates to AKS cluster using kubernetes user token. Follow below steps to generate User token:
- Install kubectl and azure CLI
- Generate ~/.kube/config file:
az aks get-credentials --resource-group <resourcegroup-name> --name <aks-cluster-name>- To verify the setup, run kubectl command to fetch running nodes:
kubectl get nodes- Create namespace
kubectl create namespace sprinkle- Create Admin User In kubernetes: Create file service-account-create.yml:
apiVersion: v1kind: ServiceAccountmetadata: name: sprinkle-admin-user namespace: sprinklekubectl apply -f service-account-create.yml- Create ClusterRoleBinding: create a file role-binding.yml:
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: sprinkle-admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: sprinkle-admin-user namespace: sprinklekubectl apply -f role-binding.yml- To create a long-lived API token for a ServiceAccount, you create a new secret file sprinkle-admin-secret.yml with a special annotation,
kubernetes.io/service-account.name:
apiVersion: v1kind: Secretmetadata: name: sprinkle-admin-secret namespace: sprinkle annotations: kubernetes.io/service-account.name: sprinkle-admin-usertype: kubernetes.io/service-account-tokenkubectl apply -f sprinkle-admin-secret.yml- User token Token will be printed by this command, note down the generated token:
kubectl describe secrets/sprinkle-admin-secret -n sprinkleGet Cluster CA Certificate
Section titled βGet Cluster CA Certificateβkubectl get cm kube-root-ca.crt -o jsonpath="{['data']['ca\.crt']}"