Skip to content

Commit e1ecbbd

Browse files
committed
fmt
1 parent db70c02 commit e1ecbbd

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

docs/content/guides/kamaji-aws-deployment.md

+13-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Setup Kamaji on aws
2+
23
This guide will lead you through the process of creating a working Kamaji setup on on AWS.
34

45
The guide requires:
@@ -56,7 +57,7 @@ In order to create quickly an EKS cluster, we will use `eksctl` provided by AWS.
5657
- A dedicated VPC on `192.168.0.0/16` CIDR
5758
- 3 private subnets and 3 public subnets in 3 different availability zones
5859
- NAT Gateway for the private subnets, An internet gateway for the public ones
59-
- the required route tables to associate the subnets with the IGW and the NAT gateways
60+
- The required route tables to associate the subnets with the IGW and the NAT gateways
6061
- Provision the EKS cluster
6162
- Provision worker nodes and associate them to your cluster
6263
- Optionally creates the required IAM policies for your addons and attach them to the node
@@ -101,7 +102,7 @@ eks create cluster -f eks-cluster.yaml
101102

102103
Please note :
103104

104-
- the `aws-ebs-csi-driver` addon is required to use EBS volumes as persistent volumes . This will be mainly used to store the tenant control plane data using default data store `etcd`.
105+
- The `aws-ebs-csi-driver` addon is required to use EBS volumes as persistent volumes . This will be mainly used to store the tenant control plane data using default data store `etcd`.
105106
- We created a node group with 1 node in one availability zone to simplify the setup.
106107

107108
### Access to the management cluster
@@ -171,7 +172,7 @@ helm install kamaji clastix/kamaji -n kamaji-system --create-namespace
171172

172173
## Create Tenant Cluster
173174

174-
Now that our management cluster is up and running, we can create a Tenant Cluster. A Tenant Cluster is a Kubernetes cluster that is managed by Kamaji.
175+
Now that our management cluster is up and running, we can create a Tenant Cluster. A Tenant Cluster is a Kubernetes cluster that is managed by Kamaji.
175176

176177
### Tenant Control Plane
177178

@@ -281,18 +282,18 @@ kubectl -n ${TENANT_NAMESPACE} apply -f ${TENANT_NAMESPACE}-${TENANT_NAME}.yaml
281282

282283
Make sure:
283284

284-
- Tenant Control Plane will expose the API server using a public IP address through a network loadbalancer.
285+
- Tenant Control Plane will expose the API server using a public IP address through a network loadbalancer.
285286
it is important to provide a static public IP address for the API server in order to make it reachable from the outside world.
286287

287-
- the following annotation: `external-dns.alpha.kubernetes.io/hostname` is set to create the dns record. It tells AWS to expose the Tenant Control Plane with public domain name: `${TENANT_NAME}.${TENANT_DOMAIN}`.
288+
- The following annotation: `external-dns.alpha.kubernetes.io/hostname` is set to create the dns record. It tells AWS to expose the Tenant Control Plane with public domain name: `${TENANT_NAME}.${TENANT_DOMAIN}`.
288289

289290
> Since AWS load Balancer does not support setting LoadBalancerIP, you will get the following warning on the service created for the control plane tenant `Error syncing load balancer: failed to ensure load balancer: LoadBalancerIP cannot be specified for AWS ELB`. you can ignore it for now.
290291
291292
### Working with Tenant Control Plane
292293

293294
Check the access to the Tenant Control Plane:
294295

295-
> if the domain you used is a private route53 domain make sure to map the public IP of the LB to ${TENANT_NAME}.${TENANT_DOMAIN} in your `/etc/hosts`. otherwise kubectl will fail checking ssl certificates
296+
> If the domain you used is a private route53 domain make sure to map the public IP of the LB to ${TENANT_NAME}.${TENANT_DOMAIN} in your `/etc/hosts`. otherwise kubectl will fail checking ssl certificates
296297
297298
```bash
298299
curl -k https://${TENANT_PUBLIC_IP}:${TENANT_PORT}/version
@@ -339,15 +340,16 @@ Kamaji does not provide any helper for creation of tenant worker nodes, instead
339340

340341
An alternative approach to create and join worker nodes in AWS is to manually create the VMs, turn them into Kubernetes worker nodes and then join through the `kubeadm` command.
341342

342-
### Create the kubeadm join command
343+
### generate kubeadm join command
344+
345+
To join the worker nodes to the Tenant Control Plane, you need to generate the `kubeadm join` command from the Management cluster:
343346

344-
Run the following command to get the `kubeadm` join command that will be used on the worker tenant nodes:
345347
```bash
346348
TENANT_ADDR=$(kubectl -n ${TENANT_NAMESPACE} get svc ${TENANT_NAME} -o json | jq -r ."spec.loadBalancerIP")
347349
JOIN_CMD=$(echo "sudo kubeadm join ${TENANT_ADDR}:6443 ")$(kubeadm --kubeconfig=${TENANT_NAMESPACE}-${TENANT_NAME}.kubeconfig token create --ttl 0 --print-join-command |cut -d" " -f4-)
348350
```
349351

350-
> setting `--ttl=0` on the `kubeadm token create` will guarantee that the token will never expires and can be used every time.
352+
> Setting `--ttl=0` on the `kubeadm token create` will guarantee that the token will never expires and can be used every time.
351353
352354
### create tenant worker nodes
353355

@@ -369,10 +371,10 @@ aws ec2 run-instances --image-id $WORKER_AMI --instance-type "t2.medium" --user-
369371

370372
```
371373

372-
> we have used user data to run the `kubeadm join` command on the instance boot. This will make sure that the worker node will join the cluster automatically.
374+
> We have used user data to run the `kubeadm join` command on the instance boot. This will make sure that the worker node will join the cluster automatically.
373375
374376

375-
> make sure to replace `<REPLACE_WITH_SG>` with the security group id that allows the worker nodes to communicate with the public IP of the tenant control plane
377+
> Make sure to replace `<REPLACE_WITH_SG>` with the security group id that allows the worker nodes to communicate with the public IP of the tenant control plane
376378
377379
Checking the nodes in the Tenant Cluster:
378380

0 commit comments

Comments
 (0)