Optional S3 Configuration
To deploy you will use the hkt tool to create the YAML required for kubectl and then apply it.
The HKT tool uses the environment variables we set earlier in the deployment process.
The first step is to install the operator in your Kubernetes Cluster:
Then you need to create the secret which contains the AWS secret key:
Once the file is created you can use kubectl to set it in your cluster:
Then you can create the resource definition using the hydrolix-cluster command in hkt, and apply it.
If you are using Linode Object Storage for your bucket, follow the instruction in Modifying Hydolixcluster.yaml when using Linode Object Storage. If you are using AW S3 for your bucket, follow the instruction in Modifying Hydolixcluster.yaml when using AWS S3.
Modifying Hydolixcluster.yaml when using Linode Object Storage⚓︎
You then need to modify the hydrolixcluster.yaml to include some specific settings when using Linode for Kubernetes infrastructure and Linode Object Storage for a bucket:
Next, proceed to follow the instructions in Applying Hydrolixcluster.yaml
Modifying Hydolixcluster.yaml when using AWS S3⚓︎
You then need to modify the hydrolixcluster.yaml to include some specific settings when using Linode for Kubernetes infrastructure and AWS S3 for a bucket:
Next, proceed to follow the instructions in Applying Hydrolixcluster.yaml
Applying Hydrolixcluster.yaml⚓︎
After the modification of your hydrolixcluster.yaml you can apply it which will start the deployment of your cluster:
Within the hydrolixcluster.yaml a default scale is defined for the Hydrolix cluster. More information can be found here Scaling your Cluster should you wish to deploy differently than the default.
The default setting applied will bring up a minimal size of infrastructure of stateful and stateless components
Stateful
| Service | Description | Replicas | CPU | Memory | Storage | Data Storage |
|---|---|---|---|---|---|---|
postgres |
The Core | 1 | 4 | 16Gi | 5Gi | 100Gi |
redpanda |
Ingest | 2 | 2 | 6Gi | 5Gi | 1Ti |
prometheus |
Reporting and Control | 1 | 1 | 5Gi | 5Gi | 50GB |
Stateless
| Service | Description | Replicas | CPU | Memory | Storage | Data Storage |
|---|---|---|---|---|---|---|
alter-peer |
Alter | 0 | 2 | 20Gi | 10Gi | - |
batch-head |
Ingest | 1 | 500m | 1Gi | 5Gi | - |
batch-peer |
Ingest | 1-12 | 2 | 10Gi | 10Gi | - |
decay |
Age | 1 | 1 | 1Gi | 5Gi | - |
intake-api |
Ingest | 1 | 500m | 1Gi | 5Gi | - |
kafka-peer |
Ingest | 0 | 2 | 10Gi | 10Gi | - |
keycloak |
The Core | 1 | 1 | 2Gi | 5Gi | - |
merge-head |
Merge | 1 | 500m | 1Gi | 5Gi | - |
merge-peer |
Merge | 1-12 | 2 | 30Gi | 10Gi | - |
operator |
Core | 1 | 500m | 1Gi | 5Gi | - |
query-head |
Query | 1 | 6 | 48Gi | 50Gi | - |
query-peer |
Query | 3-12 | 15 | 48Gi | 50Gi | - |
rabbitmq |
Ingest | 1 | 1 | 4Gi | 10Gi | - |
reaper |
Age | 1 | 2 | 1Gi | 5Gi | - |
stream-head |
Ingest | 1-12 | 4 | 10Gi | 10Gi | - |
stream-peer |
Ingest | 1-12 | 2 | 10Gi | 10Gi | - |
turbine-api |
Query | 1 | 500m | 1Gi | 5Gi | - |
traefik |
The Core | 2 | 1 | 1Gi | 5Gi | - |
version |
The Core | 1 | 500m | 1Gi | 1Gi | - |
zookeeper |
The Core | 1 | 1 | 1Gi | 5Gi | - |
set up Autoscaling⚓︎
To setup autoscaling with Linode you need to use the following configuration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | |
You can download this configuration and apply it:
Create your DNS record⚓︎
The final step in your deployment should be creating the DNS record so you are able to access the services.
To retrieve the traefik IP you can use the kubectl get services command.
👍 Enabling IP and SSL/TLS access.
This may also be a good time to set-up the IP Access control and TLS certificate. You can find instructions in Secure a Kubernetes Cluster.
Checking your deployment.⚓︎
You can now check the status of your deployment. This can all be done through the Kubectl command or through the Linode Cloud console, for example to see the status of each pod running:
The Final Step⚓︎
You should have received an email that will now allow you to set a password and login. If you do not receive this email, please feel free to contact us at mailto:support@hydrolix.io and we'll happily assist you.