Tweaked Readme

This commit is contained in:
Karim Naufal 2022-01-05 16:28:19 +01:00
parent 6e1b32712e
commit 8470a0fbef
3 changed files with 15 additions and 27 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

BIN
.images/kubectl-pod-all.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -30,9 +30,9 @@ _Please note that we are not affiliated to Hetzner, this is just an open source
### Features ### Features
- Lightweight and resource-efficient Kubernetes powered by [k3s](https://github.com/k3s-io/k3s) on [k3os](https://github.com/rancher/k3os) nodes. - Lightweight and resource-efficient Kubernetes powered by [k3s](https://github.com/k3s-io/k3s) on [k3os](https://github.com/rancher/k3os) nodes.
- Automatic HA with the default setting of two control-plane and agents nodes. - Maintenance free with auto-upgrade to the latest version of k3s and k3os, Hetzner CCM and CSI.
- Automatic Traefik ingress controller attached to a hetzner load balancer with proxy protocol turned on. - Automatic HA with the default setting of two control-plane and agents nodes. Add or remove as many nodes as you want while the cluster stays running.
- Add or remove as many nodes as you want while the cluster stays running (just change the number instances and run terraform apply again). - Automatic Traefik ingress controller attached to a Hetzner load balancer with proxy protocol turned on.
_It uses Terraform to deploy as it's easy to use, and Hetzner provides a great [Hetzner Terraform Provider](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs)._ _It uses Terraform to deploy as it's easy to use, and Hetzner provides a great [Hetzner Terraform Provider](https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs)._
@ -44,7 +44,7 @@ _It uses Terraform to deploy as it's easy to use, and Hetzner provides a great [
Follow those simple steps, and your world's cheapest Kube cluster will be up and running in no time. Follow those simple steps, and your world's cheapest Kube cluster will be up and running in no time.
### Prerequisites ### ✔️ Prerequisites
First and foremost, you need to have a Hetzner Cloud account. You can sign up for free [here](https://hetzner.com/cloud/). First and foremost, you need to have a Hetzner Cloud account. You can sign up for free [here](https://hetzner.com/cloud/).
@ -54,13 +54,13 @@ Then you'll need you have the [terraform](https://learn.hashicorp.com/tutorials/
gofish install terraform && gofish install kubectl && gofish install helm gofish install terraform && gofish install kubectl && gofish install helm
``` ```
### ⚠️ [Essential step, do not skip] Creating the terraform.tfvars file ### ⚠️ [Do not skip] Creating the terraform.tfvars file
1. Create a project in your Hetzner Cloud Console, and go to **Security > API Tokens** of that project to grab the API key. Take note of the key! ✅ 1. Create a project in your Hetzner Cloud Console, and go to **Security > API Tokens** of that project to grab the API key. Take note of the key! ✅
2. Generate an ssh key pair for your cluster, unless you already have one that you'd like to use. Take note of the respective paths! ✅ 2. Generate an ssh key pair for your cluster, unless you already have one that you'd like to use. Take note of the respective paths! ✅
3. Rename terraform.tfvars.example to terraform.tfvars, and replace the values from steps 1 and 2. ✅ 3. Rename terraform.tfvars.example to terraform.tfvars, and replace the values from steps 1 and 2. ✅
### Customize other variables (Optional) ### 💡 Customize other variables (Optional)
The number of control plane nodes and worker nodes, the [Hetzner datacenter location](https://docs.hetzner.com/general/others/data-centers-and-connection/) (.i.e. ngb1, fsn1, hel1 ...etc.), and the [Hetzner server types](https://www.hetzner.com/cloud) (i.e. cpx31, cpx41 ...etc.) can be customized by adding the corresponding variables to your newly created terraform.tfvars file. The number of control plane nodes and worker nodes, the [Hetzner datacenter location](https://docs.hetzner.com/general/others/data-centers-and-connection/) (.i.e. ngb1, fsn1, hel1 ...etc.), and the [Hetzner server types](https://www.hetzner.com/cloud) (i.e. cpx31, cpx41 ...etc.) can be customized by adding the corresponding variables to your newly created terraform.tfvars file.
@ -75,7 +75,7 @@ control_plane_server_type = "cpx11"
lb_server_type = "lb11" lb_server_type = "lb11"
``` ```
### Installation ### 🎯 Installation
```sh ```sh
terraform init terraform init
@ -92,6 +92,12 @@ export KUBECONFIG=/<path-to>/kubeconfig.yaml
Of course, to get the path, you could use the `pwd` command. Of course, to get the path, you could use the `pwd` command.
<!-- USAGE EXAMPLES -->
## Usage
When the cluster is up and running, you can do whatever you wish with it. Enjoy! 🎉
### Scaling Nodes ### Scaling Nodes
You can scale the number of nodes up and down without any issues or even disruption! Just add or edit these variables in `terraform.tfvars` and re-apply terraform. You can scale the number of nodes up and down without any issues or even disruption! Just add or edit these variables in `terraform.tfvars` and re-apply terraform.
@ -101,12 +107,6 @@ servers_num = 2
agents_num = 3 agents_num = 3
``` ```
<!-- USAGE EXAMPLES -->
## Usage
When the cluster is up and running, you can do whatever you wish with it. Enjoy! 🎉
### Useful commands ### Useful commands
- List your nodes IPs, with either of those: - List your nodes IPs, with either of those:
@ -140,7 +140,7 @@ As for the Hetzner CCM and CSI, their container images are set to latest and wit
## Takedown ## Takedown
Then you can proceed to take down the rest of the cluster with: If you want to takedown the cluster, you can proceed as follows:
```sh ```sh
kubectl delete -k hetzer/csi --kubeconfig kubeconfig.yaml kubectl delete -k hetzer/csi --kubeconfig kubeconfig.yaml
@ -151,12 +151,6 @@ terraform destroy -auto-approve
Also, if you had a full-blown cluster in use, it would be best to delete the whole project in your Hetzner account directly as operators or deployments may create other resources during regular operation. Also, if you had a full-blown cluster in use, it would be best to delete the whole project in your Hetzner account directly as operators or deployments may create other resources during regular operation.
<!-- ROADMAP -->
## Roadmap
See the [open issues](https://github.com/mysticaltech/kube-hetzner/issues) for a list of proposed features (and known issues).
<!-- CONTRIBUTING --> <!-- CONTRIBUTING -->
## Contributing ## Contributing
@ -169,12 +163,6 @@ Any contributions you make are **greatly appreciated**.
4. Push to the Branch (`git push origin AmazingFeature`) 4. Push to the Branch (`git push origin AmazingFeature`)
5. Open a Pull Request 5. Open a Pull Request
<!-- LICENSE -->
## License
The following code is distributed as-is and under the MIT License. See [LICENSE](LICENSE) for more information.
<!-- CONTACT --> <!-- CONTACT -->
## Contributors ## Contributors
@ -204,4 +192,4 @@ The following code is distributed as-is and under the MIT License. See [LICENSE]
[license-url]: https://github.com/mysticaltech/kube-hetzner/blob/master/LICENSE.txt [license-url]: https://github.com/mysticaltech/kube-hetzner/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/in/karimnaufal/ [linkedin-url]: https://www.linkedin.com/in/karimnaufal/
[product-screenshot]: .images/kubectl-all-screenshot.png [product-screenshot]: .images/kubectl-pod-all.png